├── .github ├── CODEOWNERS └── workflows │ └── codeql.yaml ├── nodejs ├── package.json ├── index.js └── package-lock.json ├── README.md ├── .gitignore └── LICENSE /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # CODEOWNERS file 2 | # This file defines who should review code changes in this repository. 3 | 4 | * @zendesk/sunco-engine 5 | -------------------------------------------------------------------------------- /.github/workflows/codeql.yaml: -------------------------------------------------------------------------------- 1 | name: "CodeQL public repository scanning" 2 | 3 | on: 4 | push: 5 | schedule: 6 | - cron: "0 0 * * *" 7 | pull_request_target: 8 | types: [opened, synchronize, reopened] 9 | workflow_dispatch: 10 | 11 | permissions: 12 | contents: read 13 | security-events: write 14 | actions: read 15 | packages: read 16 | 17 | jobs: 18 | trigger-codeql: 19 | uses: zendesk/prodsec-code-scanning/.github/workflows/codeql_advanced_shared.yml@production 20 | -------------------------------------------------------------------------------- /nodejs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sunshine-conversations-api-quickstart-example", 3 | "version": "1.0.0", 4 | "description": "Sample code to get started with the Sunshine Conversations REST APIs", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "zendesk", 10 | "license": "MIT", 11 | "dependencies": { 12 | "body-parser": "1.19.0", 13 | "express": "4.17.1", 14 | "sunshine-conversations-client": "^14.4.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Sunshine Conversations API Examples 2 | 3 | ## Get started 4 | 5 | For a detailed guide, see the [Sunshine Conversations API Quickstart](https://developer.zendesk.com/documentation/conversations/getting-started/api-quickstart/): 6 | 7 | ### Node.js 8 | 9 | 1. Clone the repository 10 | 2. Go to the _nodejs_ subdirectory 11 | 3. Install dependencies (`npm install`) 12 | 4. Use [ngrok](https://ngrok.com/) to create a secure tunnel to port 8000 (`ngrok http 8000` after ngrok is installed on your PC) 13 | 5. Create a webhook and API key in Admin Center and point it at the full url for the `/messages` endpoint (e.g. `https://MY-NGROK-DOMAIN.ngrok.io/messages`) 14 | 6. Update `index.js` to set proper values for `ZENDESK_SUBDOMAIN`, `KEY_ID` and `KEY_SECRET` 15 | 7. Run the server (`node index`) 16 | 8. Send messages to your Web Widget and watch the auto-replies roll in 17 | -------------------------------------------------------------------------------- /nodejs/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // Imports 4 | const express = require("express"); 5 | const bodyParser = require("body-parser"); 6 | const SunshineConversationsApi = require("sunshine-conversations-client"); 7 | 8 | const ZENDESK_SUBDOMAIN = "{subdomain}.zendesk.com"; 9 | const KEY_ID = "{key-id}"; 10 | const KEY_SECRET = "{key-secret}"; 11 | 12 | // Config 13 | let defaultClient = SunshineConversationsApi.ApiClient.instance; 14 | defaultClient.basePath = `https://${ZENDESK_SUBDOMAIN}/sc`; 15 | 16 | let basicAuth = defaultClient.authentications["basicAuth"]; 17 | basicAuth.username = KEY_ID; 18 | basicAuth.password = KEY_SECRET; 19 | const PORT = 8000; 20 | 21 | const apiInstance = new SunshineConversationsApi.MessagesApi(); 22 | 23 | // Server https://expressjs.com/en/guide/routing.html 24 | const app = express(); 25 | 26 | app.use(bodyParser.json()); 27 | 28 | // Expose /messages endpoint to capture webhooks https://docs.smooch.io/rest/#operation/eventWebhooks 29 | app.post("/messages", async function (req, res) { 30 | const appId = req.body.app.id; 31 | const [event] = req.body.events; 32 | 33 | // Call REST API to send message https://docs.smooch.io/rest/#operation/postMessage 34 | if (event.type === "conversation:message") { 35 | const { conversation, message } = event.payload; 36 | 37 | if (message.author.type === "user") { 38 | console.log( 39 | "User message received:\n", 40 | JSON.stringify(req.body, null, 4) 41 | ); 42 | 43 | try { 44 | await sendMessage( 45 | appId, 46 | conversation.id, 47 | `You said: ${message.content.text}` 48 | ); 49 | console.log("Message sent successfully"); 50 | } catch (error) { 51 | console.error("Error sending message:", error); 52 | } 53 | } 54 | } 55 | 56 | res.end(); 57 | }); 58 | 59 | // Listen on port 60 | app.listen(PORT, () => { 61 | console.log(`App listening on port ${PORT}`); 62 | }); 63 | 64 | async function sendMessage(appId, conversationId, text) { 65 | const messagePost = new SunshineConversationsApi.MessagePost(); 66 | messagePost.setAuthor({ type: "business" }); 67 | messagePost.setContent({ type: "text", text }); 68 | const response = await apiInstance.postMessage( 69 | appId, 70 | conversationId, 71 | messagePost 72 | ); 73 | console.log("API RESPONSE:\n", JSON.stringify(response, null, 4)); 74 | } 75 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ###Python### 2 | 3 | # Byte-compiled / optimized / DLL files 4 | __pycache__/ 5 | *.py[cod] 6 | *$py.class 7 | 8 | # C extensions 9 | *.so 10 | 11 | # Distribution / packaging 12 | .Python 13 | build/ 14 | develop-eggs/ 15 | dist/ 16 | downloads/ 17 | eggs/ 18 | .eggs/ 19 | lib/ 20 | lib64/ 21 | parts/ 22 | sdist/ 23 | var/ 24 | wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *.cover 49 | .hypothesis/ 50 | 51 | # Translations 52 | *.mo 53 | *.pot 54 | 55 | # Django stuff: 56 | *.log 57 | .static_storage/ 58 | .media/ 59 | local_settings.py 60 | 61 | # Flask stuff: 62 | instance/ 63 | .webassets-cache 64 | 65 | # Scrapy stuff: 66 | .scrapy 67 | 68 | # Sphinx documentation 69 | docs/_build/ 70 | 71 | # PyBuilder 72 | target/ 73 | 74 | # Jupyter Notebook 75 | .ipynb_checkpoints 76 | 77 | # pyenv 78 | .python-version 79 | 80 | # celery beat schedule file 81 | celerybeat-schedule 82 | 83 | # SageMath parsed files 84 | *.sage.py 85 | 86 | # Environments 87 | .env 88 | .venv 89 | env/ 90 | venv/ 91 | ENV/ 92 | env.bak/ 93 | venv.bak/ 94 | 95 | # Spyder project settings 96 | .spyderproject 97 | .spyproject 98 | 99 | # Rope project settings 100 | .ropeproject 101 | 102 | # mkdocs documentation 103 | /site 104 | 105 | # mypy 106 | .mypy_cache/ 107 | 108 | 109 | ###Node### 110 | 111 | # Logs 112 | logs 113 | *.log 114 | npm-debug.log* 115 | yarn-debug.log* 116 | yarn-error.log* 117 | 118 | # Runtime data 119 | pids 120 | *.pid 121 | *.seed 122 | *.pid.lock 123 | 124 | # Directory for instrumented libs generated by jscoverage/JSCover 125 | lib-cov 126 | 127 | # Coverage directory used by tools like istanbul 128 | coverage 129 | 130 | # nyc test coverage 131 | .nyc_output 132 | 133 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 134 | .grunt 135 | 136 | # Bower dependency directory (https://bower.io/) 137 | bower_components 138 | 139 | # node-waf configuration 140 | .lock-wscript 141 | 142 | # Compiled binary addons (https://nodejs.org/api/addons.html) 143 | build/Release 144 | 145 | # Dependency directories 146 | node_modules/ 147 | jspm_packages/ 148 | 149 | # Typescript v1 declaration files 150 | typings/ 151 | 152 | # Optional npm cache directory 153 | .npm 154 | 155 | # Optional eslint cache 156 | .eslintcache 157 | 158 | # Optional REPL history 159 | .node_repl_history 160 | 161 | # Output of 'npm pack' 162 | *.tgz 163 | 164 | # Yarn Integrity file 165 | .yarn-integrity 166 | 167 | # dotenv environment variables file 168 | .env 169 | 170 | # next.js build output 171 | .next -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS -------------------------------------------------------------------------------- /nodejs/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sunshine-conversations-api-quickstart-example", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "sunshine-conversations-api-quickstart-example", 9 | "version": "1.0.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "body-parser": "1.19.0", 13 | "express": "4.17.1", 14 | "sunshine-conversations-client": "^14.4.0" 15 | } 16 | }, 17 | "node_modules/@ampproject/remapping": { 18 | "version": "2.3.0", 19 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 20 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 21 | "license": "Apache-2.0", 22 | "peer": true, 23 | "dependencies": { 24 | "@jridgewell/gen-mapping": "^0.3.5", 25 | "@jridgewell/trace-mapping": "^0.3.24" 26 | }, 27 | "engines": { 28 | "node": ">=6.0.0" 29 | } 30 | }, 31 | "node_modules/@babel/cli": { 32 | "version": "7.17.10", 33 | "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.17.10.tgz", 34 | "integrity": "sha512-OygVO1M2J4yPMNOW9pb+I6kFGpQK77HmG44Oz3hg8xQIl5L/2zq+ZohwAdSaqYgVwM0SfmPHZHphH4wR8qzVYw==", 35 | "dependencies": { 36 | "@jridgewell/trace-mapping": "^0.3.8", 37 | "commander": "^4.0.1", 38 | "convert-source-map": "^1.1.0", 39 | "fs-readdir-recursive": "^1.1.0", 40 | "glob": "^7.0.0", 41 | "make-dir": "^2.1.0", 42 | "slash": "^2.0.0" 43 | }, 44 | "bin": { 45 | "babel": "bin/babel.js", 46 | "babel-external-helpers": "bin/babel-external-helpers.js" 47 | }, 48 | "engines": { 49 | "node": ">=6.9.0" 50 | }, 51 | "optionalDependencies": { 52 | "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", 53 | "chokidar": "^3.4.0" 54 | }, 55 | "peerDependencies": { 56 | "@babel/core": "^7.0.0-0" 57 | } 58 | }, 59 | "node_modules/@babel/code-frame": { 60 | "version": "7.26.2", 61 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", 62 | "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", 63 | "license": "MIT", 64 | "peer": true, 65 | "dependencies": { 66 | "@babel/helper-validator-identifier": "^7.25.9", 67 | "js-tokens": "^4.0.0", 68 | "picocolors": "^1.0.0" 69 | }, 70 | "engines": { 71 | "node": ">=6.9.0" 72 | } 73 | }, 74 | "node_modules/@babel/compat-data": { 75 | "version": "7.26.8", 76 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", 77 | "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", 78 | "license": "MIT", 79 | "peer": true, 80 | "engines": { 81 | "node": ">=6.9.0" 82 | } 83 | }, 84 | "node_modules/@babel/core": { 85 | "version": "7.26.9", 86 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", 87 | "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", 88 | "license": "MIT", 89 | "peer": true, 90 | "dependencies": { 91 | "@ampproject/remapping": "^2.2.0", 92 | "@babel/code-frame": "^7.26.2", 93 | "@babel/generator": "^7.26.9", 94 | "@babel/helper-compilation-targets": "^7.26.5", 95 | "@babel/helper-module-transforms": "^7.26.0", 96 | "@babel/helpers": "^7.26.9", 97 | "@babel/parser": "^7.26.9", 98 | "@babel/template": "^7.26.9", 99 | "@babel/traverse": "^7.26.9", 100 | "@babel/types": "^7.26.9", 101 | "convert-source-map": "^2.0.0", 102 | "debug": "^4.1.0", 103 | "gensync": "^1.0.0-beta.2", 104 | "json5": "^2.2.3", 105 | "semver": "^6.3.1" 106 | }, 107 | "engines": { 108 | "node": ">=6.9.0" 109 | }, 110 | "funding": { 111 | "type": "opencollective", 112 | "url": "https://opencollective.com/babel" 113 | } 114 | }, 115 | "node_modules/@babel/core/node_modules/convert-source-map": { 116 | "version": "2.0.0", 117 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 118 | "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", 119 | "license": "MIT", 120 | "peer": true 121 | }, 122 | "node_modules/@babel/core/node_modules/debug": { 123 | "version": "4.4.0", 124 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", 125 | "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 126 | "license": "MIT", 127 | "peer": true, 128 | "dependencies": { 129 | "ms": "^2.1.3" 130 | }, 131 | "engines": { 132 | "node": ">=6.0" 133 | }, 134 | "peerDependenciesMeta": { 135 | "supports-color": { 136 | "optional": true 137 | } 138 | } 139 | }, 140 | "node_modules/@babel/core/node_modules/ms": { 141 | "version": "2.1.3", 142 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 143 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 144 | "license": "MIT", 145 | "peer": true 146 | }, 147 | "node_modules/@babel/core/node_modules/semver": { 148 | "version": "6.3.1", 149 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 150 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 151 | "license": "ISC", 152 | "peer": true, 153 | "bin": { 154 | "semver": "bin/semver.js" 155 | } 156 | }, 157 | "node_modules/@babel/generator": { 158 | "version": "7.26.9", 159 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", 160 | "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", 161 | "license": "MIT", 162 | "peer": true, 163 | "dependencies": { 164 | "@babel/parser": "^7.26.9", 165 | "@babel/types": "^7.26.9", 166 | "@jridgewell/gen-mapping": "^0.3.5", 167 | "@jridgewell/trace-mapping": "^0.3.25", 168 | "jsesc": "^3.0.2" 169 | }, 170 | "engines": { 171 | "node": ">=6.9.0" 172 | } 173 | }, 174 | "node_modules/@babel/helper-compilation-targets": { 175 | "version": "7.26.5", 176 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", 177 | "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", 178 | "license": "MIT", 179 | "peer": true, 180 | "dependencies": { 181 | "@babel/compat-data": "^7.26.5", 182 | "@babel/helper-validator-option": "^7.25.9", 183 | "browserslist": "^4.24.0", 184 | "lru-cache": "^5.1.1", 185 | "semver": "^6.3.1" 186 | }, 187 | "engines": { 188 | "node": ">=6.9.0" 189 | } 190 | }, 191 | "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { 192 | "version": "5.1.1", 193 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 194 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 195 | "license": "ISC", 196 | "peer": true, 197 | "dependencies": { 198 | "yallist": "^3.0.2" 199 | } 200 | }, 201 | "node_modules/@babel/helper-compilation-targets/node_modules/semver": { 202 | "version": "6.3.1", 203 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 204 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 205 | "license": "ISC", 206 | "peer": true, 207 | "bin": { 208 | "semver": "bin/semver.js" 209 | } 210 | }, 211 | "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { 212 | "version": "3.1.1", 213 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 214 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 215 | "license": "ISC", 216 | "peer": true 217 | }, 218 | "node_modules/@babel/helper-module-imports": { 219 | "version": "7.25.9", 220 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", 221 | "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", 222 | "license": "MIT", 223 | "peer": true, 224 | "dependencies": { 225 | "@babel/traverse": "^7.25.9", 226 | "@babel/types": "^7.25.9" 227 | }, 228 | "engines": { 229 | "node": ">=6.9.0" 230 | } 231 | }, 232 | "node_modules/@babel/helper-module-transforms": { 233 | "version": "7.26.0", 234 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", 235 | "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", 236 | "license": "MIT", 237 | "peer": true, 238 | "dependencies": { 239 | "@babel/helper-module-imports": "^7.25.9", 240 | "@babel/helper-validator-identifier": "^7.25.9", 241 | "@babel/traverse": "^7.25.9" 242 | }, 243 | "engines": { 244 | "node": ">=6.9.0" 245 | }, 246 | "peerDependencies": { 247 | "@babel/core": "^7.0.0" 248 | } 249 | }, 250 | "node_modules/@babel/helper-string-parser": { 251 | "version": "7.25.9", 252 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", 253 | "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", 254 | "license": "MIT", 255 | "peer": true, 256 | "engines": { 257 | "node": ">=6.9.0" 258 | } 259 | }, 260 | "node_modules/@babel/helper-validator-identifier": { 261 | "version": "7.25.9", 262 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", 263 | "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", 264 | "license": "MIT", 265 | "peer": true, 266 | "engines": { 267 | "node": ">=6.9.0" 268 | } 269 | }, 270 | "node_modules/@babel/helper-validator-option": { 271 | "version": "7.25.9", 272 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", 273 | "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", 274 | "license": "MIT", 275 | "peer": true, 276 | "engines": { 277 | "node": ">=6.9.0" 278 | } 279 | }, 280 | "node_modules/@babel/helpers": { 281 | "version": "7.26.9", 282 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", 283 | "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", 284 | "license": "MIT", 285 | "peer": true, 286 | "dependencies": { 287 | "@babel/template": "^7.26.9", 288 | "@babel/types": "^7.26.9" 289 | }, 290 | "engines": { 291 | "node": ">=6.9.0" 292 | } 293 | }, 294 | "node_modules/@babel/parser": { 295 | "version": "7.26.9", 296 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", 297 | "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", 298 | "license": "MIT", 299 | "peer": true, 300 | "dependencies": { 301 | "@babel/types": "^7.26.9" 302 | }, 303 | "bin": { 304 | "parser": "bin/babel-parser.js" 305 | }, 306 | "engines": { 307 | "node": ">=6.0.0" 308 | } 309 | }, 310 | "node_modules/@babel/template": { 311 | "version": "7.26.9", 312 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", 313 | "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", 314 | "license": "MIT", 315 | "peer": true, 316 | "dependencies": { 317 | "@babel/code-frame": "^7.26.2", 318 | "@babel/parser": "^7.26.9", 319 | "@babel/types": "^7.26.9" 320 | }, 321 | "engines": { 322 | "node": ">=6.9.0" 323 | } 324 | }, 325 | "node_modules/@babel/traverse": { 326 | "version": "7.26.9", 327 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", 328 | "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", 329 | "license": "MIT", 330 | "peer": true, 331 | "dependencies": { 332 | "@babel/code-frame": "^7.26.2", 333 | "@babel/generator": "^7.26.9", 334 | "@babel/parser": "^7.26.9", 335 | "@babel/template": "^7.26.9", 336 | "@babel/types": "^7.26.9", 337 | "debug": "^4.3.1", 338 | "globals": "^11.1.0" 339 | }, 340 | "engines": { 341 | "node": ">=6.9.0" 342 | } 343 | }, 344 | "node_modules/@babel/traverse/node_modules/debug": { 345 | "version": "4.4.0", 346 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", 347 | "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 348 | "license": "MIT", 349 | "peer": true, 350 | "dependencies": { 351 | "ms": "^2.1.3" 352 | }, 353 | "engines": { 354 | "node": ">=6.0" 355 | }, 356 | "peerDependenciesMeta": { 357 | "supports-color": { 358 | "optional": true 359 | } 360 | } 361 | }, 362 | "node_modules/@babel/traverse/node_modules/ms": { 363 | "version": "2.1.3", 364 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 365 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 366 | "license": "MIT", 367 | "peer": true 368 | }, 369 | "node_modules/@babel/types": { 370 | "version": "7.26.9", 371 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", 372 | "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", 373 | "license": "MIT", 374 | "peer": true, 375 | "dependencies": { 376 | "@babel/helper-string-parser": "^7.25.9", 377 | "@babel/helper-validator-identifier": "^7.25.9" 378 | }, 379 | "engines": { 380 | "node": ">=6.9.0" 381 | } 382 | }, 383 | "node_modules/@jridgewell/gen-mapping": { 384 | "version": "0.3.8", 385 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 386 | "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 387 | "license": "MIT", 388 | "peer": true, 389 | "dependencies": { 390 | "@jridgewell/set-array": "^1.2.1", 391 | "@jridgewell/sourcemap-codec": "^1.4.10", 392 | "@jridgewell/trace-mapping": "^0.3.24" 393 | }, 394 | "engines": { 395 | "node": ">=6.0.0" 396 | } 397 | }, 398 | "node_modules/@jridgewell/resolve-uri": { 399 | "version": "3.1.2", 400 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 401 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 402 | "license": "MIT", 403 | "engines": { 404 | "node": ">=6.0.0" 405 | } 406 | }, 407 | "node_modules/@jridgewell/set-array": { 408 | "version": "1.2.1", 409 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 410 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 411 | "license": "MIT", 412 | "peer": true, 413 | "engines": { 414 | "node": ">=6.0.0" 415 | } 416 | }, 417 | "node_modules/@jridgewell/sourcemap-codec": { 418 | "version": "1.5.0", 419 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 420 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 421 | "license": "MIT" 422 | }, 423 | "node_modules/@jridgewell/trace-mapping": { 424 | "version": "0.3.25", 425 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 426 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 427 | "license": "MIT", 428 | "dependencies": { 429 | "@jridgewell/resolve-uri": "^3.1.0", 430 | "@jridgewell/sourcemap-codec": "^1.4.14" 431 | } 432 | }, 433 | "node_modules/@nicolo-ribaudo/chokidar-2": { 434 | "version": "2.1.8-no-fsevents.3", 435 | "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", 436 | "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", 437 | "optional": true 438 | }, 439 | "node_modules/accepts": { 440 | "version": "1.3.7", 441 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 442 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 443 | "dependencies": { 444 | "mime-types": "~2.1.24", 445 | "negotiator": "0.6.2" 446 | }, 447 | "engines": { 448 | "node": ">= 0.6" 449 | } 450 | }, 451 | "node_modules/anymatch": { 452 | "version": "3.1.2", 453 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 454 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 455 | "optional": true, 456 | "dependencies": { 457 | "normalize-path": "^3.0.0", 458 | "picomatch": "^2.0.4" 459 | }, 460 | "engines": { 461 | "node": ">= 8" 462 | } 463 | }, 464 | "node_modules/array-flatten": { 465 | "version": "1.1.1", 466 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 467 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 468 | }, 469 | "node_modules/asynckit": { 470 | "version": "0.4.0", 471 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 472 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 473 | }, 474 | "node_modules/balanced-match": { 475 | "version": "1.0.2", 476 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 477 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 478 | }, 479 | "node_modules/binary-extensions": { 480 | "version": "2.2.0", 481 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 482 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 483 | "optional": true, 484 | "engines": { 485 | "node": ">=8" 486 | } 487 | }, 488 | "node_modules/body-parser": { 489 | "version": "1.19.0", 490 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 491 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 492 | "dependencies": { 493 | "bytes": "3.1.0", 494 | "content-type": "~1.0.4", 495 | "debug": "2.6.9", 496 | "depd": "~1.1.2", 497 | "http-errors": "1.7.2", 498 | "iconv-lite": "0.4.24", 499 | "on-finished": "~2.3.0", 500 | "qs": "6.7.0", 501 | "raw-body": "2.4.0", 502 | "type-is": "~1.6.17" 503 | }, 504 | "engines": { 505 | "node": ">= 0.8" 506 | } 507 | }, 508 | "node_modules/brace-expansion": { 509 | "version": "1.1.11", 510 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 511 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 512 | "dependencies": { 513 | "balanced-match": "^1.0.0", 514 | "concat-map": "0.0.1" 515 | } 516 | }, 517 | "node_modules/braces": { 518 | "version": "3.0.2", 519 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 520 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 521 | "optional": true, 522 | "dependencies": { 523 | "fill-range": "^7.0.1" 524 | }, 525 | "engines": { 526 | "node": ">=8" 527 | } 528 | }, 529 | "node_modules/browserslist": { 530 | "version": "4.24.4", 531 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", 532 | "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", 533 | "funding": [ 534 | { 535 | "type": "opencollective", 536 | "url": "https://opencollective.com/browserslist" 537 | }, 538 | { 539 | "type": "tidelift", 540 | "url": "https://tidelift.com/funding/github/npm/browserslist" 541 | }, 542 | { 543 | "type": "github", 544 | "url": "https://github.com/sponsors/ai" 545 | } 546 | ], 547 | "license": "MIT", 548 | "peer": true, 549 | "dependencies": { 550 | "caniuse-lite": "^1.0.30001688", 551 | "electron-to-chromium": "^1.5.73", 552 | "node-releases": "^2.0.19", 553 | "update-browserslist-db": "^1.1.1" 554 | }, 555 | "bin": { 556 | "browserslist": "cli.js" 557 | }, 558 | "engines": { 559 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 560 | } 561 | }, 562 | "node_modules/bytes": { 563 | "version": "3.1.0", 564 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 565 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", 566 | "engines": { 567 | "node": ">= 0.8" 568 | } 569 | }, 570 | "node_modules/call-bind": { 571 | "version": "1.0.2", 572 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 573 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 574 | "dependencies": { 575 | "function-bind": "^1.1.1", 576 | "get-intrinsic": "^1.0.2" 577 | }, 578 | "funding": { 579 | "url": "https://github.com/sponsors/ljharb" 580 | } 581 | }, 582 | "node_modules/caniuse-lite": { 583 | "version": "1.0.30001701", 584 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz", 585 | "integrity": "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==", 586 | "funding": [ 587 | { 588 | "type": "opencollective", 589 | "url": "https://opencollective.com/browserslist" 590 | }, 591 | { 592 | "type": "tidelift", 593 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 594 | }, 595 | { 596 | "type": "github", 597 | "url": "https://github.com/sponsors/ai" 598 | } 599 | ], 600 | "license": "CC-BY-4.0", 601 | "peer": true 602 | }, 603 | "node_modules/chokidar": { 604 | "version": "3.5.3", 605 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 606 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 607 | "funding": [ 608 | { 609 | "type": "individual", 610 | "url": "https://paulmillr.com/funding/" 611 | } 612 | ], 613 | "optional": true, 614 | "dependencies": { 615 | "anymatch": "~3.1.2", 616 | "braces": "~3.0.2", 617 | "glob-parent": "~5.1.2", 618 | "is-binary-path": "~2.1.0", 619 | "is-glob": "~4.0.1", 620 | "normalize-path": "~3.0.0", 621 | "readdirp": "~3.6.0" 622 | }, 623 | "engines": { 624 | "node": ">= 8.10.0" 625 | }, 626 | "optionalDependencies": { 627 | "fsevents": "~2.3.2" 628 | } 629 | }, 630 | "node_modules/combined-stream": { 631 | "version": "1.0.8", 632 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 633 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 634 | "dependencies": { 635 | "delayed-stream": "~1.0.0" 636 | }, 637 | "engines": { 638 | "node": ">= 0.8" 639 | } 640 | }, 641 | "node_modules/commander": { 642 | "version": "4.1.1", 643 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", 644 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 645 | "engines": { 646 | "node": ">= 6" 647 | } 648 | }, 649 | "node_modules/component-emitter": { 650 | "version": "1.3.0", 651 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", 652 | "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" 653 | }, 654 | "node_modules/concat-map": { 655 | "version": "0.0.1", 656 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 657 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 658 | }, 659 | "node_modules/content-disposition": { 660 | "version": "0.5.3", 661 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 662 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 663 | "dependencies": { 664 | "safe-buffer": "5.1.2" 665 | }, 666 | "engines": { 667 | "node": ">= 0.6" 668 | } 669 | }, 670 | "node_modules/content-type": { 671 | "version": "1.0.4", 672 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 673 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 674 | "engines": { 675 | "node": ">= 0.6" 676 | } 677 | }, 678 | "node_modules/convert-source-map": { 679 | "version": "1.8.0", 680 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", 681 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", 682 | "dependencies": { 683 | "safe-buffer": "~5.1.1" 684 | } 685 | }, 686 | "node_modules/cookie": { 687 | "version": "0.4.0", 688 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 689 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", 690 | "engines": { 691 | "node": ">= 0.6" 692 | } 693 | }, 694 | "node_modules/cookie-signature": { 695 | "version": "1.0.6", 696 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 697 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 698 | }, 699 | "node_modules/cookiejar": { 700 | "version": "2.1.3", 701 | "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", 702 | "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" 703 | }, 704 | "node_modules/debug": { 705 | "version": "2.6.9", 706 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 707 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 708 | "dependencies": { 709 | "ms": "2.0.0" 710 | } 711 | }, 712 | "node_modules/debug/node_modules/ms": { 713 | "version": "2.0.0", 714 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 715 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 716 | }, 717 | "node_modules/delayed-stream": { 718 | "version": "1.0.0", 719 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 720 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 721 | "engines": { 722 | "node": ">=0.4.0" 723 | } 724 | }, 725 | "node_modules/depd": { 726 | "version": "1.1.2", 727 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 728 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", 729 | "engines": { 730 | "node": ">= 0.6" 731 | } 732 | }, 733 | "node_modules/destroy": { 734 | "version": "1.0.4", 735 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 736 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 737 | }, 738 | "node_modules/ee-first": { 739 | "version": "1.1.1", 740 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 741 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 742 | }, 743 | "node_modules/electron-to-chromium": { 744 | "version": "1.5.109", 745 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.109.tgz", 746 | "integrity": "sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ==", 747 | "license": "ISC", 748 | "peer": true 749 | }, 750 | "node_modules/encodeurl": { 751 | "version": "1.0.2", 752 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 753 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", 754 | "engines": { 755 | "node": ">= 0.8" 756 | } 757 | }, 758 | "node_modules/escalade": { 759 | "version": "3.2.0", 760 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 761 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 762 | "license": "MIT", 763 | "peer": true, 764 | "engines": { 765 | "node": ">=6" 766 | } 767 | }, 768 | "node_modules/escape-html": { 769 | "version": "1.0.3", 770 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 771 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 772 | }, 773 | "node_modules/etag": { 774 | "version": "1.8.1", 775 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 776 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", 777 | "engines": { 778 | "node": ">= 0.6" 779 | } 780 | }, 781 | "node_modules/express": { 782 | "version": "4.17.1", 783 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 784 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 785 | "dependencies": { 786 | "accepts": "~1.3.7", 787 | "array-flatten": "1.1.1", 788 | "body-parser": "1.19.0", 789 | "content-disposition": "0.5.3", 790 | "content-type": "~1.0.4", 791 | "cookie": "0.4.0", 792 | "cookie-signature": "1.0.6", 793 | "debug": "2.6.9", 794 | "depd": "~1.1.2", 795 | "encodeurl": "~1.0.2", 796 | "escape-html": "~1.0.3", 797 | "etag": "~1.8.1", 798 | "finalhandler": "~1.1.2", 799 | "fresh": "0.5.2", 800 | "merge-descriptors": "1.0.1", 801 | "methods": "~1.1.2", 802 | "on-finished": "~2.3.0", 803 | "parseurl": "~1.3.3", 804 | "path-to-regexp": "0.1.7", 805 | "proxy-addr": "~2.0.5", 806 | "qs": "6.7.0", 807 | "range-parser": "~1.2.1", 808 | "safe-buffer": "5.1.2", 809 | "send": "0.17.1", 810 | "serve-static": "1.14.1", 811 | "setprototypeof": "1.1.1", 812 | "statuses": "~1.5.0", 813 | "type-is": "~1.6.18", 814 | "utils-merge": "1.0.1", 815 | "vary": "~1.1.2" 816 | }, 817 | "engines": { 818 | "node": ">= 0.10.0" 819 | } 820 | }, 821 | "node_modules/fast-safe-stringify": { 822 | "version": "2.1.1", 823 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", 824 | "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" 825 | }, 826 | "node_modules/fill-range": { 827 | "version": "7.0.1", 828 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 829 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 830 | "optional": true, 831 | "dependencies": { 832 | "to-regex-range": "^5.0.1" 833 | }, 834 | "engines": { 835 | "node": ">=8" 836 | } 837 | }, 838 | "node_modules/finalhandler": { 839 | "version": "1.1.2", 840 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 841 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 842 | "dependencies": { 843 | "debug": "2.6.9", 844 | "encodeurl": "~1.0.2", 845 | "escape-html": "~1.0.3", 846 | "on-finished": "~2.3.0", 847 | "parseurl": "~1.3.3", 848 | "statuses": "~1.5.0", 849 | "unpipe": "~1.0.0" 850 | }, 851 | "engines": { 852 | "node": ">= 0.8" 853 | } 854 | }, 855 | "node_modules/form-data": { 856 | "version": "3.0.1", 857 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", 858 | "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", 859 | "dependencies": { 860 | "asynckit": "^0.4.0", 861 | "combined-stream": "^1.0.8", 862 | "mime-types": "^2.1.12" 863 | }, 864 | "engines": { 865 | "node": ">= 6" 866 | } 867 | }, 868 | "node_modules/formidable": { 869 | "version": "1.2.6", 870 | "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", 871 | "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", 872 | "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", 873 | "funding": { 874 | "url": "https://ko-fi.com/tunnckoCore/commissions" 875 | } 876 | }, 877 | "node_modules/forwarded": { 878 | "version": "0.2.0", 879 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 880 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 881 | "engines": { 882 | "node": ">= 0.6" 883 | } 884 | }, 885 | "node_modules/fresh": { 886 | "version": "0.5.2", 887 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 888 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", 889 | "engines": { 890 | "node": ">= 0.6" 891 | } 892 | }, 893 | "node_modules/fs-readdir-recursive": { 894 | "version": "1.1.0", 895 | "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", 896 | "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" 897 | }, 898 | "node_modules/fs.realpath": { 899 | "version": "1.0.0", 900 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 901 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 902 | }, 903 | "node_modules/fsevents": { 904 | "version": "2.3.2", 905 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 906 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 907 | "hasInstallScript": true, 908 | "optional": true, 909 | "os": [ 910 | "darwin" 911 | ], 912 | "engines": { 913 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 914 | } 915 | }, 916 | "node_modules/function-bind": { 917 | "version": "1.1.1", 918 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 919 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 920 | }, 921 | "node_modules/gensync": { 922 | "version": "1.0.0-beta.2", 923 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 924 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 925 | "license": "MIT", 926 | "peer": true, 927 | "engines": { 928 | "node": ">=6.9.0" 929 | } 930 | }, 931 | "node_modules/get-intrinsic": { 932 | "version": "1.1.1", 933 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 934 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 935 | "dependencies": { 936 | "function-bind": "^1.1.1", 937 | "has": "^1.0.3", 938 | "has-symbols": "^1.0.1" 939 | }, 940 | "funding": { 941 | "url": "https://github.com/sponsors/ljharb" 942 | } 943 | }, 944 | "node_modules/glob": { 945 | "version": "7.2.0", 946 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", 947 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", 948 | "deprecated": "Glob versions prior to v9 are no longer supported", 949 | "dependencies": { 950 | "fs.realpath": "^1.0.0", 951 | "inflight": "^1.0.4", 952 | "inherits": "2", 953 | "minimatch": "^3.0.4", 954 | "once": "^1.3.0", 955 | "path-is-absolute": "^1.0.0" 956 | }, 957 | "engines": { 958 | "node": "*" 959 | }, 960 | "funding": { 961 | "url": "https://github.com/sponsors/isaacs" 962 | } 963 | }, 964 | "node_modules/glob-parent": { 965 | "version": "5.1.2", 966 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 967 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 968 | "optional": true, 969 | "dependencies": { 970 | "is-glob": "^4.0.1" 971 | }, 972 | "engines": { 973 | "node": ">= 6" 974 | } 975 | }, 976 | "node_modules/globals": { 977 | "version": "11.12.0", 978 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 979 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 980 | "license": "MIT", 981 | "peer": true, 982 | "engines": { 983 | "node": ">=4" 984 | } 985 | }, 986 | "node_modules/has": { 987 | "version": "1.0.3", 988 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 989 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 990 | "dependencies": { 991 | "function-bind": "^1.1.1" 992 | }, 993 | "engines": { 994 | "node": ">= 0.4.0" 995 | } 996 | }, 997 | "node_modules/has-symbols": { 998 | "version": "1.0.3", 999 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 1000 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 1001 | "engines": { 1002 | "node": ">= 0.4" 1003 | }, 1004 | "funding": { 1005 | "url": "https://github.com/sponsors/ljharb" 1006 | } 1007 | }, 1008 | "node_modules/http-errors": { 1009 | "version": "1.7.2", 1010 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 1011 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 1012 | "dependencies": { 1013 | "depd": "~1.1.2", 1014 | "inherits": "2.0.3", 1015 | "setprototypeof": "1.1.1", 1016 | "statuses": ">= 1.5.0 < 2", 1017 | "toidentifier": "1.0.0" 1018 | }, 1019 | "engines": { 1020 | "node": ">= 0.6" 1021 | } 1022 | }, 1023 | "node_modules/iconv-lite": { 1024 | "version": "0.4.24", 1025 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1026 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1027 | "dependencies": { 1028 | "safer-buffer": ">= 2.1.2 < 3" 1029 | }, 1030 | "engines": { 1031 | "node": ">=0.10.0" 1032 | } 1033 | }, 1034 | "node_modules/inflight": { 1035 | "version": "1.0.6", 1036 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1037 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1038 | "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", 1039 | "dependencies": { 1040 | "once": "^1.3.0", 1041 | "wrappy": "1" 1042 | } 1043 | }, 1044 | "node_modules/inherits": { 1045 | "version": "2.0.3", 1046 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1047 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1048 | }, 1049 | "node_modules/ipaddr.js": { 1050 | "version": "1.9.1", 1051 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 1052 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 1053 | "engines": { 1054 | "node": ">= 0.10" 1055 | } 1056 | }, 1057 | "node_modules/is-binary-path": { 1058 | "version": "2.1.0", 1059 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1060 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1061 | "optional": true, 1062 | "dependencies": { 1063 | "binary-extensions": "^2.0.0" 1064 | }, 1065 | "engines": { 1066 | "node": ">=8" 1067 | } 1068 | }, 1069 | "node_modules/is-extglob": { 1070 | "version": "2.1.1", 1071 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1072 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1073 | "optional": true, 1074 | "engines": { 1075 | "node": ">=0.10.0" 1076 | } 1077 | }, 1078 | "node_modules/is-glob": { 1079 | "version": "4.0.3", 1080 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1081 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1082 | "optional": true, 1083 | "dependencies": { 1084 | "is-extglob": "^2.1.1" 1085 | }, 1086 | "engines": { 1087 | "node": ">=0.10.0" 1088 | } 1089 | }, 1090 | "node_modules/is-number": { 1091 | "version": "7.0.0", 1092 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1093 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1094 | "optional": true, 1095 | "engines": { 1096 | "node": ">=0.12.0" 1097 | } 1098 | }, 1099 | "node_modules/js-tokens": { 1100 | "version": "4.0.0", 1101 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1102 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1103 | "license": "MIT", 1104 | "peer": true 1105 | }, 1106 | "node_modules/jsesc": { 1107 | "version": "3.1.0", 1108 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", 1109 | "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", 1110 | "license": "MIT", 1111 | "peer": true, 1112 | "bin": { 1113 | "jsesc": "bin/jsesc" 1114 | }, 1115 | "engines": { 1116 | "node": ">=6" 1117 | } 1118 | }, 1119 | "node_modules/json5": { 1120 | "version": "2.2.3", 1121 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 1122 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 1123 | "license": "MIT", 1124 | "peer": true, 1125 | "bin": { 1126 | "json5": "lib/cli.js" 1127 | }, 1128 | "engines": { 1129 | "node": ">=6" 1130 | } 1131 | }, 1132 | "node_modules/lru-cache": { 1133 | "version": "6.0.0", 1134 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1135 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1136 | "dependencies": { 1137 | "yallist": "^4.0.0" 1138 | }, 1139 | "engines": { 1140 | "node": ">=10" 1141 | } 1142 | }, 1143 | "node_modules/make-dir": { 1144 | "version": "2.1.0", 1145 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 1146 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 1147 | "dependencies": { 1148 | "pify": "^4.0.1", 1149 | "semver": "^5.6.0" 1150 | }, 1151 | "engines": { 1152 | "node": ">=6" 1153 | } 1154 | }, 1155 | "node_modules/media-typer": { 1156 | "version": "0.3.0", 1157 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1158 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", 1159 | "engines": { 1160 | "node": ">= 0.6" 1161 | } 1162 | }, 1163 | "node_modules/merge-descriptors": { 1164 | "version": "1.0.1", 1165 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1166 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1167 | }, 1168 | "node_modules/methods": { 1169 | "version": "1.1.2", 1170 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1171 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", 1172 | "engines": { 1173 | "node": ">= 0.6" 1174 | } 1175 | }, 1176 | "node_modules/mime": { 1177 | "version": "1.6.0", 1178 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1179 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 1180 | "bin": { 1181 | "mime": "cli.js" 1182 | }, 1183 | "engines": { 1184 | "node": ">=4" 1185 | } 1186 | }, 1187 | "node_modules/mime-db": { 1188 | "version": "1.44.0", 1189 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 1190 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", 1191 | "engines": { 1192 | "node": ">= 0.6" 1193 | } 1194 | }, 1195 | "node_modules/mime-types": { 1196 | "version": "2.1.27", 1197 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 1198 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 1199 | "dependencies": { 1200 | "mime-db": "1.44.0" 1201 | }, 1202 | "engines": { 1203 | "node": ">= 0.6" 1204 | } 1205 | }, 1206 | "node_modules/minimatch": { 1207 | "version": "3.1.2", 1208 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1209 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1210 | "dependencies": { 1211 | "brace-expansion": "^1.1.7" 1212 | }, 1213 | "engines": { 1214 | "node": "*" 1215 | } 1216 | }, 1217 | "node_modules/ms": { 1218 | "version": "2.1.2", 1219 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1220 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1221 | }, 1222 | "node_modules/negotiator": { 1223 | "version": "0.6.2", 1224 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 1225 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", 1226 | "engines": { 1227 | "node": ">= 0.6" 1228 | } 1229 | }, 1230 | "node_modules/node-releases": { 1231 | "version": "2.0.19", 1232 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", 1233 | "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", 1234 | "license": "MIT", 1235 | "peer": true 1236 | }, 1237 | "node_modules/normalize-path": { 1238 | "version": "3.0.0", 1239 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1240 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1241 | "optional": true, 1242 | "engines": { 1243 | "node": ">=0.10.0" 1244 | } 1245 | }, 1246 | "node_modules/object-inspect": { 1247 | "version": "1.12.0", 1248 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", 1249 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", 1250 | "funding": { 1251 | "url": "https://github.com/sponsors/ljharb" 1252 | } 1253 | }, 1254 | "node_modules/on-finished": { 1255 | "version": "2.3.0", 1256 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1257 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1258 | "dependencies": { 1259 | "ee-first": "1.1.1" 1260 | }, 1261 | "engines": { 1262 | "node": ">= 0.8" 1263 | } 1264 | }, 1265 | "node_modules/once": { 1266 | "version": "1.4.0", 1267 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1268 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1269 | "dependencies": { 1270 | "wrappy": "1" 1271 | } 1272 | }, 1273 | "node_modules/parseurl": { 1274 | "version": "1.3.3", 1275 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1276 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 1277 | "engines": { 1278 | "node": ">= 0.8" 1279 | } 1280 | }, 1281 | "node_modules/path-is-absolute": { 1282 | "version": "1.0.1", 1283 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1284 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1285 | "engines": { 1286 | "node": ">=0.10.0" 1287 | } 1288 | }, 1289 | "node_modules/path-to-regexp": { 1290 | "version": "0.1.7", 1291 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1292 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1293 | }, 1294 | "node_modules/picocolors": { 1295 | "version": "1.1.1", 1296 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 1297 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 1298 | "license": "ISC", 1299 | "peer": true 1300 | }, 1301 | "node_modules/picomatch": { 1302 | "version": "2.3.1", 1303 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1304 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1305 | "optional": true, 1306 | "engines": { 1307 | "node": ">=8.6" 1308 | }, 1309 | "funding": { 1310 | "url": "https://github.com/sponsors/jonschlinkert" 1311 | } 1312 | }, 1313 | "node_modules/pify": { 1314 | "version": "4.0.1", 1315 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 1316 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 1317 | "engines": { 1318 | "node": ">=6" 1319 | } 1320 | }, 1321 | "node_modules/proxy-addr": { 1322 | "version": "2.0.7", 1323 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 1324 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1325 | "dependencies": { 1326 | "forwarded": "0.2.0", 1327 | "ipaddr.js": "1.9.1" 1328 | }, 1329 | "engines": { 1330 | "node": ">= 0.10" 1331 | } 1332 | }, 1333 | "node_modules/qs": { 1334 | "version": "6.7.0", 1335 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 1336 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", 1337 | "engines": { 1338 | "node": ">=0.6" 1339 | } 1340 | }, 1341 | "node_modules/range-parser": { 1342 | "version": "1.2.1", 1343 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1344 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 1345 | "engines": { 1346 | "node": ">= 0.6" 1347 | } 1348 | }, 1349 | "node_modules/raw-body": { 1350 | "version": "2.4.0", 1351 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 1352 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 1353 | "dependencies": { 1354 | "bytes": "3.1.0", 1355 | "http-errors": "1.7.2", 1356 | "iconv-lite": "0.4.24", 1357 | "unpipe": "1.0.0" 1358 | }, 1359 | "engines": { 1360 | "node": ">= 0.8" 1361 | } 1362 | }, 1363 | "node_modules/readable-stream": { 1364 | "version": "3.6.0", 1365 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1366 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1367 | "dependencies": { 1368 | "inherits": "^2.0.3", 1369 | "string_decoder": "^1.1.1", 1370 | "util-deprecate": "^1.0.1" 1371 | }, 1372 | "engines": { 1373 | "node": ">= 6" 1374 | } 1375 | }, 1376 | "node_modules/readdirp": { 1377 | "version": "3.6.0", 1378 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1379 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1380 | "optional": true, 1381 | "dependencies": { 1382 | "picomatch": "^2.2.1" 1383 | }, 1384 | "engines": { 1385 | "node": ">=8.10.0" 1386 | } 1387 | }, 1388 | "node_modules/safe-buffer": { 1389 | "version": "5.1.2", 1390 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1391 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1392 | }, 1393 | "node_modules/safer-buffer": { 1394 | "version": "2.1.2", 1395 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1396 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1397 | }, 1398 | "node_modules/semver": { 1399 | "version": "5.7.1", 1400 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1401 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1402 | "bin": { 1403 | "semver": "bin/semver" 1404 | } 1405 | }, 1406 | "node_modules/send": { 1407 | "version": "0.17.1", 1408 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 1409 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 1410 | "dependencies": { 1411 | "debug": "2.6.9", 1412 | "depd": "~1.1.2", 1413 | "destroy": "~1.0.4", 1414 | "encodeurl": "~1.0.2", 1415 | "escape-html": "~1.0.3", 1416 | "etag": "~1.8.1", 1417 | "fresh": "0.5.2", 1418 | "http-errors": "~1.7.2", 1419 | "mime": "1.6.0", 1420 | "ms": "2.1.1", 1421 | "on-finished": "~2.3.0", 1422 | "range-parser": "~1.2.1", 1423 | "statuses": "~1.5.0" 1424 | }, 1425 | "engines": { 1426 | "node": ">= 0.8.0" 1427 | } 1428 | }, 1429 | "node_modules/send/node_modules/ms": { 1430 | "version": "2.1.1", 1431 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 1432 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 1433 | }, 1434 | "node_modules/serve-static": { 1435 | "version": "1.14.1", 1436 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 1437 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 1438 | "dependencies": { 1439 | "encodeurl": "~1.0.2", 1440 | "escape-html": "~1.0.3", 1441 | "parseurl": "~1.3.3", 1442 | "send": "0.17.1" 1443 | }, 1444 | "engines": { 1445 | "node": ">= 0.8.0" 1446 | } 1447 | }, 1448 | "node_modules/setprototypeof": { 1449 | "version": "1.1.1", 1450 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 1451 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 1452 | }, 1453 | "node_modules/side-channel": { 1454 | "version": "1.0.4", 1455 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 1456 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1457 | "dependencies": { 1458 | "call-bind": "^1.0.0", 1459 | "get-intrinsic": "^1.0.2", 1460 | "object-inspect": "^1.9.0" 1461 | }, 1462 | "funding": { 1463 | "url": "https://github.com/sponsors/ljharb" 1464 | } 1465 | }, 1466 | "node_modules/slash": { 1467 | "version": "2.0.0", 1468 | "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", 1469 | "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", 1470 | "engines": { 1471 | "node": ">=6" 1472 | } 1473 | }, 1474 | "node_modules/statuses": { 1475 | "version": "1.5.0", 1476 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1477 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", 1478 | "engines": { 1479 | "node": ">= 0.6" 1480 | } 1481 | }, 1482 | "node_modules/string_decoder": { 1483 | "version": "1.3.0", 1484 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1485 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1486 | "dependencies": { 1487 | "safe-buffer": "~5.2.0" 1488 | } 1489 | }, 1490 | "node_modules/string_decoder/node_modules/safe-buffer": { 1491 | "version": "5.2.1", 1492 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1493 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1494 | "funding": [ 1495 | { 1496 | "type": "github", 1497 | "url": "https://github.com/sponsors/feross" 1498 | }, 1499 | { 1500 | "type": "patreon", 1501 | "url": "https://www.patreon.com/feross" 1502 | }, 1503 | { 1504 | "type": "consulting", 1505 | "url": "https://feross.org/support" 1506 | } 1507 | ] 1508 | }, 1509 | "node_modules/sunshine-conversations-client": { 1510 | "version": "14.4.0", 1511 | "resolved": "https://registry.npmjs.org/sunshine-conversations-client/-/sunshine-conversations-client-14.4.0.tgz", 1512 | "integrity": "sha512-hiiAri7xF1jweF6zJXNhIY2HCScR7PrfTlv/Ci0LDTz3NrnPXoIz4Ttmr3Bkzfx5Pb7W5jraomS3kCiXIRsLlw==", 1513 | "license": "Apache-2.0", 1514 | "dependencies": { 1515 | "@babel/cli": "^7.0.0", 1516 | "superagent": "^5.3.0" 1517 | } 1518 | }, 1519 | "node_modules/superagent": { 1520 | "version": "5.3.1", 1521 | "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.3.1.tgz", 1522 | "integrity": "sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==", 1523 | "deprecated": "Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net", 1524 | "dependencies": { 1525 | "component-emitter": "^1.3.0", 1526 | "cookiejar": "^2.1.2", 1527 | "debug": "^4.1.1", 1528 | "fast-safe-stringify": "^2.0.7", 1529 | "form-data": "^3.0.0", 1530 | "formidable": "^1.2.2", 1531 | "methods": "^1.1.2", 1532 | "mime": "^2.4.6", 1533 | "qs": "^6.9.4", 1534 | "readable-stream": "^3.6.0", 1535 | "semver": "^7.3.2" 1536 | }, 1537 | "engines": { 1538 | "node": ">= 7.0.0" 1539 | } 1540 | }, 1541 | "node_modules/superagent/node_modules/debug": { 1542 | "version": "4.3.4", 1543 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1544 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1545 | "dependencies": { 1546 | "ms": "2.1.2" 1547 | }, 1548 | "engines": { 1549 | "node": ">=6.0" 1550 | }, 1551 | "peerDependenciesMeta": { 1552 | "supports-color": { 1553 | "optional": true 1554 | } 1555 | } 1556 | }, 1557 | "node_modules/superagent/node_modules/mime": { 1558 | "version": "2.6.0", 1559 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", 1560 | "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", 1561 | "bin": { 1562 | "mime": "cli.js" 1563 | }, 1564 | "engines": { 1565 | "node": ">=4.0.0" 1566 | } 1567 | }, 1568 | "node_modules/superagent/node_modules/qs": { 1569 | "version": "6.10.3", 1570 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", 1571 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", 1572 | "dependencies": { 1573 | "side-channel": "^1.0.4" 1574 | }, 1575 | "engines": { 1576 | "node": ">=0.6" 1577 | }, 1578 | "funding": { 1579 | "url": "https://github.com/sponsors/ljharb" 1580 | } 1581 | }, 1582 | "node_modules/superagent/node_modules/semver": { 1583 | "version": "7.3.7", 1584 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 1585 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 1586 | "dependencies": { 1587 | "lru-cache": "^6.0.0" 1588 | }, 1589 | "bin": { 1590 | "semver": "bin/semver.js" 1591 | }, 1592 | "engines": { 1593 | "node": ">=10" 1594 | } 1595 | }, 1596 | "node_modules/to-regex-range": { 1597 | "version": "5.0.1", 1598 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1599 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1600 | "optional": true, 1601 | "dependencies": { 1602 | "is-number": "^7.0.0" 1603 | }, 1604 | "engines": { 1605 | "node": ">=8.0" 1606 | } 1607 | }, 1608 | "node_modules/toidentifier": { 1609 | "version": "1.0.0", 1610 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 1611 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", 1612 | "engines": { 1613 | "node": ">=0.6" 1614 | } 1615 | }, 1616 | "node_modules/type-is": { 1617 | "version": "1.6.18", 1618 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1619 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1620 | "dependencies": { 1621 | "media-typer": "0.3.0", 1622 | "mime-types": "~2.1.24" 1623 | }, 1624 | "engines": { 1625 | "node": ">= 0.6" 1626 | } 1627 | }, 1628 | "node_modules/unpipe": { 1629 | "version": "1.0.0", 1630 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1631 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", 1632 | "engines": { 1633 | "node": ">= 0.8" 1634 | } 1635 | }, 1636 | "node_modules/update-browserslist-db": { 1637 | "version": "1.1.3", 1638 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", 1639 | "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", 1640 | "funding": [ 1641 | { 1642 | "type": "opencollective", 1643 | "url": "https://opencollective.com/browserslist" 1644 | }, 1645 | { 1646 | "type": "tidelift", 1647 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1648 | }, 1649 | { 1650 | "type": "github", 1651 | "url": "https://github.com/sponsors/ai" 1652 | } 1653 | ], 1654 | "license": "MIT", 1655 | "peer": true, 1656 | "dependencies": { 1657 | "escalade": "^3.2.0", 1658 | "picocolors": "^1.1.1" 1659 | }, 1660 | "bin": { 1661 | "update-browserslist-db": "cli.js" 1662 | }, 1663 | "peerDependencies": { 1664 | "browserslist": ">= 4.21.0" 1665 | } 1666 | }, 1667 | "node_modules/util-deprecate": { 1668 | "version": "1.0.2", 1669 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1670 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1671 | }, 1672 | "node_modules/utils-merge": { 1673 | "version": "1.0.1", 1674 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1675 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", 1676 | "engines": { 1677 | "node": ">= 0.4.0" 1678 | } 1679 | }, 1680 | "node_modules/vary": { 1681 | "version": "1.1.2", 1682 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1683 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", 1684 | "engines": { 1685 | "node": ">= 0.8" 1686 | } 1687 | }, 1688 | "node_modules/wrappy": { 1689 | "version": "1.0.2", 1690 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1691 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1692 | }, 1693 | "node_modules/yallist": { 1694 | "version": "4.0.0", 1695 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1696 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 1697 | } 1698 | } 1699 | } 1700 | --------------------------------------------------------------------------------