├── .github └── workflows │ └── ci.yml ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── examples ├── command-line │ ├── bin │ │ └── greet │ ├── features │ │ ├── greeting.feature │ │ └── step_definitions │ │ │ └── steps.js │ ├── package-lock.json │ ├── package.json │ └── src │ │ └── index.js ├── esm-node │ ├── README.md │ ├── cucumber.js │ ├── features │ │ ├── greeting.feature │ │ └── step_definitions │ │ │ └── steps.js │ ├── package-lock.json │ ├── package.json │ └── src │ │ └── index.js ├── probot │ ├── .dockerignore │ ├── .env.example │ ├── .gitignore │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── app.yml │ ├── cucumber.json │ ├── features │ │ ├── comment_on_issues.feature │ │ └── step_definitions │ │ │ └── steps.ts │ ├── package-lock.json │ ├── package.json │ ├── src │ │ └── index.ts │ ├── test │ │ └── fixtures │ │ │ ├── issues.opened.json │ │ │ └── mock-cert.pem │ └── tsconfig.json ├── typescript-node-commonjs │ ├── cucumber.json │ ├── features │ │ ├── greeting.feature │ │ └── step_definitions │ │ │ └── steps.ts │ ├── package-lock.json │ ├── package.json │ └── src │ │ └── index.ts └── typescript-node-esm │ ├── cucumber.json │ ├── features │ ├── greeting.feature │ └── step_definitions │ │ └── steps.ts │ ├── package-lock.json │ ├── package.json │ ├── src │ └── index.ts │ └── tsconfig.json └── renovate.json /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: [main] 6 | pull_request: 7 | branches: [main] 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | 13 | strategy: 14 | matrix: 15 | node-version: [20.x] 16 | 17 | steps: 18 | - uses: actions/checkout@v4 19 | - name: Use Node.js ${{ matrix.node-version }} 20 | uses: actions/setup-node@v4 21 | with: 22 | node-version: ${{ matrix.node-version }} 23 | - run: make 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Cucumber Examples 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | examples := $(wildcard examples/*) 2 | 3 | default: $(examples) 4 | 5 | $(examples) : 6 | @echo 7 | @echo 8 | @echo $@ 9 | @echo 10 | cd $@; npm install; npm test 11 | 12 | .PHONY: $(examples) 13 | 14 | clean: 15 | git clean -fdx 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Cucumber-JS Examples 2 | 3 | There are so many ways you can use [Cucumber-JS](https://github.com/cucumber/cucumber-js)! 4 | 5 | For example: 6 | 7 | * [a Node.js app with ESM](./examples/esm-node) 8 | * a TypeScript Node.js app 9 | * [using CommonJS format](./examples/typescript-node-commonjs) 10 | * [using ESM format](./examples/typescript-node-esm) 11 | * [a Command-line Node.js app](./examples/command-line) 12 | * [a GitHub Probot app](./examples/probot) 13 | -------------------------------------------------------------------------------- /examples/command-line/bin/greet: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('../src/index.js').execute(process.argv); -------------------------------------------------------------------------------- /examples/command-line/features/greeting.feature: -------------------------------------------------------------------------------- 1 | Feature: Greeting 2 | 3 | Scenario: Say hello 4 | When I run `greet hello` 5 | Then the stdout should contain "hello" 6 | -------------------------------------------------------------------------------- /examples/command-line/features/step_definitions/steps.js: -------------------------------------------------------------------------------- 1 | const { exec } = require("child_process") 2 | 3 | const { defineParameterType, When, Then } = require("@cucumber/cucumber") 4 | const path = require("path") 5 | const assert = require("assert") 6 | const binDir = path.resolve(__dirname, "../../bin") 7 | console.log(binDir) 8 | 9 | defineParameterType({ 10 | name: "command", 11 | regexp: /`(.+)`/, 12 | transformer: (cmd) => cmd, 13 | }) 14 | 15 | When("I run {command}", function (command) { 16 | console.log(command) 17 | const world = this 18 | return new Promise((resolve, reject) => { 19 | exec( 20 | command, 21 | { env: { PATH: `${process.env.PATH}:${binDir}` } }, 22 | (error, stdout, stderr) => { 23 | world.stdout = stdout.trim() 24 | world.stderr = stderr.trim() 25 | if (error) reject(error) 26 | resolve() 27 | } 28 | ) 29 | }) 30 | }) 31 | 32 | Then("the stdout should contain {string}", function (string) { 33 | assert.equal(this.stdout, string) 34 | }) 35 | -------------------------------------------------------------------------------- /examples/command-line/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "command-line-cucumber-js-example", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "command-line-cucumber-js-example", 9 | "version": "1.0.0", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "@cucumber/cucumber": "*" 13 | } 14 | }, 15 | "node_modules/@babel/code-frame": { 16 | "version": "7.24.2", 17 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", 18 | "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", 19 | "dev": true, 20 | "dependencies": { 21 | "@babel/highlight": "^7.24.2", 22 | "picocolors": "^1.0.0" 23 | }, 24 | "engines": { 25 | "node": ">=6.9.0" 26 | } 27 | }, 28 | "node_modules/@babel/helper-validator-identifier": { 29 | "version": "7.22.20", 30 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", 31 | "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", 32 | "dev": true, 33 | "engines": { 34 | "node": ">=6.9.0" 35 | } 36 | }, 37 | "node_modules/@babel/highlight": { 38 | "version": "7.24.2", 39 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", 40 | "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", 41 | "dev": true, 42 | "dependencies": { 43 | "@babel/helper-validator-identifier": "^7.22.20", 44 | "chalk": "^2.4.2", 45 | "js-tokens": "^4.0.0", 46 | "picocolors": "^1.0.0" 47 | }, 48 | "engines": { 49 | "node": ">=6.9.0" 50 | } 51 | }, 52 | "node_modules/@babel/highlight/node_modules/ansi-styles": { 53 | "version": "3.2.1", 54 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 55 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 56 | "dev": true, 57 | "dependencies": { 58 | "color-convert": "^1.9.0" 59 | }, 60 | "engines": { 61 | "node": ">=4" 62 | } 63 | }, 64 | "node_modules/@babel/highlight/node_modules/chalk": { 65 | "version": "2.4.2", 66 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 67 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 68 | "dev": true, 69 | "dependencies": { 70 | "ansi-styles": "^3.2.1", 71 | "escape-string-regexp": "^1.0.5", 72 | "supports-color": "^5.3.0" 73 | }, 74 | "engines": { 75 | "node": ">=4" 76 | } 77 | }, 78 | "node_modules/@babel/highlight/node_modules/color-convert": { 79 | "version": "1.9.3", 80 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 81 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 82 | "dev": true, 83 | "dependencies": { 84 | "color-name": "1.1.3" 85 | } 86 | }, 87 | "node_modules/@babel/highlight/node_modules/color-name": { 88 | "version": "1.1.3", 89 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 90 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 91 | "dev": true 92 | }, 93 | "node_modules/@babel/highlight/node_modules/has-flag": { 94 | "version": "3.0.0", 95 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 96 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 97 | "dev": true, 98 | "engines": { 99 | "node": ">=4" 100 | } 101 | }, 102 | "node_modules/@babel/highlight/node_modules/supports-color": { 103 | "version": "5.5.0", 104 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 105 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 106 | "dev": true, 107 | "dependencies": { 108 | "has-flag": "^3.0.0" 109 | }, 110 | "engines": { 111 | "node": ">=4" 112 | } 113 | }, 114 | "node_modules/@colors/colors": { 115 | "version": "1.5.0", 116 | "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", 117 | "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", 118 | "dev": true, 119 | "optional": true, 120 | "engines": { 121 | "node": ">=0.1.90" 122 | } 123 | }, 124 | "node_modules/@cucumber/ci-environment": { 125 | "version": "10.0.1", 126 | "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-10.0.1.tgz", 127 | "integrity": "sha512-/+ooDMPtKSmvcPMDYnMZt4LuoipfFfHaYspStI4shqw8FyKcfQAmekz6G+QKWjQQrvM+7Hkljwx58MEwPCwwzg==", 128 | "dev": true 129 | }, 130 | "node_modules/@cucumber/cucumber": { 131 | "version": "10.6.0", 132 | "resolved": "https://registry.npmjs.org/@cucumber/cucumber/-/cucumber-10.6.0.tgz", 133 | "integrity": "sha512-1ui/PDJelSRioZGYZdxeNepnCetbjbv16FUDdWi6WdjAeMqfCsuiJHjN++b7Wjxd1xKhXdSLfMntqpuNcPTIug==", 134 | "dev": true, 135 | "dependencies": { 136 | "@cucumber/ci-environment": "10.0.1", 137 | "@cucumber/cucumber-expressions": "17.1.0", 138 | "@cucumber/gherkin": "28.0.0", 139 | "@cucumber/gherkin-streams": "5.0.1", 140 | "@cucumber/gherkin-utils": "9.0.0", 141 | "@cucumber/html-formatter": "21.3.1", 142 | "@cucumber/message-streams": "4.0.1", 143 | "@cucumber/messages": "24.1.0", 144 | "@cucumber/tag-expressions": "6.1.0", 145 | "assertion-error-formatter": "^3.0.0", 146 | "capital-case": "^1.0.4", 147 | "chalk": "^4.1.2", 148 | "cli-table3": "0.6.3", 149 | "commander": "^10.0.0", 150 | "debug": "^4.3.4", 151 | "error-stack-parser": "^2.1.4", 152 | "figures": "^3.2.0", 153 | "glob": "^10.3.10", 154 | "has-ansi": "^4.0.1", 155 | "indent-string": "^4.0.0", 156 | "is-installed-globally": "^0.4.0", 157 | "is-stream": "^2.0.0", 158 | "knuth-shuffle-seeded": "^1.0.6", 159 | "lodash.merge": "^4.6.2", 160 | "lodash.mergewith": "^4.6.2", 161 | "luxon": "3.2.1", 162 | "mkdirp": "^2.1.5", 163 | "mz": "^2.7.0", 164 | "progress": "^2.0.3", 165 | "read-pkg-up": "^7.0.1", 166 | "resolve-pkg": "^2.0.0", 167 | "semver": "7.5.3", 168 | "string-argv": "0.3.1", 169 | "strip-ansi": "6.0.1", 170 | "supports-color": "^8.1.1", 171 | "tmp": "0.2.3", 172 | "type-fest": "^4.8.3", 173 | "util-arity": "^1.1.0", 174 | "xmlbuilder": "^15.1.1", 175 | "yaml": "^2.2.2", 176 | "yup": "1.2.0" 177 | }, 178 | "bin": { 179 | "cucumber-js": "bin/cucumber.js" 180 | }, 181 | "engines": { 182 | "node": "18 || >=20" 183 | }, 184 | "funding": { 185 | "url": "https://opencollective.com/cucumber" 186 | } 187 | }, 188 | "node_modules/@cucumber/cucumber-expressions": { 189 | "version": "17.1.0", 190 | "resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-17.1.0.tgz", 191 | "integrity": "sha512-PCv/ppsPynniKPWJr5v566daCVe+pbxQpHGrIu/Ev57cCH9Rv+X0F6lio4Id3Z64TaG7btCRLUGewIgLwmrwOA==", 192 | "dev": true, 193 | "dependencies": { 194 | "regexp-match-indices": "1.0.2" 195 | } 196 | }, 197 | "node_modules/@cucumber/gherkin": { 198 | "version": "28.0.0", 199 | "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-28.0.0.tgz", 200 | "integrity": "sha512-Ee6zJQq0OmIUPdW0mSnsCsrWA2PZAELNDPICD2pLfs0Oz7RAPgj80UsD2UCtqyAhw2qAR62aqlktKUlai5zl/A==", 201 | "dev": true, 202 | "dependencies": { 203 | "@cucumber/messages": ">=19.1.4 <=24" 204 | } 205 | }, 206 | "node_modules/@cucumber/gherkin-streams": { 207 | "version": "5.0.1", 208 | "resolved": "https://registry.npmjs.org/@cucumber/gherkin-streams/-/gherkin-streams-5.0.1.tgz", 209 | "integrity": "sha512-/7VkIE/ASxIP/jd4Crlp4JHXqdNFxPGQokqWqsaCCiqBiu5qHoKMxcWNlp9njVL/n9yN4S08OmY3ZR8uC5x74Q==", 210 | "dev": true, 211 | "dependencies": { 212 | "commander": "9.1.0", 213 | "source-map-support": "0.5.21" 214 | }, 215 | "bin": { 216 | "gherkin-javascript": "bin/gherkin" 217 | }, 218 | "peerDependencies": { 219 | "@cucumber/gherkin": ">=22.0.0", 220 | "@cucumber/message-streams": ">=4.0.0", 221 | "@cucumber/messages": ">=17.1.1" 222 | } 223 | }, 224 | "node_modules/@cucumber/gherkin-streams/node_modules/commander": { 225 | "version": "9.1.0", 226 | "resolved": "https://registry.npmjs.org/commander/-/commander-9.1.0.tgz", 227 | "integrity": "sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w==", 228 | "dev": true, 229 | "engines": { 230 | "node": "^12.20.0 || >=14" 231 | } 232 | }, 233 | "node_modules/@cucumber/gherkin-utils": { 234 | "version": "9.0.0", 235 | "resolved": "https://registry.npmjs.org/@cucumber/gherkin-utils/-/gherkin-utils-9.0.0.tgz", 236 | "integrity": "sha512-clk4q39uj7pztZuZtyI54V8lRsCUz0Y/p8XRjIeHh7ExeEztpWkp4ca9q1FjUOPfQQ8E7OgqFbqoQQXZ1Bx7fw==", 237 | "dev": true, 238 | "dependencies": { 239 | "@cucumber/gherkin": "^28.0.0", 240 | "@cucumber/messages": "^24.0.0", 241 | "@teppeis/multimaps": "3.0.0", 242 | "commander": "12.0.0", 243 | "source-map-support": "^0.5.21" 244 | }, 245 | "bin": { 246 | "gherkin-utils": "bin/gherkin-utils" 247 | } 248 | }, 249 | "node_modules/@cucumber/gherkin-utils/node_modules/commander": { 250 | "version": "12.0.0", 251 | "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", 252 | "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", 253 | "dev": true, 254 | "engines": { 255 | "node": ">=18" 256 | } 257 | }, 258 | "node_modules/@cucumber/html-formatter": { 259 | "version": "21.3.1", 260 | "resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-21.3.1.tgz", 261 | "integrity": "sha512-M1zbre7e8MsecXheqNv62BKY5J06YJSv1LmsD7sJ3mu5t1jirLjj2It1HqPsX5CQAfg9n69xFRugPgLMSte9TA==", 262 | "dev": true, 263 | "peerDependencies": { 264 | "@cucumber/messages": ">=18" 265 | } 266 | }, 267 | "node_modules/@cucumber/message-streams": { 268 | "version": "4.0.1", 269 | "resolved": "https://registry.npmjs.org/@cucumber/message-streams/-/message-streams-4.0.1.tgz", 270 | "integrity": "sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA==", 271 | "dev": true, 272 | "peerDependencies": { 273 | "@cucumber/messages": ">=17.1.1" 274 | } 275 | }, 276 | "node_modules/@cucumber/messages": { 277 | "version": "24.1.0", 278 | "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-24.1.0.tgz", 279 | "integrity": "sha512-hxVHiBurORcobhVk80I9+JkaKaNXkW6YwGOEFIh/2aO+apAN+5XJgUUWjng9NwqaQrW1sCFuawLB1AuzmBaNdQ==", 280 | "dev": true, 281 | "dependencies": { 282 | "@types/uuid": "9.0.8", 283 | "class-transformer": "0.5.1", 284 | "reflect-metadata": "0.2.1", 285 | "uuid": "9.0.1" 286 | } 287 | }, 288 | "node_modules/@cucumber/tag-expressions": { 289 | "version": "6.1.0", 290 | "resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-6.1.0.tgz", 291 | "integrity": "sha512-+3DwRumrCJG27AtzCIL37A/X+A/gSfxOPLg8pZaruh5SLumsTmpvilwroVWBT2fPzmno/tGXypeK5a7NHU4RzA==", 292 | "dev": true 293 | }, 294 | "node_modules/@isaacs/cliui": { 295 | "version": "8.0.2", 296 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 297 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 298 | "dev": true, 299 | "dependencies": { 300 | "string-width": "^5.1.2", 301 | "string-width-cjs": "npm:string-width@^4.2.0", 302 | "strip-ansi": "^7.0.1", 303 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 304 | "wrap-ansi": "^8.1.0", 305 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 306 | }, 307 | "engines": { 308 | "node": ">=12" 309 | } 310 | }, 311 | "node_modules/@isaacs/cliui/node_modules/ansi-regex": { 312 | "version": "6.0.1", 313 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 314 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 315 | "dev": true, 316 | "engines": { 317 | "node": ">=12" 318 | }, 319 | "funding": { 320 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 321 | } 322 | }, 323 | "node_modules/@isaacs/cliui/node_modules/emoji-regex": { 324 | "version": "9.2.2", 325 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 326 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 327 | "dev": true 328 | }, 329 | "node_modules/@isaacs/cliui/node_modules/string-width": { 330 | "version": "5.1.2", 331 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 332 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 333 | "dev": true, 334 | "dependencies": { 335 | "eastasianwidth": "^0.2.0", 336 | "emoji-regex": "^9.2.2", 337 | "strip-ansi": "^7.0.1" 338 | }, 339 | "engines": { 340 | "node": ">=12" 341 | }, 342 | "funding": { 343 | "url": "https://github.com/sponsors/sindresorhus" 344 | } 345 | }, 346 | "node_modules/@isaacs/cliui/node_modules/strip-ansi": { 347 | "version": "7.1.0", 348 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 349 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 350 | "dev": true, 351 | "dependencies": { 352 | "ansi-regex": "^6.0.1" 353 | }, 354 | "engines": { 355 | "node": ">=12" 356 | }, 357 | "funding": { 358 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 359 | } 360 | }, 361 | "node_modules/@pkgjs/parseargs": { 362 | "version": "0.11.0", 363 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 364 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 365 | "dev": true, 366 | "optional": true, 367 | "engines": { 368 | "node": ">=14" 369 | } 370 | }, 371 | "node_modules/@teppeis/multimaps": { 372 | "version": "3.0.0", 373 | "resolved": "https://registry.npmjs.org/@teppeis/multimaps/-/multimaps-3.0.0.tgz", 374 | "integrity": "sha512-ID7fosbc50TbT0MK0EG12O+gAP3W3Aa/Pz4DaTtQtEvlc9Odaqi0de+xuZ7Li2GtK4HzEX7IuRWS/JmZLksR3Q==", 375 | "dev": true, 376 | "engines": { 377 | "node": ">=14" 378 | } 379 | }, 380 | "node_modules/@types/normalize-package-data": { 381 | "version": "2.4.4", 382 | "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", 383 | "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", 384 | "dev": true 385 | }, 386 | "node_modules/@types/uuid": { 387 | "version": "9.0.8", 388 | "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", 389 | "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", 390 | "dev": true 391 | }, 392 | "node_modules/ansi-regex": { 393 | "version": "4.1.1", 394 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", 395 | "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", 396 | "dev": true, 397 | "engines": { 398 | "node": ">=6" 399 | } 400 | }, 401 | "node_modules/ansi-styles": { 402 | "version": "4.3.0", 403 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 404 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 405 | "dev": true, 406 | "dependencies": { 407 | "color-convert": "^2.0.1" 408 | }, 409 | "engines": { 410 | "node": ">=8" 411 | }, 412 | "funding": { 413 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 414 | } 415 | }, 416 | "node_modules/any-promise": { 417 | "version": "1.3.0", 418 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 419 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", 420 | "dev": true 421 | }, 422 | "node_modules/assertion-error-formatter": { 423 | "version": "3.0.0", 424 | "resolved": "https://registry.npmjs.org/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz", 425 | "integrity": "sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==", 426 | "dev": true, 427 | "dependencies": { 428 | "diff": "^4.0.1", 429 | "pad-right": "^0.2.2", 430 | "repeat-string": "^1.6.1" 431 | } 432 | }, 433 | "node_modules/balanced-match": { 434 | "version": "1.0.2", 435 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 436 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 437 | "dev": true 438 | }, 439 | "node_modules/brace-expansion": { 440 | "version": "2.0.1", 441 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 442 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 443 | "dev": true, 444 | "dependencies": { 445 | "balanced-match": "^1.0.0" 446 | } 447 | }, 448 | "node_modules/buffer-from": { 449 | "version": "1.1.2", 450 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 451 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 452 | "dev": true 453 | }, 454 | "node_modules/capital-case": { 455 | "version": "1.0.4", 456 | "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", 457 | "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", 458 | "dev": true, 459 | "dependencies": { 460 | "no-case": "^3.0.4", 461 | "tslib": "^2.0.3", 462 | "upper-case-first": "^2.0.2" 463 | } 464 | }, 465 | "node_modules/chalk": { 466 | "version": "4.1.2", 467 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 468 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 469 | "dev": true, 470 | "dependencies": { 471 | "ansi-styles": "^4.1.0", 472 | "supports-color": "^7.1.0" 473 | }, 474 | "engines": { 475 | "node": ">=10" 476 | }, 477 | "funding": { 478 | "url": "https://github.com/chalk/chalk?sponsor=1" 479 | } 480 | }, 481 | "node_modules/chalk/node_modules/supports-color": { 482 | "version": "7.2.0", 483 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 484 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 485 | "dev": true, 486 | "dependencies": { 487 | "has-flag": "^4.0.0" 488 | }, 489 | "engines": { 490 | "node": ">=8" 491 | } 492 | }, 493 | "node_modules/class-transformer": { 494 | "version": "0.5.1", 495 | "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", 496 | "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==", 497 | "dev": true 498 | }, 499 | "node_modules/cli-table3": { 500 | "version": "0.6.3", 501 | "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", 502 | "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", 503 | "dev": true, 504 | "dependencies": { 505 | "string-width": "^4.2.0" 506 | }, 507 | "engines": { 508 | "node": "10.* || >= 12.*" 509 | }, 510 | "optionalDependencies": { 511 | "@colors/colors": "1.5.0" 512 | } 513 | }, 514 | "node_modules/color-convert": { 515 | "version": "2.0.1", 516 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 517 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 518 | "dev": true, 519 | "dependencies": { 520 | "color-name": "~1.1.4" 521 | }, 522 | "engines": { 523 | "node": ">=7.0.0" 524 | } 525 | }, 526 | "node_modules/color-name": { 527 | "version": "1.1.4", 528 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 529 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 530 | "dev": true 531 | }, 532 | "node_modules/commander": { 533 | "version": "10.0.1", 534 | "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", 535 | "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", 536 | "dev": true, 537 | "engines": { 538 | "node": ">=14" 539 | } 540 | }, 541 | "node_modules/cross-spawn": { 542 | "version": "7.0.3", 543 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 544 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 545 | "dev": true, 546 | "dependencies": { 547 | "path-key": "^3.1.0", 548 | "shebang-command": "^2.0.0", 549 | "which": "^2.0.1" 550 | }, 551 | "engines": { 552 | "node": ">= 8" 553 | } 554 | }, 555 | "node_modules/debug": { 556 | "version": "4.3.4", 557 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 558 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 559 | "dev": true, 560 | "dependencies": { 561 | "ms": "2.1.2" 562 | }, 563 | "engines": { 564 | "node": ">=6.0" 565 | }, 566 | "peerDependenciesMeta": { 567 | "supports-color": { 568 | "optional": true 569 | } 570 | } 571 | }, 572 | "node_modules/diff": { 573 | "version": "4.0.2", 574 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", 575 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", 576 | "dev": true, 577 | "engines": { 578 | "node": ">=0.3.1" 579 | } 580 | }, 581 | "node_modules/eastasianwidth": { 582 | "version": "0.2.0", 583 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 584 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 585 | "dev": true 586 | }, 587 | "node_modules/emoji-regex": { 588 | "version": "8.0.0", 589 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 590 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 591 | "dev": true 592 | }, 593 | "node_modules/error-ex": { 594 | "version": "1.3.2", 595 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 596 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 597 | "dev": true, 598 | "dependencies": { 599 | "is-arrayish": "^0.2.1" 600 | } 601 | }, 602 | "node_modules/error-stack-parser": { 603 | "version": "2.1.4", 604 | "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", 605 | "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", 606 | "dev": true, 607 | "dependencies": { 608 | "stackframe": "^1.3.4" 609 | } 610 | }, 611 | "node_modules/escape-string-regexp": { 612 | "version": "1.0.5", 613 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 614 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 615 | "dev": true, 616 | "engines": { 617 | "node": ">=0.8.0" 618 | } 619 | }, 620 | "node_modules/figures": { 621 | "version": "3.2.0", 622 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", 623 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", 624 | "dev": true, 625 | "dependencies": { 626 | "escape-string-regexp": "^1.0.5" 627 | }, 628 | "engines": { 629 | "node": ">=8" 630 | }, 631 | "funding": { 632 | "url": "https://github.com/sponsors/sindresorhus" 633 | } 634 | }, 635 | "node_modules/find-up": { 636 | "version": "4.1.0", 637 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 638 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 639 | "dev": true, 640 | "dependencies": { 641 | "locate-path": "^5.0.0", 642 | "path-exists": "^4.0.0" 643 | }, 644 | "engines": { 645 | "node": ">=8" 646 | } 647 | }, 648 | "node_modules/foreground-child": { 649 | "version": "3.1.1", 650 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", 651 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", 652 | "dev": true, 653 | "dependencies": { 654 | "cross-spawn": "^7.0.0", 655 | "signal-exit": "^4.0.1" 656 | }, 657 | "engines": { 658 | "node": ">=14" 659 | }, 660 | "funding": { 661 | "url": "https://github.com/sponsors/isaacs" 662 | } 663 | }, 664 | "node_modules/function-bind": { 665 | "version": "1.1.2", 666 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 667 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 668 | "dev": true, 669 | "funding": { 670 | "url": "https://github.com/sponsors/ljharb" 671 | } 672 | }, 673 | "node_modules/glob": { 674 | "version": "10.3.12", 675 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", 676 | "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", 677 | "dev": true, 678 | "dependencies": { 679 | "foreground-child": "^3.1.0", 680 | "jackspeak": "^2.3.6", 681 | "minimatch": "^9.0.1", 682 | "minipass": "^7.0.4", 683 | "path-scurry": "^1.10.2" 684 | }, 685 | "bin": { 686 | "glob": "dist/esm/bin.mjs" 687 | }, 688 | "engines": { 689 | "node": ">=16 || 14 >=14.17" 690 | }, 691 | "funding": { 692 | "url": "https://github.com/sponsors/isaacs" 693 | } 694 | }, 695 | "node_modules/global-dirs": { 696 | "version": "3.0.1", 697 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", 698 | "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", 699 | "dev": true, 700 | "dependencies": { 701 | "ini": "2.0.0" 702 | }, 703 | "engines": { 704 | "node": ">=10" 705 | }, 706 | "funding": { 707 | "url": "https://github.com/sponsors/sindresorhus" 708 | } 709 | }, 710 | "node_modules/has-ansi": { 711 | "version": "4.0.1", 712 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-4.0.1.tgz", 713 | "integrity": "sha512-Qr4RtTm30xvEdqUXbSBVWDu+PrTokJOwe/FU+VdfJPk+MXAPoeOzKpRyrDTnZIJwAkQ4oBLTU53nu0HrkF/Z2A==", 714 | "dev": true, 715 | "dependencies": { 716 | "ansi-regex": "^4.1.0" 717 | }, 718 | "engines": { 719 | "node": ">=8" 720 | } 721 | }, 722 | "node_modules/has-flag": { 723 | "version": "4.0.0", 724 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 725 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 726 | "dev": true, 727 | "engines": { 728 | "node": ">=8" 729 | } 730 | }, 731 | "node_modules/hasown": { 732 | "version": "2.0.2", 733 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 734 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 735 | "dev": true, 736 | "dependencies": { 737 | "function-bind": "^1.1.2" 738 | }, 739 | "engines": { 740 | "node": ">= 0.4" 741 | } 742 | }, 743 | "node_modules/hosted-git-info": { 744 | "version": "2.8.9", 745 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", 746 | "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", 747 | "dev": true 748 | }, 749 | "node_modules/indent-string": { 750 | "version": "4.0.0", 751 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 752 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", 753 | "dev": true, 754 | "engines": { 755 | "node": ">=8" 756 | } 757 | }, 758 | "node_modules/ini": { 759 | "version": "2.0.0", 760 | "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", 761 | "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", 762 | "dev": true, 763 | "engines": { 764 | "node": ">=10" 765 | } 766 | }, 767 | "node_modules/is-arrayish": { 768 | "version": "0.2.1", 769 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 770 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", 771 | "dev": true 772 | }, 773 | "node_modules/is-core-module": { 774 | "version": "2.13.1", 775 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", 776 | "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", 777 | "dev": true, 778 | "dependencies": { 779 | "hasown": "^2.0.0" 780 | }, 781 | "funding": { 782 | "url": "https://github.com/sponsors/ljharb" 783 | } 784 | }, 785 | "node_modules/is-fullwidth-code-point": { 786 | "version": "3.0.0", 787 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 788 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 789 | "dev": true, 790 | "engines": { 791 | "node": ">=8" 792 | } 793 | }, 794 | "node_modules/is-installed-globally": { 795 | "version": "0.4.0", 796 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", 797 | "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", 798 | "dev": true, 799 | "dependencies": { 800 | "global-dirs": "^3.0.0", 801 | "is-path-inside": "^3.0.2" 802 | }, 803 | "engines": { 804 | "node": ">=10" 805 | }, 806 | "funding": { 807 | "url": "https://github.com/sponsors/sindresorhus" 808 | } 809 | }, 810 | "node_modules/is-path-inside": { 811 | "version": "3.0.3", 812 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 813 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 814 | "dev": true, 815 | "engines": { 816 | "node": ">=8" 817 | } 818 | }, 819 | "node_modules/is-stream": { 820 | "version": "2.0.1", 821 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 822 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 823 | "dev": true, 824 | "engines": { 825 | "node": ">=8" 826 | }, 827 | "funding": { 828 | "url": "https://github.com/sponsors/sindresorhus" 829 | } 830 | }, 831 | "node_modules/isexe": { 832 | "version": "2.0.0", 833 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 834 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 835 | "dev": true 836 | }, 837 | "node_modules/jackspeak": { 838 | "version": "2.3.6", 839 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", 840 | "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", 841 | "dev": true, 842 | "dependencies": { 843 | "@isaacs/cliui": "^8.0.2" 844 | }, 845 | "engines": { 846 | "node": ">=14" 847 | }, 848 | "funding": { 849 | "url": "https://github.com/sponsors/isaacs" 850 | }, 851 | "optionalDependencies": { 852 | "@pkgjs/parseargs": "^0.11.0" 853 | } 854 | }, 855 | "node_modules/js-tokens": { 856 | "version": "4.0.0", 857 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 858 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 859 | "dev": true 860 | }, 861 | "node_modules/json-parse-even-better-errors": { 862 | "version": "2.3.1", 863 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 864 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 865 | "dev": true 866 | }, 867 | "node_modules/knuth-shuffle-seeded": { 868 | "version": "1.0.6", 869 | "resolved": "https://registry.npmjs.org/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz", 870 | "integrity": "sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg==", 871 | "dev": true, 872 | "dependencies": { 873 | "seed-random": "~2.2.0" 874 | } 875 | }, 876 | "node_modules/lines-and-columns": { 877 | "version": "1.2.4", 878 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 879 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 880 | "dev": true 881 | }, 882 | "node_modules/locate-path": { 883 | "version": "5.0.0", 884 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 885 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 886 | "dev": true, 887 | "dependencies": { 888 | "p-locate": "^4.1.0" 889 | }, 890 | "engines": { 891 | "node": ">=8" 892 | } 893 | }, 894 | "node_modules/lodash.merge": { 895 | "version": "4.6.2", 896 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 897 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 898 | "dev": true 899 | }, 900 | "node_modules/lodash.mergewith": { 901 | "version": "4.6.2", 902 | "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", 903 | "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", 904 | "dev": true 905 | }, 906 | "node_modules/lower-case": { 907 | "version": "2.0.2", 908 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", 909 | "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", 910 | "dev": true, 911 | "dependencies": { 912 | "tslib": "^2.0.3" 913 | } 914 | }, 915 | "node_modules/lru-cache": { 916 | "version": "10.2.1", 917 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.1.tgz", 918 | "integrity": "sha512-tS24spDe/zXhWbNPErCHs/AGOzbKGHT+ybSBqmdLm8WZ1xXLWvH8Qn71QPAlqVhd0qUTWjy+Kl9JmISgDdEjsA==", 919 | "dev": true, 920 | "engines": { 921 | "node": "14 || >=16.14" 922 | } 923 | }, 924 | "node_modules/luxon": { 925 | "version": "3.2.1", 926 | "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", 927 | "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", 928 | "dev": true, 929 | "engines": { 930 | "node": ">=12" 931 | } 932 | }, 933 | "node_modules/minimatch": { 934 | "version": "9.0.4", 935 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", 936 | "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", 937 | "dev": true, 938 | "dependencies": { 939 | "brace-expansion": "^2.0.1" 940 | }, 941 | "engines": { 942 | "node": ">=16 || 14 >=14.17" 943 | }, 944 | "funding": { 945 | "url": "https://github.com/sponsors/isaacs" 946 | } 947 | }, 948 | "node_modules/minipass": { 949 | "version": "7.0.4", 950 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", 951 | "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", 952 | "dev": true, 953 | "engines": { 954 | "node": ">=16 || 14 >=14.17" 955 | } 956 | }, 957 | "node_modules/mkdirp": { 958 | "version": "2.1.6", 959 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", 960 | "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", 961 | "dev": true, 962 | "bin": { 963 | "mkdirp": "dist/cjs/src/bin.js" 964 | }, 965 | "engines": { 966 | "node": ">=10" 967 | }, 968 | "funding": { 969 | "url": "https://github.com/sponsors/isaacs" 970 | } 971 | }, 972 | "node_modules/ms": { 973 | "version": "2.1.2", 974 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 975 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 976 | "dev": true 977 | }, 978 | "node_modules/mz": { 979 | "version": "2.7.0", 980 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 981 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 982 | "dev": true, 983 | "dependencies": { 984 | "any-promise": "^1.0.0", 985 | "object-assign": "^4.0.1", 986 | "thenify-all": "^1.0.0" 987 | } 988 | }, 989 | "node_modules/no-case": { 990 | "version": "3.0.4", 991 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", 992 | "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", 993 | "dev": true, 994 | "dependencies": { 995 | "lower-case": "^2.0.2", 996 | "tslib": "^2.0.3" 997 | } 998 | }, 999 | "node_modules/normalize-package-data": { 1000 | "version": "2.5.0", 1001 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 1002 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 1003 | "dev": true, 1004 | "dependencies": { 1005 | "hosted-git-info": "^2.1.4", 1006 | "resolve": "^1.10.0", 1007 | "semver": "2 || 3 || 4 || 5", 1008 | "validate-npm-package-license": "^3.0.1" 1009 | } 1010 | }, 1011 | "node_modules/normalize-package-data/node_modules/semver": { 1012 | "version": "5.7.2", 1013 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", 1014 | "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", 1015 | "dev": true, 1016 | "bin": { 1017 | "semver": "bin/semver" 1018 | } 1019 | }, 1020 | "node_modules/object-assign": { 1021 | "version": "4.1.1", 1022 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1023 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1024 | "dev": true, 1025 | "engines": { 1026 | "node": ">=0.10.0" 1027 | } 1028 | }, 1029 | "node_modules/p-limit": { 1030 | "version": "2.3.0", 1031 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1032 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1033 | "dev": true, 1034 | "dependencies": { 1035 | "p-try": "^2.0.0" 1036 | }, 1037 | "engines": { 1038 | "node": ">=6" 1039 | }, 1040 | "funding": { 1041 | "url": "https://github.com/sponsors/sindresorhus" 1042 | } 1043 | }, 1044 | "node_modules/p-locate": { 1045 | "version": "4.1.0", 1046 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 1047 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1048 | "dev": true, 1049 | "dependencies": { 1050 | "p-limit": "^2.2.0" 1051 | }, 1052 | "engines": { 1053 | "node": ">=8" 1054 | } 1055 | }, 1056 | "node_modules/p-try": { 1057 | "version": "2.2.0", 1058 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1059 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1060 | "dev": true, 1061 | "engines": { 1062 | "node": ">=6" 1063 | } 1064 | }, 1065 | "node_modules/pad-right": { 1066 | "version": "0.2.2", 1067 | "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", 1068 | "integrity": "sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g==", 1069 | "dev": true, 1070 | "dependencies": { 1071 | "repeat-string": "^1.5.2" 1072 | }, 1073 | "engines": { 1074 | "node": ">=0.10.0" 1075 | } 1076 | }, 1077 | "node_modules/parse-json": { 1078 | "version": "5.2.0", 1079 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 1080 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 1081 | "dev": true, 1082 | "dependencies": { 1083 | "@babel/code-frame": "^7.0.0", 1084 | "error-ex": "^1.3.1", 1085 | "json-parse-even-better-errors": "^2.3.0", 1086 | "lines-and-columns": "^1.1.6" 1087 | }, 1088 | "engines": { 1089 | "node": ">=8" 1090 | }, 1091 | "funding": { 1092 | "url": "https://github.com/sponsors/sindresorhus" 1093 | } 1094 | }, 1095 | "node_modules/path-exists": { 1096 | "version": "4.0.0", 1097 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1098 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1099 | "dev": true, 1100 | "engines": { 1101 | "node": ">=8" 1102 | } 1103 | }, 1104 | "node_modules/path-key": { 1105 | "version": "3.1.1", 1106 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1107 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1108 | "dev": true, 1109 | "engines": { 1110 | "node": ">=8" 1111 | } 1112 | }, 1113 | "node_modules/path-parse": { 1114 | "version": "1.0.7", 1115 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1116 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1117 | "dev": true 1118 | }, 1119 | "node_modules/path-scurry": { 1120 | "version": "1.10.2", 1121 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", 1122 | "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", 1123 | "dev": true, 1124 | "dependencies": { 1125 | "lru-cache": "^10.2.0", 1126 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 1127 | }, 1128 | "engines": { 1129 | "node": ">=16 || 14 >=14.17" 1130 | }, 1131 | "funding": { 1132 | "url": "https://github.com/sponsors/isaacs" 1133 | } 1134 | }, 1135 | "node_modules/picocolors": { 1136 | "version": "1.0.0", 1137 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1138 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1139 | "dev": true 1140 | }, 1141 | "node_modules/progress": { 1142 | "version": "2.0.3", 1143 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1144 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 1145 | "dev": true, 1146 | "engines": { 1147 | "node": ">=0.4.0" 1148 | } 1149 | }, 1150 | "node_modules/property-expr": { 1151 | "version": "2.0.6", 1152 | "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", 1153 | "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", 1154 | "dev": true 1155 | }, 1156 | "node_modules/read-pkg": { 1157 | "version": "5.2.0", 1158 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", 1159 | "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", 1160 | "dev": true, 1161 | "dependencies": { 1162 | "@types/normalize-package-data": "^2.4.0", 1163 | "normalize-package-data": "^2.5.0", 1164 | "parse-json": "^5.0.0", 1165 | "type-fest": "^0.6.0" 1166 | }, 1167 | "engines": { 1168 | "node": ">=8" 1169 | } 1170 | }, 1171 | "node_modules/read-pkg-up": { 1172 | "version": "7.0.1", 1173 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", 1174 | "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", 1175 | "dev": true, 1176 | "dependencies": { 1177 | "find-up": "^4.1.0", 1178 | "read-pkg": "^5.2.0", 1179 | "type-fest": "^0.8.1" 1180 | }, 1181 | "engines": { 1182 | "node": ">=8" 1183 | }, 1184 | "funding": { 1185 | "url": "https://github.com/sponsors/sindresorhus" 1186 | } 1187 | }, 1188 | "node_modules/read-pkg-up/node_modules/type-fest": { 1189 | "version": "0.8.1", 1190 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 1191 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 1192 | "dev": true, 1193 | "engines": { 1194 | "node": ">=8" 1195 | } 1196 | }, 1197 | "node_modules/read-pkg/node_modules/type-fest": { 1198 | "version": "0.6.0", 1199 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", 1200 | "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", 1201 | "dev": true, 1202 | "engines": { 1203 | "node": ">=8" 1204 | } 1205 | }, 1206 | "node_modules/reflect-metadata": { 1207 | "version": "0.2.1", 1208 | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", 1209 | "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==", 1210 | "deprecated": "This version has a critical bug in fallback handling. Please upgrade to reflect-metadata@0.2.2 or newer.", 1211 | "dev": true 1212 | }, 1213 | "node_modules/regexp-match-indices": { 1214 | "version": "1.0.2", 1215 | "resolved": "https://registry.npmjs.org/regexp-match-indices/-/regexp-match-indices-1.0.2.tgz", 1216 | "integrity": "sha512-DwZuAkt8NF5mKwGGER1EGh2PRqyvhRhhLviH+R8y8dIuaQROlUfXjt4s9ZTXstIsSkptf06BSvwcEmmfheJJWQ==", 1217 | "dev": true, 1218 | "dependencies": { 1219 | "regexp-tree": "^0.1.11" 1220 | } 1221 | }, 1222 | "node_modules/regexp-tree": { 1223 | "version": "0.1.27", 1224 | "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", 1225 | "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", 1226 | "dev": true, 1227 | "bin": { 1228 | "regexp-tree": "bin/regexp-tree" 1229 | } 1230 | }, 1231 | "node_modules/repeat-string": { 1232 | "version": "1.6.1", 1233 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 1234 | "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", 1235 | "dev": true, 1236 | "engines": { 1237 | "node": ">=0.10" 1238 | } 1239 | }, 1240 | "node_modules/resolve": { 1241 | "version": "1.22.8", 1242 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", 1243 | "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", 1244 | "dev": true, 1245 | "dependencies": { 1246 | "is-core-module": "^2.13.0", 1247 | "path-parse": "^1.0.7", 1248 | "supports-preserve-symlinks-flag": "^1.0.0" 1249 | }, 1250 | "bin": { 1251 | "resolve": "bin/resolve" 1252 | }, 1253 | "funding": { 1254 | "url": "https://github.com/sponsors/ljharb" 1255 | } 1256 | }, 1257 | "node_modules/resolve-from": { 1258 | "version": "5.0.0", 1259 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 1260 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 1261 | "dev": true, 1262 | "engines": { 1263 | "node": ">=8" 1264 | } 1265 | }, 1266 | "node_modules/resolve-pkg": { 1267 | "version": "2.0.0", 1268 | "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-2.0.0.tgz", 1269 | "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==", 1270 | "dev": true, 1271 | "dependencies": { 1272 | "resolve-from": "^5.0.0" 1273 | }, 1274 | "engines": { 1275 | "node": ">=8" 1276 | } 1277 | }, 1278 | "node_modules/seed-random": { 1279 | "version": "2.2.0", 1280 | "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz", 1281 | "integrity": "sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ==", 1282 | "dev": true 1283 | }, 1284 | "node_modules/semver": { 1285 | "version": "7.5.3", 1286 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", 1287 | "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", 1288 | "dev": true, 1289 | "dependencies": { 1290 | "lru-cache": "^6.0.0" 1291 | }, 1292 | "bin": { 1293 | "semver": "bin/semver.js" 1294 | }, 1295 | "engines": { 1296 | "node": ">=10" 1297 | } 1298 | }, 1299 | "node_modules/semver/node_modules/lru-cache": { 1300 | "version": "6.0.0", 1301 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1302 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1303 | "dev": true, 1304 | "dependencies": { 1305 | "yallist": "^4.0.0" 1306 | }, 1307 | "engines": { 1308 | "node": ">=10" 1309 | } 1310 | }, 1311 | "node_modules/shebang-command": { 1312 | "version": "2.0.0", 1313 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1314 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1315 | "dev": true, 1316 | "dependencies": { 1317 | "shebang-regex": "^3.0.0" 1318 | }, 1319 | "engines": { 1320 | "node": ">=8" 1321 | } 1322 | }, 1323 | "node_modules/shebang-regex": { 1324 | "version": "3.0.0", 1325 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1326 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1327 | "dev": true, 1328 | "engines": { 1329 | "node": ">=8" 1330 | } 1331 | }, 1332 | "node_modules/signal-exit": { 1333 | "version": "4.1.0", 1334 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 1335 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 1336 | "dev": true, 1337 | "engines": { 1338 | "node": ">=14" 1339 | }, 1340 | "funding": { 1341 | "url": "https://github.com/sponsors/isaacs" 1342 | } 1343 | }, 1344 | "node_modules/source-map": { 1345 | "version": "0.6.1", 1346 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1347 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1348 | "dev": true, 1349 | "engines": { 1350 | "node": ">=0.10.0" 1351 | } 1352 | }, 1353 | "node_modules/source-map-support": { 1354 | "version": "0.5.21", 1355 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 1356 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 1357 | "dev": true, 1358 | "dependencies": { 1359 | "buffer-from": "^1.0.0", 1360 | "source-map": "^0.6.0" 1361 | } 1362 | }, 1363 | "node_modules/spdx-correct": { 1364 | "version": "3.2.0", 1365 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", 1366 | "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", 1367 | "dev": true, 1368 | "dependencies": { 1369 | "spdx-expression-parse": "^3.0.0", 1370 | "spdx-license-ids": "^3.0.0" 1371 | } 1372 | }, 1373 | "node_modules/spdx-exceptions": { 1374 | "version": "2.5.0", 1375 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", 1376 | "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", 1377 | "dev": true 1378 | }, 1379 | "node_modules/spdx-expression-parse": { 1380 | "version": "3.0.1", 1381 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 1382 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 1383 | "dev": true, 1384 | "dependencies": { 1385 | "spdx-exceptions": "^2.1.0", 1386 | "spdx-license-ids": "^3.0.0" 1387 | } 1388 | }, 1389 | "node_modules/spdx-license-ids": { 1390 | "version": "3.0.17", 1391 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", 1392 | "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", 1393 | "dev": true 1394 | }, 1395 | "node_modules/stackframe": { 1396 | "version": "1.3.4", 1397 | "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", 1398 | "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", 1399 | "dev": true 1400 | }, 1401 | "node_modules/string-argv": { 1402 | "version": "0.3.1", 1403 | "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", 1404 | "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", 1405 | "dev": true, 1406 | "engines": { 1407 | "node": ">=0.6.19" 1408 | } 1409 | }, 1410 | "node_modules/string-width": { 1411 | "version": "4.2.3", 1412 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1413 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1414 | "dev": true, 1415 | "dependencies": { 1416 | "emoji-regex": "^8.0.0", 1417 | "is-fullwidth-code-point": "^3.0.0", 1418 | "strip-ansi": "^6.0.1" 1419 | }, 1420 | "engines": { 1421 | "node": ">=8" 1422 | } 1423 | }, 1424 | "node_modules/string-width-cjs": { 1425 | "name": "string-width", 1426 | "version": "4.2.3", 1427 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1428 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1429 | "dev": true, 1430 | "dependencies": { 1431 | "emoji-regex": "^8.0.0", 1432 | "is-fullwidth-code-point": "^3.0.0", 1433 | "strip-ansi": "^6.0.1" 1434 | }, 1435 | "engines": { 1436 | "node": ">=8" 1437 | } 1438 | }, 1439 | "node_modules/strip-ansi": { 1440 | "version": "6.0.1", 1441 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1442 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1443 | "dev": true, 1444 | "dependencies": { 1445 | "ansi-regex": "^5.0.1" 1446 | }, 1447 | "engines": { 1448 | "node": ">=8" 1449 | } 1450 | }, 1451 | "node_modules/strip-ansi-cjs": { 1452 | "name": "strip-ansi", 1453 | "version": "6.0.1", 1454 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1455 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1456 | "dev": true, 1457 | "dependencies": { 1458 | "ansi-regex": "^5.0.1" 1459 | }, 1460 | "engines": { 1461 | "node": ">=8" 1462 | } 1463 | }, 1464 | "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { 1465 | "version": "5.0.1", 1466 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1467 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1468 | "dev": true, 1469 | "engines": { 1470 | "node": ">=8" 1471 | } 1472 | }, 1473 | "node_modules/strip-ansi/node_modules/ansi-regex": { 1474 | "version": "5.0.1", 1475 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1476 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1477 | "dev": true, 1478 | "engines": { 1479 | "node": ">=8" 1480 | } 1481 | }, 1482 | "node_modules/supports-color": { 1483 | "version": "8.1.1", 1484 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", 1485 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", 1486 | "dev": true, 1487 | "dependencies": { 1488 | "has-flag": "^4.0.0" 1489 | }, 1490 | "engines": { 1491 | "node": ">=10" 1492 | }, 1493 | "funding": { 1494 | "url": "https://github.com/chalk/supports-color?sponsor=1" 1495 | } 1496 | }, 1497 | "node_modules/supports-preserve-symlinks-flag": { 1498 | "version": "1.0.0", 1499 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1500 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1501 | "dev": true, 1502 | "engines": { 1503 | "node": ">= 0.4" 1504 | }, 1505 | "funding": { 1506 | "url": "https://github.com/sponsors/ljharb" 1507 | } 1508 | }, 1509 | "node_modules/thenify": { 1510 | "version": "3.3.1", 1511 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 1512 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 1513 | "dev": true, 1514 | "dependencies": { 1515 | "any-promise": "^1.0.0" 1516 | } 1517 | }, 1518 | "node_modules/thenify-all": { 1519 | "version": "1.6.0", 1520 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 1521 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", 1522 | "dev": true, 1523 | "dependencies": { 1524 | "thenify": ">= 3.1.0 < 4" 1525 | }, 1526 | "engines": { 1527 | "node": ">=0.8" 1528 | } 1529 | }, 1530 | "node_modules/tiny-case": { 1531 | "version": "1.0.3", 1532 | "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", 1533 | "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", 1534 | "dev": true 1535 | }, 1536 | "node_modules/tmp": { 1537 | "version": "0.2.3", 1538 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", 1539 | "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", 1540 | "dev": true, 1541 | "engines": { 1542 | "node": ">=14.14" 1543 | } 1544 | }, 1545 | "node_modules/toposort": { 1546 | "version": "2.0.2", 1547 | "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", 1548 | "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", 1549 | "dev": true 1550 | }, 1551 | "node_modules/tslib": { 1552 | "version": "2.6.2", 1553 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", 1554 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", 1555 | "dev": true 1556 | }, 1557 | "node_modules/type-fest": { 1558 | "version": "4.17.0", 1559 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.17.0.tgz", 1560 | "integrity": "sha512-9flrz1zkfLRH3jO3bLflmTxryzKMxVa7841VeMgBaNQGY6vH4RCcpN/sQLB7mQQYh1GZ5utT2deypMuCy4yicw==", 1561 | "dev": true, 1562 | "engines": { 1563 | "node": ">=16" 1564 | }, 1565 | "funding": { 1566 | "url": "https://github.com/sponsors/sindresorhus" 1567 | } 1568 | }, 1569 | "node_modules/upper-case-first": { 1570 | "version": "2.0.2", 1571 | "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", 1572 | "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", 1573 | "dev": true, 1574 | "dependencies": { 1575 | "tslib": "^2.0.3" 1576 | } 1577 | }, 1578 | "node_modules/util-arity": { 1579 | "version": "1.1.0", 1580 | "resolved": "https://registry.npmjs.org/util-arity/-/util-arity-1.1.0.tgz", 1581 | "integrity": "sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==", 1582 | "dev": true 1583 | }, 1584 | "node_modules/uuid": { 1585 | "version": "9.0.1", 1586 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", 1587 | "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", 1588 | "dev": true, 1589 | "funding": [ 1590 | "https://github.com/sponsors/broofa", 1591 | "https://github.com/sponsors/ctavan" 1592 | ], 1593 | "bin": { 1594 | "uuid": "dist/bin/uuid" 1595 | } 1596 | }, 1597 | "node_modules/validate-npm-package-license": { 1598 | "version": "3.0.4", 1599 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 1600 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 1601 | "dev": true, 1602 | "dependencies": { 1603 | "spdx-correct": "^3.0.0", 1604 | "spdx-expression-parse": "^3.0.0" 1605 | } 1606 | }, 1607 | "node_modules/which": { 1608 | "version": "2.0.2", 1609 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1610 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1611 | "dev": true, 1612 | "dependencies": { 1613 | "isexe": "^2.0.0" 1614 | }, 1615 | "bin": { 1616 | "node-which": "bin/node-which" 1617 | }, 1618 | "engines": { 1619 | "node": ">= 8" 1620 | } 1621 | }, 1622 | "node_modules/wrap-ansi": { 1623 | "version": "8.1.0", 1624 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 1625 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 1626 | "dev": true, 1627 | "dependencies": { 1628 | "ansi-styles": "^6.1.0", 1629 | "string-width": "^5.0.1", 1630 | "strip-ansi": "^7.0.1" 1631 | }, 1632 | "engines": { 1633 | "node": ">=12" 1634 | }, 1635 | "funding": { 1636 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1637 | } 1638 | }, 1639 | "node_modules/wrap-ansi-cjs": { 1640 | "name": "wrap-ansi", 1641 | "version": "7.0.0", 1642 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 1643 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1644 | "dev": true, 1645 | "dependencies": { 1646 | "ansi-styles": "^4.0.0", 1647 | "string-width": "^4.1.0", 1648 | "strip-ansi": "^6.0.0" 1649 | }, 1650 | "engines": { 1651 | "node": ">=10" 1652 | }, 1653 | "funding": { 1654 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1655 | } 1656 | }, 1657 | "node_modules/wrap-ansi/node_modules/ansi-regex": { 1658 | "version": "6.0.1", 1659 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 1660 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 1661 | "dev": true, 1662 | "engines": { 1663 | "node": ">=12" 1664 | }, 1665 | "funding": { 1666 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 1667 | } 1668 | }, 1669 | "node_modules/wrap-ansi/node_modules/ansi-styles": { 1670 | "version": "6.2.1", 1671 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 1672 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 1673 | "dev": true, 1674 | "engines": { 1675 | "node": ">=12" 1676 | }, 1677 | "funding": { 1678 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1679 | } 1680 | }, 1681 | "node_modules/wrap-ansi/node_modules/emoji-regex": { 1682 | "version": "9.2.2", 1683 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 1684 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 1685 | "dev": true 1686 | }, 1687 | "node_modules/wrap-ansi/node_modules/string-width": { 1688 | "version": "5.1.2", 1689 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 1690 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 1691 | "dev": true, 1692 | "dependencies": { 1693 | "eastasianwidth": "^0.2.0", 1694 | "emoji-regex": "^9.2.2", 1695 | "strip-ansi": "^7.0.1" 1696 | }, 1697 | "engines": { 1698 | "node": ">=12" 1699 | }, 1700 | "funding": { 1701 | "url": "https://github.com/sponsors/sindresorhus" 1702 | } 1703 | }, 1704 | "node_modules/wrap-ansi/node_modules/strip-ansi": { 1705 | "version": "7.1.0", 1706 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 1707 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 1708 | "dev": true, 1709 | "dependencies": { 1710 | "ansi-regex": "^6.0.1" 1711 | }, 1712 | "engines": { 1713 | "node": ">=12" 1714 | }, 1715 | "funding": { 1716 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 1717 | } 1718 | }, 1719 | "node_modules/xmlbuilder": { 1720 | "version": "15.1.1", 1721 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", 1722 | "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", 1723 | "dev": true, 1724 | "engines": { 1725 | "node": ">=8.0" 1726 | } 1727 | }, 1728 | "node_modules/yallist": { 1729 | "version": "4.0.0", 1730 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1731 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 1732 | "dev": true 1733 | }, 1734 | "node_modules/yaml": { 1735 | "version": "2.4.1", 1736 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", 1737 | "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", 1738 | "dev": true, 1739 | "bin": { 1740 | "yaml": "bin.mjs" 1741 | }, 1742 | "engines": { 1743 | "node": ">= 14" 1744 | } 1745 | }, 1746 | "node_modules/yup": { 1747 | "version": "1.2.0", 1748 | "resolved": "https://registry.npmjs.org/yup/-/yup-1.2.0.tgz", 1749 | "integrity": "sha512-PPqYKSAXjpRCgLgLKVGPA33v5c/WgEx3wi6NFjIiegz90zSwyMpvTFp/uGcVnnbx6to28pgnzp/q8ih3QRjLMQ==", 1750 | "dev": true, 1751 | "dependencies": { 1752 | "property-expr": "^2.0.5", 1753 | "tiny-case": "^1.0.3", 1754 | "toposort": "^2.0.2", 1755 | "type-fest": "^2.19.0" 1756 | } 1757 | }, 1758 | "node_modules/yup/node_modules/type-fest": { 1759 | "version": "2.19.0", 1760 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", 1761 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", 1762 | "dev": true, 1763 | "engines": { 1764 | "node": ">=12.20" 1765 | }, 1766 | "funding": { 1767 | "url": "https://github.com/sponsors/sindresorhus" 1768 | } 1769 | } 1770 | } 1771 | } 1772 | -------------------------------------------------------------------------------- /examples/command-line/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "command-line-cucumber-js-example", 3 | "version": "1.0.0", 4 | "description": "An exampe of using Cucumber-JS to test a command-line app", 5 | "main": "src/index.js", 6 | "scripts": { 7 | "test": "cucumber-js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/cucumber-examples/cucumber-js-examples.git" 12 | }, 13 | "keywords": [ 14 | "cucumber", 15 | "bdd", 16 | "example", 17 | "cli" 18 | ], 19 | "author": "Matt Wynne", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/cucumber-examples/cucumber-js-examples/issues" 23 | }, 24 | "homepage": "https://github.com/cucumber-examples/cucumber-js-examples#readme", 25 | "devDependencies": { 26 | "@cucumber/cucumber": "*" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /examples/command-line/src/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | execute: (args) => { 3 | const message = args[2] 4 | console.log(message) 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /examples/esm-node/README.md: -------------------------------------------------------------------------------- 1 | # cucumber-esm-example 2 | 3 | > A simple example of a Cucumber-JS project using ESM 4 | 5 | Things to note: 6 | 7 | - `"type": "module"` in the package.json to indicate it's an ESM project 8 | - `cucumber.js` configuration file and `steps.js` using ESM syntax 9 | - `import` configuration option instead of `require` to load support code 10 | 11 | Full documentation on ESM in Cucumber: 12 | -------------------------------------------------------------------------------- /examples/esm-node/cucumber.js: -------------------------------------------------------------------------------- 1 | export default { 2 | import: ['features/**/*.js'], 3 | publishQuiet: true 4 | } 5 | -------------------------------------------------------------------------------- /examples/esm-node/features/greeting.feature: -------------------------------------------------------------------------------- 1 | Feature: Greeting 2 | 3 | Scenario: Say hello 4 | When the greeter says hello 5 | Then I should have heard "hello" 6 | -------------------------------------------------------------------------------- /examples/esm-node/features/step_definitions/steps.js: -------------------------------------------------------------------------------- 1 | import assert from "assert"; 2 | import { When, Then } from "@cucumber/cucumber"; 3 | import { Greeter } from "../../src/index.js"; 4 | 5 | When("the greeter says hello", function () { 6 | this.whatIHeard = new Greeter().sayHello(); 7 | }); 8 | 9 | Then( 10 | "I should have heard {string}", 11 | function (expectedResponse) { 12 | assert.equal(this.whatIHeard, expectedResponse); 13 | } 14 | ); 15 | -------------------------------------------------------------------------------- /examples/esm-node/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@cucumber/esm-example", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "@cucumber/esm-example", 9 | "version": "1.0.0", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "@cucumber/cucumber": "*" 13 | } 14 | }, 15 | "node_modules/@babel/code-frame": { 16 | "version": "7.24.2", 17 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", 18 | "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", 19 | "dev": true, 20 | "dependencies": { 21 | "@babel/highlight": "^7.24.2", 22 | "picocolors": "^1.0.0" 23 | }, 24 | "engines": { 25 | "node": ">=6.9.0" 26 | } 27 | }, 28 | "node_modules/@babel/helper-validator-identifier": { 29 | "version": "7.22.20", 30 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", 31 | "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", 32 | "dev": true, 33 | "engines": { 34 | "node": ">=6.9.0" 35 | } 36 | }, 37 | "node_modules/@babel/highlight": { 38 | "version": "7.24.2", 39 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", 40 | "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", 41 | "dev": true, 42 | "dependencies": { 43 | "@babel/helper-validator-identifier": "^7.22.20", 44 | "chalk": "^2.4.2", 45 | "js-tokens": "^4.0.0", 46 | "picocolors": "^1.0.0" 47 | }, 48 | "engines": { 49 | "node": ">=6.9.0" 50 | } 51 | }, 52 | "node_modules/@babel/highlight/node_modules/ansi-styles": { 53 | "version": "3.2.1", 54 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 55 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 56 | "dev": true, 57 | "dependencies": { 58 | "color-convert": "^1.9.0" 59 | }, 60 | "engines": { 61 | "node": ">=4" 62 | } 63 | }, 64 | "node_modules/@babel/highlight/node_modules/chalk": { 65 | "version": "2.4.2", 66 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 67 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 68 | "dev": true, 69 | "dependencies": { 70 | "ansi-styles": "^3.2.1", 71 | "escape-string-regexp": "^1.0.5", 72 | "supports-color": "^5.3.0" 73 | }, 74 | "engines": { 75 | "node": ">=4" 76 | } 77 | }, 78 | "node_modules/@babel/highlight/node_modules/color-convert": { 79 | "version": "1.9.3", 80 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 81 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 82 | "dev": true, 83 | "dependencies": { 84 | "color-name": "1.1.3" 85 | } 86 | }, 87 | "node_modules/@babel/highlight/node_modules/color-name": { 88 | "version": "1.1.3", 89 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 90 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 91 | "dev": true 92 | }, 93 | "node_modules/@babel/highlight/node_modules/has-flag": { 94 | "version": "3.0.0", 95 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 96 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 97 | "dev": true, 98 | "engines": { 99 | "node": ">=4" 100 | } 101 | }, 102 | "node_modules/@babel/highlight/node_modules/supports-color": { 103 | "version": "5.5.0", 104 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 105 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 106 | "dev": true, 107 | "dependencies": { 108 | "has-flag": "^3.0.0" 109 | }, 110 | "engines": { 111 | "node": ">=4" 112 | } 113 | }, 114 | "node_modules/@colors/colors": { 115 | "version": "1.5.0", 116 | "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", 117 | "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", 118 | "dev": true, 119 | "optional": true, 120 | "engines": { 121 | "node": ">=0.1.90" 122 | } 123 | }, 124 | "node_modules/@cucumber/ci-environment": { 125 | "version": "10.0.1", 126 | "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-10.0.1.tgz", 127 | "integrity": "sha512-/+ooDMPtKSmvcPMDYnMZt4LuoipfFfHaYspStI4shqw8FyKcfQAmekz6G+QKWjQQrvM+7Hkljwx58MEwPCwwzg==", 128 | "dev": true 129 | }, 130 | "node_modules/@cucumber/cucumber": { 131 | "version": "10.6.0", 132 | "resolved": "https://registry.npmjs.org/@cucumber/cucumber/-/cucumber-10.6.0.tgz", 133 | "integrity": "sha512-1ui/PDJelSRioZGYZdxeNepnCetbjbv16FUDdWi6WdjAeMqfCsuiJHjN++b7Wjxd1xKhXdSLfMntqpuNcPTIug==", 134 | "dev": true, 135 | "dependencies": { 136 | "@cucumber/ci-environment": "10.0.1", 137 | "@cucumber/cucumber-expressions": "17.1.0", 138 | "@cucumber/gherkin": "28.0.0", 139 | "@cucumber/gherkin-streams": "5.0.1", 140 | "@cucumber/gherkin-utils": "9.0.0", 141 | "@cucumber/html-formatter": "21.3.1", 142 | "@cucumber/message-streams": "4.0.1", 143 | "@cucumber/messages": "24.1.0", 144 | "@cucumber/tag-expressions": "6.1.0", 145 | "assertion-error-formatter": "^3.0.0", 146 | "capital-case": "^1.0.4", 147 | "chalk": "^4.1.2", 148 | "cli-table3": "0.6.3", 149 | "commander": "^10.0.0", 150 | "debug": "^4.3.4", 151 | "error-stack-parser": "^2.1.4", 152 | "figures": "^3.2.0", 153 | "glob": "^10.3.10", 154 | "has-ansi": "^4.0.1", 155 | "indent-string": "^4.0.0", 156 | "is-installed-globally": "^0.4.0", 157 | "is-stream": "^2.0.0", 158 | "knuth-shuffle-seeded": "^1.0.6", 159 | "lodash.merge": "^4.6.2", 160 | "lodash.mergewith": "^4.6.2", 161 | "luxon": "3.2.1", 162 | "mkdirp": "^2.1.5", 163 | "mz": "^2.7.0", 164 | "progress": "^2.0.3", 165 | "read-pkg-up": "^7.0.1", 166 | "resolve-pkg": "^2.0.0", 167 | "semver": "7.5.3", 168 | "string-argv": "0.3.1", 169 | "strip-ansi": "6.0.1", 170 | "supports-color": "^8.1.1", 171 | "tmp": "0.2.3", 172 | "type-fest": "^4.8.3", 173 | "util-arity": "^1.1.0", 174 | "xmlbuilder": "^15.1.1", 175 | "yaml": "^2.2.2", 176 | "yup": "1.2.0" 177 | }, 178 | "bin": { 179 | "cucumber-js": "bin/cucumber.js" 180 | }, 181 | "engines": { 182 | "node": "18 || >=20" 183 | }, 184 | "funding": { 185 | "url": "https://opencollective.com/cucumber" 186 | } 187 | }, 188 | "node_modules/@cucumber/cucumber-expressions": { 189 | "version": "17.1.0", 190 | "resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-17.1.0.tgz", 191 | "integrity": "sha512-PCv/ppsPynniKPWJr5v566daCVe+pbxQpHGrIu/Ev57cCH9Rv+X0F6lio4Id3Z64TaG7btCRLUGewIgLwmrwOA==", 192 | "dev": true, 193 | "dependencies": { 194 | "regexp-match-indices": "1.0.2" 195 | } 196 | }, 197 | "node_modules/@cucumber/gherkin": { 198 | "version": "28.0.0", 199 | "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-28.0.0.tgz", 200 | "integrity": "sha512-Ee6zJQq0OmIUPdW0mSnsCsrWA2PZAELNDPICD2pLfs0Oz7RAPgj80UsD2UCtqyAhw2qAR62aqlktKUlai5zl/A==", 201 | "dev": true, 202 | "dependencies": { 203 | "@cucumber/messages": ">=19.1.4 <=24" 204 | } 205 | }, 206 | "node_modules/@cucumber/gherkin-streams": { 207 | "version": "5.0.1", 208 | "resolved": "https://registry.npmjs.org/@cucumber/gherkin-streams/-/gherkin-streams-5.0.1.tgz", 209 | "integrity": "sha512-/7VkIE/ASxIP/jd4Crlp4JHXqdNFxPGQokqWqsaCCiqBiu5qHoKMxcWNlp9njVL/n9yN4S08OmY3ZR8uC5x74Q==", 210 | "dev": true, 211 | "dependencies": { 212 | "commander": "9.1.0", 213 | "source-map-support": "0.5.21" 214 | }, 215 | "bin": { 216 | "gherkin-javascript": "bin/gherkin" 217 | }, 218 | "peerDependencies": { 219 | "@cucumber/gherkin": ">=22.0.0", 220 | "@cucumber/message-streams": ">=4.0.0", 221 | "@cucumber/messages": ">=17.1.1" 222 | } 223 | }, 224 | "node_modules/@cucumber/gherkin-streams/node_modules/commander": { 225 | "version": "9.1.0", 226 | "resolved": "https://registry.npmjs.org/commander/-/commander-9.1.0.tgz", 227 | "integrity": "sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w==", 228 | "dev": true, 229 | "engines": { 230 | "node": "^12.20.0 || >=14" 231 | } 232 | }, 233 | "node_modules/@cucumber/gherkin-utils": { 234 | "version": "9.0.0", 235 | "resolved": "https://registry.npmjs.org/@cucumber/gherkin-utils/-/gherkin-utils-9.0.0.tgz", 236 | "integrity": "sha512-clk4q39uj7pztZuZtyI54V8lRsCUz0Y/p8XRjIeHh7ExeEztpWkp4ca9q1FjUOPfQQ8E7OgqFbqoQQXZ1Bx7fw==", 237 | "dev": true, 238 | "dependencies": { 239 | "@cucumber/gherkin": "^28.0.0", 240 | "@cucumber/messages": "^24.0.0", 241 | "@teppeis/multimaps": "3.0.0", 242 | "commander": "12.0.0", 243 | "source-map-support": "^0.5.21" 244 | }, 245 | "bin": { 246 | "gherkin-utils": "bin/gherkin-utils" 247 | } 248 | }, 249 | "node_modules/@cucumber/gherkin-utils/node_modules/commander": { 250 | "version": "12.0.0", 251 | "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", 252 | "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", 253 | "dev": true, 254 | "engines": { 255 | "node": ">=18" 256 | } 257 | }, 258 | "node_modules/@cucumber/html-formatter": { 259 | "version": "21.3.1", 260 | "resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-21.3.1.tgz", 261 | "integrity": "sha512-M1zbre7e8MsecXheqNv62BKY5J06YJSv1LmsD7sJ3mu5t1jirLjj2It1HqPsX5CQAfg9n69xFRugPgLMSte9TA==", 262 | "dev": true, 263 | "peerDependencies": { 264 | "@cucumber/messages": ">=18" 265 | } 266 | }, 267 | "node_modules/@cucumber/message-streams": { 268 | "version": "4.0.1", 269 | "resolved": "https://registry.npmjs.org/@cucumber/message-streams/-/message-streams-4.0.1.tgz", 270 | "integrity": "sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA==", 271 | "dev": true, 272 | "peerDependencies": { 273 | "@cucumber/messages": ">=17.1.1" 274 | } 275 | }, 276 | "node_modules/@cucumber/messages": { 277 | "version": "24.1.0", 278 | "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-24.1.0.tgz", 279 | "integrity": "sha512-hxVHiBurORcobhVk80I9+JkaKaNXkW6YwGOEFIh/2aO+apAN+5XJgUUWjng9NwqaQrW1sCFuawLB1AuzmBaNdQ==", 280 | "dev": true, 281 | "dependencies": { 282 | "@types/uuid": "9.0.8", 283 | "class-transformer": "0.5.1", 284 | "reflect-metadata": "0.2.1", 285 | "uuid": "9.0.1" 286 | } 287 | }, 288 | "node_modules/@cucumber/tag-expressions": { 289 | "version": "6.1.0", 290 | "resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-6.1.0.tgz", 291 | "integrity": "sha512-+3DwRumrCJG27AtzCIL37A/X+A/gSfxOPLg8pZaruh5SLumsTmpvilwroVWBT2fPzmno/tGXypeK5a7NHU4RzA==", 292 | "dev": true 293 | }, 294 | "node_modules/@isaacs/cliui": { 295 | "version": "8.0.2", 296 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 297 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 298 | "dev": true, 299 | "dependencies": { 300 | "string-width": "^5.1.2", 301 | "string-width-cjs": "npm:string-width@^4.2.0", 302 | "strip-ansi": "^7.0.1", 303 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 304 | "wrap-ansi": "^8.1.0", 305 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 306 | }, 307 | "engines": { 308 | "node": ">=12" 309 | } 310 | }, 311 | "node_modules/@isaacs/cliui/node_modules/ansi-regex": { 312 | "version": "6.0.1", 313 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 314 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 315 | "dev": true, 316 | "engines": { 317 | "node": ">=12" 318 | }, 319 | "funding": { 320 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 321 | } 322 | }, 323 | "node_modules/@isaacs/cliui/node_modules/emoji-regex": { 324 | "version": "9.2.2", 325 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 326 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 327 | "dev": true 328 | }, 329 | "node_modules/@isaacs/cliui/node_modules/string-width": { 330 | "version": "5.1.2", 331 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 332 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 333 | "dev": true, 334 | "dependencies": { 335 | "eastasianwidth": "^0.2.0", 336 | "emoji-regex": "^9.2.2", 337 | "strip-ansi": "^7.0.1" 338 | }, 339 | "engines": { 340 | "node": ">=12" 341 | }, 342 | "funding": { 343 | "url": "https://github.com/sponsors/sindresorhus" 344 | } 345 | }, 346 | "node_modules/@isaacs/cliui/node_modules/strip-ansi": { 347 | "version": "7.1.0", 348 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 349 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 350 | "dev": true, 351 | "dependencies": { 352 | "ansi-regex": "^6.0.1" 353 | }, 354 | "engines": { 355 | "node": ">=12" 356 | }, 357 | "funding": { 358 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 359 | } 360 | }, 361 | "node_modules/@pkgjs/parseargs": { 362 | "version": "0.11.0", 363 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 364 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 365 | "dev": true, 366 | "optional": true, 367 | "engines": { 368 | "node": ">=14" 369 | } 370 | }, 371 | "node_modules/@teppeis/multimaps": { 372 | "version": "3.0.0", 373 | "resolved": "https://registry.npmjs.org/@teppeis/multimaps/-/multimaps-3.0.0.tgz", 374 | "integrity": "sha512-ID7fosbc50TbT0MK0EG12O+gAP3W3Aa/Pz4DaTtQtEvlc9Odaqi0de+xuZ7Li2GtK4HzEX7IuRWS/JmZLksR3Q==", 375 | "dev": true, 376 | "engines": { 377 | "node": ">=14" 378 | } 379 | }, 380 | "node_modules/@types/normalize-package-data": { 381 | "version": "2.4.4", 382 | "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", 383 | "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", 384 | "dev": true 385 | }, 386 | "node_modules/@types/uuid": { 387 | "version": "9.0.8", 388 | "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", 389 | "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", 390 | "dev": true 391 | }, 392 | "node_modules/ansi-regex": { 393 | "version": "4.1.1", 394 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", 395 | "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", 396 | "dev": true, 397 | "engines": { 398 | "node": ">=6" 399 | } 400 | }, 401 | "node_modules/ansi-styles": { 402 | "version": "4.3.0", 403 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 404 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 405 | "dev": true, 406 | "dependencies": { 407 | "color-convert": "^2.0.1" 408 | }, 409 | "engines": { 410 | "node": ">=8" 411 | }, 412 | "funding": { 413 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 414 | } 415 | }, 416 | "node_modules/any-promise": { 417 | "version": "1.3.0", 418 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 419 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", 420 | "dev": true 421 | }, 422 | "node_modules/assertion-error-formatter": { 423 | "version": "3.0.0", 424 | "resolved": "https://registry.npmjs.org/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz", 425 | "integrity": "sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==", 426 | "dev": true, 427 | "dependencies": { 428 | "diff": "^4.0.1", 429 | "pad-right": "^0.2.2", 430 | "repeat-string": "^1.6.1" 431 | } 432 | }, 433 | "node_modules/balanced-match": { 434 | "version": "1.0.2", 435 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 436 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 437 | "dev": true 438 | }, 439 | "node_modules/brace-expansion": { 440 | "version": "2.0.1", 441 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 442 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 443 | "dev": true, 444 | "dependencies": { 445 | "balanced-match": "^1.0.0" 446 | } 447 | }, 448 | "node_modules/buffer-from": { 449 | "version": "1.1.2", 450 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 451 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 452 | "dev": true 453 | }, 454 | "node_modules/capital-case": { 455 | "version": "1.0.4", 456 | "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", 457 | "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", 458 | "dev": true, 459 | "dependencies": { 460 | "no-case": "^3.0.4", 461 | "tslib": "^2.0.3", 462 | "upper-case-first": "^2.0.2" 463 | } 464 | }, 465 | "node_modules/chalk": { 466 | "version": "4.1.2", 467 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 468 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 469 | "dev": true, 470 | "dependencies": { 471 | "ansi-styles": "^4.1.0", 472 | "supports-color": "^7.1.0" 473 | }, 474 | "engines": { 475 | "node": ">=10" 476 | }, 477 | "funding": { 478 | "url": "https://github.com/chalk/chalk?sponsor=1" 479 | } 480 | }, 481 | "node_modules/chalk/node_modules/supports-color": { 482 | "version": "7.2.0", 483 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 484 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 485 | "dev": true, 486 | "dependencies": { 487 | "has-flag": "^4.0.0" 488 | }, 489 | "engines": { 490 | "node": ">=8" 491 | } 492 | }, 493 | "node_modules/class-transformer": { 494 | "version": "0.5.1", 495 | "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", 496 | "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==", 497 | "dev": true 498 | }, 499 | "node_modules/cli-table3": { 500 | "version": "0.6.3", 501 | "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", 502 | "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", 503 | "dev": true, 504 | "dependencies": { 505 | "string-width": "^4.2.0" 506 | }, 507 | "engines": { 508 | "node": "10.* || >= 12.*" 509 | }, 510 | "optionalDependencies": { 511 | "@colors/colors": "1.5.0" 512 | } 513 | }, 514 | "node_modules/color-convert": { 515 | "version": "2.0.1", 516 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 517 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 518 | "dev": true, 519 | "dependencies": { 520 | "color-name": "~1.1.4" 521 | }, 522 | "engines": { 523 | "node": ">=7.0.0" 524 | } 525 | }, 526 | "node_modules/color-name": { 527 | "version": "1.1.4", 528 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 529 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 530 | "dev": true 531 | }, 532 | "node_modules/commander": { 533 | "version": "10.0.1", 534 | "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", 535 | "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", 536 | "dev": true, 537 | "engines": { 538 | "node": ">=14" 539 | } 540 | }, 541 | "node_modules/cross-spawn": { 542 | "version": "7.0.3", 543 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 544 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 545 | "dev": true, 546 | "dependencies": { 547 | "path-key": "^3.1.0", 548 | "shebang-command": "^2.0.0", 549 | "which": "^2.0.1" 550 | }, 551 | "engines": { 552 | "node": ">= 8" 553 | } 554 | }, 555 | "node_modules/debug": { 556 | "version": "4.3.4", 557 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 558 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 559 | "dev": true, 560 | "dependencies": { 561 | "ms": "2.1.2" 562 | }, 563 | "engines": { 564 | "node": ">=6.0" 565 | }, 566 | "peerDependenciesMeta": { 567 | "supports-color": { 568 | "optional": true 569 | } 570 | } 571 | }, 572 | "node_modules/diff": { 573 | "version": "4.0.2", 574 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", 575 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", 576 | "dev": true, 577 | "engines": { 578 | "node": ">=0.3.1" 579 | } 580 | }, 581 | "node_modules/eastasianwidth": { 582 | "version": "0.2.0", 583 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 584 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 585 | "dev": true 586 | }, 587 | "node_modules/emoji-regex": { 588 | "version": "8.0.0", 589 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 590 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 591 | "dev": true 592 | }, 593 | "node_modules/error-ex": { 594 | "version": "1.3.2", 595 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 596 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 597 | "dev": true, 598 | "dependencies": { 599 | "is-arrayish": "^0.2.1" 600 | } 601 | }, 602 | "node_modules/error-stack-parser": { 603 | "version": "2.1.4", 604 | "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", 605 | "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", 606 | "dev": true, 607 | "dependencies": { 608 | "stackframe": "^1.3.4" 609 | } 610 | }, 611 | "node_modules/escape-string-regexp": { 612 | "version": "1.0.5", 613 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 614 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 615 | "dev": true, 616 | "engines": { 617 | "node": ">=0.8.0" 618 | } 619 | }, 620 | "node_modules/figures": { 621 | "version": "3.2.0", 622 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", 623 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", 624 | "dev": true, 625 | "dependencies": { 626 | "escape-string-regexp": "^1.0.5" 627 | }, 628 | "engines": { 629 | "node": ">=8" 630 | }, 631 | "funding": { 632 | "url": "https://github.com/sponsors/sindresorhus" 633 | } 634 | }, 635 | "node_modules/find-up": { 636 | "version": "4.1.0", 637 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 638 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 639 | "dev": true, 640 | "dependencies": { 641 | "locate-path": "^5.0.0", 642 | "path-exists": "^4.0.0" 643 | }, 644 | "engines": { 645 | "node": ">=8" 646 | } 647 | }, 648 | "node_modules/foreground-child": { 649 | "version": "3.1.1", 650 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", 651 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", 652 | "dev": true, 653 | "dependencies": { 654 | "cross-spawn": "^7.0.0", 655 | "signal-exit": "^4.0.1" 656 | }, 657 | "engines": { 658 | "node": ">=14" 659 | }, 660 | "funding": { 661 | "url": "https://github.com/sponsors/isaacs" 662 | } 663 | }, 664 | "node_modules/function-bind": { 665 | "version": "1.1.2", 666 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 667 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 668 | "dev": true, 669 | "funding": { 670 | "url": "https://github.com/sponsors/ljharb" 671 | } 672 | }, 673 | "node_modules/glob": { 674 | "version": "10.3.12", 675 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", 676 | "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", 677 | "dev": true, 678 | "dependencies": { 679 | "foreground-child": "^3.1.0", 680 | "jackspeak": "^2.3.6", 681 | "minimatch": "^9.0.1", 682 | "minipass": "^7.0.4", 683 | "path-scurry": "^1.10.2" 684 | }, 685 | "bin": { 686 | "glob": "dist/esm/bin.mjs" 687 | }, 688 | "engines": { 689 | "node": ">=16 || 14 >=14.17" 690 | }, 691 | "funding": { 692 | "url": "https://github.com/sponsors/isaacs" 693 | } 694 | }, 695 | "node_modules/global-dirs": { 696 | "version": "3.0.1", 697 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", 698 | "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", 699 | "dev": true, 700 | "dependencies": { 701 | "ini": "2.0.0" 702 | }, 703 | "engines": { 704 | "node": ">=10" 705 | }, 706 | "funding": { 707 | "url": "https://github.com/sponsors/sindresorhus" 708 | } 709 | }, 710 | "node_modules/has-ansi": { 711 | "version": "4.0.1", 712 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-4.0.1.tgz", 713 | "integrity": "sha512-Qr4RtTm30xvEdqUXbSBVWDu+PrTokJOwe/FU+VdfJPk+MXAPoeOzKpRyrDTnZIJwAkQ4oBLTU53nu0HrkF/Z2A==", 714 | "dev": true, 715 | "dependencies": { 716 | "ansi-regex": "^4.1.0" 717 | }, 718 | "engines": { 719 | "node": ">=8" 720 | } 721 | }, 722 | "node_modules/has-flag": { 723 | "version": "4.0.0", 724 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 725 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 726 | "dev": true, 727 | "engines": { 728 | "node": ">=8" 729 | } 730 | }, 731 | "node_modules/hasown": { 732 | "version": "2.0.2", 733 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 734 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 735 | "dev": true, 736 | "dependencies": { 737 | "function-bind": "^1.1.2" 738 | }, 739 | "engines": { 740 | "node": ">= 0.4" 741 | } 742 | }, 743 | "node_modules/hosted-git-info": { 744 | "version": "2.8.9", 745 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", 746 | "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", 747 | "dev": true 748 | }, 749 | "node_modules/indent-string": { 750 | "version": "4.0.0", 751 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 752 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", 753 | "dev": true, 754 | "engines": { 755 | "node": ">=8" 756 | } 757 | }, 758 | "node_modules/ini": { 759 | "version": "2.0.0", 760 | "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", 761 | "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", 762 | "dev": true, 763 | "engines": { 764 | "node": ">=10" 765 | } 766 | }, 767 | "node_modules/is-arrayish": { 768 | "version": "0.2.1", 769 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 770 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", 771 | "dev": true 772 | }, 773 | "node_modules/is-core-module": { 774 | "version": "2.13.1", 775 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", 776 | "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", 777 | "dev": true, 778 | "dependencies": { 779 | "hasown": "^2.0.0" 780 | }, 781 | "funding": { 782 | "url": "https://github.com/sponsors/ljharb" 783 | } 784 | }, 785 | "node_modules/is-fullwidth-code-point": { 786 | "version": "3.0.0", 787 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 788 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 789 | "dev": true, 790 | "engines": { 791 | "node": ">=8" 792 | } 793 | }, 794 | "node_modules/is-installed-globally": { 795 | "version": "0.4.0", 796 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", 797 | "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", 798 | "dev": true, 799 | "dependencies": { 800 | "global-dirs": "^3.0.0", 801 | "is-path-inside": "^3.0.2" 802 | }, 803 | "engines": { 804 | "node": ">=10" 805 | }, 806 | "funding": { 807 | "url": "https://github.com/sponsors/sindresorhus" 808 | } 809 | }, 810 | "node_modules/is-path-inside": { 811 | "version": "3.0.3", 812 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 813 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 814 | "dev": true, 815 | "engines": { 816 | "node": ">=8" 817 | } 818 | }, 819 | "node_modules/is-stream": { 820 | "version": "2.0.1", 821 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 822 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 823 | "dev": true, 824 | "engines": { 825 | "node": ">=8" 826 | }, 827 | "funding": { 828 | "url": "https://github.com/sponsors/sindresorhus" 829 | } 830 | }, 831 | "node_modules/isexe": { 832 | "version": "2.0.0", 833 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 834 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 835 | "dev": true 836 | }, 837 | "node_modules/jackspeak": { 838 | "version": "2.3.6", 839 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", 840 | "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", 841 | "dev": true, 842 | "dependencies": { 843 | "@isaacs/cliui": "^8.0.2" 844 | }, 845 | "engines": { 846 | "node": ">=14" 847 | }, 848 | "funding": { 849 | "url": "https://github.com/sponsors/isaacs" 850 | }, 851 | "optionalDependencies": { 852 | "@pkgjs/parseargs": "^0.11.0" 853 | } 854 | }, 855 | "node_modules/js-tokens": { 856 | "version": "4.0.0", 857 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 858 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 859 | "dev": true 860 | }, 861 | "node_modules/json-parse-even-better-errors": { 862 | "version": "2.3.1", 863 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 864 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 865 | "dev": true 866 | }, 867 | "node_modules/knuth-shuffle-seeded": { 868 | "version": "1.0.6", 869 | "resolved": "https://registry.npmjs.org/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz", 870 | "integrity": "sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg==", 871 | "dev": true, 872 | "dependencies": { 873 | "seed-random": "~2.2.0" 874 | } 875 | }, 876 | "node_modules/lines-and-columns": { 877 | "version": "1.2.4", 878 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 879 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 880 | "dev": true 881 | }, 882 | "node_modules/locate-path": { 883 | "version": "5.0.0", 884 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 885 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 886 | "dev": true, 887 | "dependencies": { 888 | "p-locate": "^4.1.0" 889 | }, 890 | "engines": { 891 | "node": ">=8" 892 | } 893 | }, 894 | "node_modules/lodash.merge": { 895 | "version": "4.6.2", 896 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 897 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 898 | "dev": true 899 | }, 900 | "node_modules/lodash.mergewith": { 901 | "version": "4.6.2", 902 | "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", 903 | "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", 904 | "dev": true 905 | }, 906 | "node_modules/lower-case": { 907 | "version": "2.0.2", 908 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", 909 | "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", 910 | "dev": true, 911 | "dependencies": { 912 | "tslib": "^2.0.3" 913 | } 914 | }, 915 | "node_modules/lru-cache": { 916 | "version": "10.2.1", 917 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.1.tgz", 918 | "integrity": "sha512-tS24spDe/zXhWbNPErCHs/AGOzbKGHT+ybSBqmdLm8WZ1xXLWvH8Qn71QPAlqVhd0qUTWjy+Kl9JmISgDdEjsA==", 919 | "dev": true, 920 | "engines": { 921 | "node": "14 || >=16.14" 922 | } 923 | }, 924 | "node_modules/luxon": { 925 | "version": "3.2.1", 926 | "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", 927 | "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", 928 | "dev": true, 929 | "engines": { 930 | "node": ">=12" 931 | } 932 | }, 933 | "node_modules/minimatch": { 934 | "version": "9.0.4", 935 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", 936 | "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", 937 | "dev": true, 938 | "dependencies": { 939 | "brace-expansion": "^2.0.1" 940 | }, 941 | "engines": { 942 | "node": ">=16 || 14 >=14.17" 943 | }, 944 | "funding": { 945 | "url": "https://github.com/sponsors/isaacs" 946 | } 947 | }, 948 | "node_modules/minipass": { 949 | "version": "7.0.4", 950 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", 951 | "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", 952 | "dev": true, 953 | "engines": { 954 | "node": ">=16 || 14 >=14.17" 955 | } 956 | }, 957 | "node_modules/mkdirp": { 958 | "version": "2.1.6", 959 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", 960 | "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", 961 | "dev": true, 962 | "bin": { 963 | "mkdirp": "dist/cjs/src/bin.js" 964 | }, 965 | "engines": { 966 | "node": ">=10" 967 | }, 968 | "funding": { 969 | "url": "https://github.com/sponsors/isaacs" 970 | } 971 | }, 972 | "node_modules/ms": { 973 | "version": "2.1.2", 974 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 975 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 976 | "dev": true 977 | }, 978 | "node_modules/mz": { 979 | "version": "2.7.0", 980 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 981 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 982 | "dev": true, 983 | "dependencies": { 984 | "any-promise": "^1.0.0", 985 | "object-assign": "^4.0.1", 986 | "thenify-all": "^1.0.0" 987 | } 988 | }, 989 | "node_modules/no-case": { 990 | "version": "3.0.4", 991 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", 992 | "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", 993 | "dev": true, 994 | "dependencies": { 995 | "lower-case": "^2.0.2", 996 | "tslib": "^2.0.3" 997 | } 998 | }, 999 | "node_modules/normalize-package-data": { 1000 | "version": "2.5.0", 1001 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 1002 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 1003 | "dev": true, 1004 | "dependencies": { 1005 | "hosted-git-info": "^2.1.4", 1006 | "resolve": "^1.10.0", 1007 | "semver": "2 || 3 || 4 || 5", 1008 | "validate-npm-package-license": "^3.0.1" 1009 | } 1010 | }, 1011 | "node_modules/normalize-package-data/node_modules/semver": { 1012 | "version": "5.7.2", 1013 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", 1014 | "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", 1015 | "dev": true, 1016 | "bin": { 1017 | "semver": "bin/semver" 1018 | } 1019 | }, 1020 | "node_modules/object-assign": { 1021 | "version": "4.1.1", 1022 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1023 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1024 | "dev": true, 1025 | "engines": { 1026 | "node": ">=0.10.0" 1027 | } 1028 | }, 1029 | "node_modules/p-limit": { 1030 | "version": "2.3.0", 1031 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1032 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1033 | "dev": true, 1034 | "dependencies": { 1035 | "p-try": "^2.0.0" 1036 | }, 1037 | "engines": { 1038 | "node": ">=6" 1039 | }, 1040 | "funding": { 1041 | "url": "https://github.com/sponsors/sindresorhus" 1042 | } 1043 | }, 1044 | "node_modules/p-locate": { 1045 | "version": "4.1.0", 1046 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 1047 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1048 | "dev": true, 1049 | "dependencies": { 1050 | "p-limit": "^2.2.0" 1051 | }, 1052 | "engines": { 1053 | "node": ">=8" 1054 | } 1055 | }, 1056 | "node_modules/p-try": { 1057 | "version": "2.2.0", 1058 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1059 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1060 | "dev": true, 1061 | "engines": { 1062 | "node": ">=6" 1063 | } 1064 | }, 1065 | "node_modules/pad-right": { 1066 | "version": "0.2.2", 1067 | "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", 1068 | "integrity": "sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g==", 1069 | "dev": true, 1070 | "dependencies": { 1071 | "repeat-string": "^1.5.2" 1072 | }, 1073 | "engines": { 1074 | "node": ">=0.10.0" 1075 | } 1076 | }, 1077 | "node_modules/parse-json": { 1078 | "version": "5.2.0", 1079 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 1080 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 1081 | "dev": true, 1082 | "dependencies": { 1083 | "@babel/code-frame": "^7.0.0", 1084 | "error-ex": "^1.3.1", 1085 | "json-parse-even-better-errors": "^2.3.0", 1086 | "lines-and-columns": "^1.1.6" 1087 | }, 1088 | "engines": { 1089 | "node": ">=8" 1090 | }, 1091 | "funding": { 1092 | "url": "https://github.com/sponsors/sindresorhus" 1093 | } 1094 | }, 1095 | "node_modules/path-exists": { 1096 | "version": "4.0.0", 1097 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1098 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1099 | "dev": true, 1100 | "engines": { 1101 | "node": ">=8" 1102 | } 1103 | }, 1104 | "node_modules/path-key": { 1105 | "version": "3.1.1", 1106 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1107 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1108 | "dev": true, 1109 | "engines": { 1110 | "node": ">=8" 1111 | } 1112 | }, 1113 | "node_modules/path-parse": { 1114 | "version": "1.0.7", 1115 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1116 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1117 | "dev": true 1118 | }, 1119 | "node_modules/path-scurry": { 1120 | "version": "1.10.2", 1121 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", 1122 | "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", 1123 | "dev": true, 1124 | "dependencies": { 1125 | "lru-cache": "^10.2.0", 1126 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 1127 | }, 1128 | "engines": { 1129 | "node": ">=16 || 14 >=14.17" 1130 | }, 1131 | "funding": { 1132 | "url": "https://github.com/sponsors/isaacs" 1133 | } 1134 | }, 1135 | "node_modules/picocolors": { 1136 | "version": "1.0.0", 1137 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1138 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1139 | "dev": true 1140 | }, 1141 | "node_modules/progress": { 1142 | "version": "2.0.3", 1143 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1144 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 1145 | "dev": true, 1146 | "engines": { 1147 | "node": ">=0.4.0" 1148 | } 1149 | }, 1150 | "node_modules/property-expr": { 1151 | "version": "2.0.6", 1152 | "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", 1153 | "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", 1154 | "dev": true 1155 | }, 1156 | "node_modules/read-pkg": { 1157 | "version": "5.2.0", 1158 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", 1159 | "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", 1160 | "dev": true, 1161 | "dependencies": { 1162 | "@types/normalize-package-data": "^2.4.0", 1163 | "normalize-package-data": "^2.5.0", 1164 | "parse-json": "^5.0.0", 1165 | "type-fest": "^0.6.0" 1166 | }, 1167 | "engines": { 1168 | "node": ">=8" 1169 | } 1170 | }, 1171 | "node_modules/read-pkg-up": { 1172 | "version": "7.0.1", 1173 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", 1174 | "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", 1175 | "dev": true, 1176 | "dependencies": { 1177 | "find-up": "^4.1.0", 1178 | "read-pkg": "^5.2.0", 1179 | "type-fest": "^0.8.1" 1180 | }, 1181 | "engines": { 1182 | "node": ">=8" 1183 | }, 1184 | "funding": { 1185 | "url": "https://github.com/sponsors/sindresorhus" 1186 | } 1187 | }, 1188 | "node_modules/read-pkg-up/node_modules/type-fest": { 1189 | "version": "0.8.1", 1190 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 1191 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 1192 | "dev": true, 1193 | "engines": { 1194 | "node": ">=8" 1195 | } 1196 | }, 1197 | "node_modules/read-pkg/node_modules/type-fest": { 1198 | "version": "0.6.0", 1199 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", 1200 | "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", 1201 | "dev": true, 1202 | "engines": { 1203 | "node": ">=8" 1204 | } 1205 | }, 1206 | "node_modules/reflect-metadata": { 1207 | "version": "0.2.1", 1208 | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", 1209 | "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==", 1210 | "deprecated": "This version has a critical bug in fallback handling. Please upgrade to reflect-metadata@0.2.2 or newer.", 1211 | "dev": true 1212 | }, 1213 | "node_modules/regexp-match-indices": { 1214 | "version": "1.0.2", 1215 | "resolved": "https://registry.npmjs.org/regexp-match-indices/-/regexp-match-indices-1.0.2.tgz", 1216 | "integrity": "sha512-DwZuAkt8NF5mKwGGER1EGh2PRqyvhRhhLviH+R8y8dIuaQROlUfXjt4s9ZTXstIsSkptf06BSvwcEmmfheJJWQ==", 1217 | "dev": true, 1218 | "dependencies": { 1219 | "regexp-tree": "^0.1.11" 1220 | } 1221 | }, 1222 | "node_modules/regexp-tree": { 1223 | "version": "0.1.27", 1224 | "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", 1225 | "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", 1226 | "dev": true, 1227 | "bin": { 1228 | "regexp-tree": "bin/regexp-tree" 1229 | } 1230 | }, 1231 | "node_modules/repeat-string": { 1232 | "version": "1.6.1", 1233 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 1234 | "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", 1235 | "dev": true, 1236 | "engines": { 1237 | "node": ">=0.10" 1238 | } 1239 | }, 1240 | "node_modules/resolve": { 1241 | "version": "1.22.8", 1242 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", 1243 | "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", 1244 | "dev": true, 1245 | "dependencies": { 1246 | "is-core-module": "^2.13.0", 1247 | "path-parse": "^1.0.7", 1248 | "supports-preserve-symlinks-flag": "^1.0.0" 1249 | }, 1250 | "bin": { 1251 | "resolve": "bin/resolve" 1252 | }, 1253 | "funding": { 1254 | "url": "https://github.com/sponsors/ljharb" 1255 | } 1256 | }, 1257 | "node_modules/resolve-from": { 1258 | "version": "5.0.0", 1259 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 1260 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 1261 | "dev": true, 1262 | "engines": { 1263 | "node": ">=8" 1264 | } 1265 | }, 1266 | "node_modules/resolve-pkg": { 1267 | "version": "2.0.0", 1268 | "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-2.0.0.tgz", 1269 | "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==", 1270 | "dev": true, 1271 | "dependencies": { 1272 | "resolve-from": "^5.0.0" 1273 | }, 1274 | "engines": { 1275 | "node": ">=8" 1276 | } 1277 | }, 1278 | "node_modules/seed-random": { 1279 | "version": "2.2.0", 1280 | "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz", 1281 | "integrity": "sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ==", 1282 | "dev": true 1283 | }, 1284 | "node_modules/semver": { 1285 | "version": "7.5.3", 1286 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", 1287 | "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", 1288 | "dev": true, 1289 | "dependencies": { 1290 | "lru-cache": "^6.0.0" 1291 | }, 1292 | "bin": { 1293 | "semver": "bin/semver.js" 1294 | }, 1295 | "engines": { 1296 | "node": ">=10" 1297 | } 1298 | }, 1299 | "node_modules/semver/node_modules/lru-cache": { 1300 | "version": "6.0.0", 1301 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1302 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1303 | "dev": true, 1304 | "dependencies": { 1305 | "yallist": "^4.0.0" 1306 | }, 1307 | "engines": { 1308 | "node": ">=10" 1309 | } 1310 | }, 1311 | "node_modules/shebang-command": { 1312 | "version": "2.0.0", 1313 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1314 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1315 | "dev": true, 1316 | "dependencies": { 1317 | "shebang-regex": "^3.0.0" 1318 | }, 1319 | "engines": { 1320 | "node": ">=8" 1321 | } 1322 | }, 1323 | "node_modules/shebang-regex": { 1324 | "version": "3.0.0", 1325 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1326 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1327 | "dev": true, 1328 | "engines": { 1329 | "node": ">=8" 1330 | } 1331 | }, 1332 | "node_modules/signal-exit": { 1333 | "version": "4.1.0", 1334 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 1335 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 1336 | "dev": true, 1337 | "engines": { 1338 | "node": ">=14" 1339 | }, 1340 | "funding": { 1341 | "url": "https://github.com/sponsors/isaacs" 1342 | } 1343 | }, 1344 | "node_modules/source-map": { 1345 | "version": "0.6.1", 1346 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1347 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1348 | "dev": true, 1349 | "engines": { 1350 | "node": ">=0.10.0" 1351 | } 1352 | }, 1353 | "node_modules/source-map-support": { 1354 | "version": "0.5.21", 1355 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 1356 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 1357 | "dev": true, 1358 | "dependencies": { 1359 | "buffer-from": "^1.0.0", 1360 | "source-map": "^0.6.0" 1361 | } 1362 | }, 1363 | "node_modules/spdx-correct": { 1364 | "version": "3.2.0", 1365 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", 1366 | "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", 1367 | "dev": true, 1368 | "dependencies": { 1369 | "spdx-expression-parse": "^3.0.0", 1370 | "spdx-license-ids": "^3.0.0" 1371 | } 1372 | }, 1373 | "node_modules/spdx-exceptions": { 1374 | "version": "2.5.0", 1375 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", 1376 | "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", 1377 | "dev": true 1378 | }, 1379 | "node_modules/spdx-expression-parse": { 1380 | "version": "3.0.1", 1381 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 1382 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 1383 | "dev": true, 1384 | "dependencies": { 1385 | "spdx-exceptions": "^2.1.0", 1386 | "spdx-license-ids": "^3.0.0" 1387 | } 1388 | }, 1389 | "node_modules/spdx-license-ids": { 1390 | "version": "3.0.17", 1391 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", 1392 | "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", 1393 | "dev": true 1394 | }, 1395 | "node_modules/stackframe": { 1396 | "version": "1.3.4", 1397 | "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", 1398 | "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", 1399 | "dev": true 1400 | }, 1401 | "node_modules/string-argv": { 1402 | "version": "0.3.1", 1403 | "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", 1404 | "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", 1405 | "dev": true, 1406 | "engines": { 1407 | "node": ">=0.6.19" 1408 | } 1409 | }, 1410 | "node_modules/string-width": { 1411 | "version": "4.2.3", 1412 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1413 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1414 | "dev": true, 1415 | "dependencies": { 1416 | "emoji-regex": "^8.0.0", 1417 | "is-fullwidth-code-point": "^3.0.0", 1418 | "strip-ansi": "^6.0.1" 1419 | }, 1420 | "engines": { 1421 | "node": ">=8" 1422 | } 1423 | }, 1424 | "node_modules/string-width-cjs": { 1425 | "name": "string-width", 1426 | "version": "4.2.3", 1427 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1428 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1429 | "dev": true, 1430 | "dependencies": { 1431 | "emoji-regex": "^8.0.0", 1432 | "is-fullwidth-code-point": "^3.0.0", 1433 | "strip-ansi": "^6.0.1" 1434 | }, 1435 | "engines": { 1436 | "node": ">=8" 1437 | } 1438 | }, 1439 | "node_modules/strip-ansi": { 1440 | "version": "6.0.1", 1441 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1442 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1443 | "dev": true, 1444 | "dependencies": { 1445 | "ansi-regex": "^5.0.1" 1446 | }, 1447 | "engines": { 1448 | "node": ">=8" 1449 | } 1450 | }, 1451 | "node_modules/strip-ansi-cjs": { 1452 | "name": "strip-ansi", 1453 | "version": "6.0.1", 1454 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1455 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1456 | "dev": true, 1457 | "dependencies": { 1458 | "ansi-regex": "^5.0.1" 1459 | }, 1460 | "engines": { 1461 | "node": ">=8" 1462 | } 1463 | }, 1464 | "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { 1465 | "version": "5.0.1", 1466 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1467 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1468 | "dev": true, 1469 | "engines": { 1470 | "node": ">=8" 1471 | } 1472 | }, 1473 | "node_modules/strip-ansi/node_modules/ansi-regex": { 1474 | "version": "5.0.1", 1475 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1476 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1477 | "dev": true, 1478 | "engines": { 1479 | "node": ">=8" 1480 | } 1481 | }, 1482 | "node_modules/supports-color": { 1483 | "version": "8.1.1", 1484 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", 1485 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", 1486 | "dev": true, 1487 | "dependencies": { 1488 | "has-flag": "^4.0.0" 1489 | }, 1490 | "engines": { 1491 | "node": ">=10" 1492 | }, 1493 | "funding": { 1494 | "url": "https://github.com/chalk/supports-color?sponsor=1" 1495 | } 1496 | }, 1497 | "node_modules/supports-preserve-symlinks-flag": { 1498 | "version": "1.0.0", 1499 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1500 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1501 | "dev": true, 1502 | "engines": { 1503 | "node": ">= 0.4" 1504 | }, 1505 | "funding": { 1506 | "url": "https://github.com/sponsors/ljharb" 1507 | } 1508 | }, 1509 | "node_modules/thenify": { 1510 | "version": "3.3.1", 1511 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 1512 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 1513 | "dev": true, 1514 | "dependencies": { 1515 | "any-promise": "^1.0.0" 1516 | } 1517 | }, 1518 | "node_modules/thenify-all": { 1519 | "version": "1.6.0", 1520 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 1521 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", 1522 | "dev": true, 1523 | "dependencies": { 1524 | "thenify": ">= 3.1.0 < 4" 1525 | }, 1526 | "engines": { 1527 | "node": ">=0.8" 1528 | } 1529 | }, 1530 | "node_modules/tiny-case": { 1531 | "version": "1.0.3", 1532 | "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", 1533 | "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", 1534 | "dev": true 1535 | }, 1536 | "node_modules/tmp": { 1537 | "version": "0.2.3", 1538 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", 1539 | "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", 1540 | "dev": true, 1541 | "engines": { 1542 | "node": ">=14.14" 1543 | } 1544 | }, 1545 | "node_modules/toposort": { 1546 | "version": "2.0.2", 1547 | "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", 1548 | "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", 1549 | "dev": true 1550 | }, 1551 | "node_modules/tslib": { 1552 | "version": "2.6.2", 1553 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", 1554 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", 1555 | "dev": true 1556 | }, 1557 | "node_modules/type-fest": { 1558 | "version": "4.17.0", 1559 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.17.0.tgz", 1560 | "integrity": "sha512-9flrz1zkfLRH3jO3bLflmTxryzKMxVa7841VeMgBaNQGY6vH4RCcpN/sQLB7mQQYh1GZ5utT2deypMuCy4yicw==", 1561 | "dev": true, 1562 | "engines": { 1563 | "node": ">=16" 1564 | }, 1565 | "funding": { 1566 | "url": "https://github.com/sponsors/sindresorhus" 1567 | } 1568 | }, 1569 | "node_modules/upper-case-first": { 1570 | "version": "2.0.2", 1571 | "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", 1572 | "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", 1573 | "dev": true, 1574 | "dependencies": { 1575 | "tslib": "^2.0.3" 1576 | } 1577 | }, 1578 | "node_modules/util-arity": { 1579 | "version": "1.1.0", 1580 | "resolved": "https://registry.npmjs.org/util-arity/-/util-arity-1.1.0.tgz", 1581 | "integrity": "sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==", 1582 | "dev": true 1583 | }, 1584 | "node_modules/uuid": { 1585 | "version": "9.0.1", 1586 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", 1587 | "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", 1588 | "dev": true, 1589 | "funding": [ 1590 | "https://github.com/sponsors/broofa", 1591 | "https://github.com/sponsors/ctavan" 1592 | ], 1593 | "bin": { 1594 | "uuid": "dist/bin/uuid" 1595 | } 1596 | }, 1597 | "node_modules/validate-npm-package-license": { 1598 | "version": "3.0.4", 1599 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 1600 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 1601 | "dev": true, 1602 | "dependencies": { 1603 | "spdx-correct": "^3.0.0", 1604 | "spdx-expression-parse": "^3.0.0" 1605 | } 1606 | }, 1607 | "node_modules/which": { 1608 | "version": "2.0.2", 1609 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1610 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1611 | "dev": true, 1612 | "dependencies": { 1613 | "isexe": "^2.0.0" 1614 | }, 1615 | "bin": { 1616 | "node-which": "bin/node-which" 1617 | }, 1618 | "engines": { 1619 | "node": ">= 8" 1620 | } 1621 | }, 1622 | "node_modules/wrap-ansi": { 1623 | "version": "8.1.0", 1624 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 1625 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 1626 | "dev": true, 1627 | "dependencies": { 1628 | "ansi-styles": "^6.1.0", 1629 | "string-width": "^5.0.1", 1630 | "strip-ansi": "^7.0.1" 1631 | }, 1632 | "engines": { 1633 | "node": ">=12" 1634 | }, 1635 | "funding": { 1636 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1637 | } 1638 | }, 1639 | "node_modules/wrap-ansi-cjs": { 1640 | "name": "wrap-ansi", 1641 | "version": "7.0.0", 1642 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 1643 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1644 | "dev": true, 1645 | "dependencies": { 1646 | "ansi-styles": "^4.0.0", 1647 | "string-width": "^4.1.0", 1648 | "strip-ansi": "^6.0.0" 1649 | }, 1650 | "engines": { 1651 | "node": ">=10" 1652 | }, 1653 | "funding": { 1654 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1655 | } 1656 | }, 1657 | "node_modules/wrap-ansi/node_modules/ansi-regex": { 1658 | "version": "6.0.1", 1659 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 1660 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 1661 | "dev": true, 1662 | "engines": { 1663 | "node": ">=12" 1664 | }, 1665 | "funding": { 1666 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 1667 | } 1668 | }, 1669 | "node_modules/wrap-ansi/node_modules/ansi-styles": { 1670 | "version": "6.2.1", 1671 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 1672 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 1673 | "dev": true, 1674 | "engines": { 1675 | "node": ">=12" 1676 | }, 1677 | "funding": { 1678 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1679 | } 1680 | }, 1681 | "node_modules/wrap-ansi/node_modules/emoji-regex": { 1682 | "version": "9.2.2", 1683 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 1684 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 1685 | "dev": true 1686 | }, 1687 | "node_modules/wrap-ansi/node_modules/string-width": { 1688 | "version": "5.1.2", 1689 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 1690 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 1691 | "dev": true, 1692 | "dependencies": { 1693 | "eastasianwidth": "^0.2.0", 1694 | "emoji-regex": "^9.2.2", 1695 | "strip-ansi": "^7.0.1" 1696 | }, 1697 | "engines": { 1698 | "node": ">=12" 1699 | }, 1700 | "funding": { 1701 | "url": "https://github.com/sponsors/sindresorhus" 1702 | } 1703 | }, 1704 | "node_modules/wrap-ansi/node_modules/strip-ansi": { 1705 | "version": "7.1.0", 1706 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 1707 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 1708 | "dev": true, 1709 | "dependencies": { 1710 | "ansi-regex": "^6.0.1" 1711 | }, 1712 | "engines": { 1713 | "node": ">=12" 1714 | }, 1715 | "funding": { 1716 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 1717 | } 1718 | }, 1719 | "node_modules/xmlbuilder": { 1720 | "version": "15.1.1", 1721 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", 1722 | "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", 1723 | "dev": true, 1724 | "engines": { 1725 | "node": ">=8.0" 1726 | } 1727 | }, 1728 | "node_modules/yallist": { 1729 | "version": "4.0.0", 1730 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1731 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 1732 | "dev": true 1733 | }, 1734 | "node_modules/yaml": { 1735 | "version": "2.4.1", 1736 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", 1737 | "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", 1738 | "dev": true, 1739 | "bin": { 1740 | "yaml": "bin.mjs" 1741 | }, 1742 | "engines": { 1743 | "node": ">= 14" 1744 | } 1745 | }, 1746 | "node_modules/yup": { 1747 | "version": "1.2.0", 1748 | "resolved": "https://registry.npmjs.org/yup/-/yup-1.2.0.tgz", 1749 | "integrity": "sha512-PPqYKSAXjpRCgLgLKVGPA33v5c/WgEx3wi6NFjIiegz90zSwyMpvTFp/uGcVnnbx6to28pgnzp/q8ih3QRjLMQ==", 1750 | "dev": true, 1751 | "dependencies": { 1752 | "property-expr": "^2.0.5", 1753 | "tiny-case": "^1.0.3", 1754 | "toposort": "^2.0.2", 1755 | "type-fest": "^2.19.0" 1756 | } 1757 | }, 1758 | "node_modules/yup/node_modules/type-fest": { 1759 | "version": "2.19.0", 1760 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", 1761 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", 1762 | "dev": true, 1763 | "engines": { 1764 | "node": ">=12.20" 1765 | }, 1766 | "funding": { 1767 | "url": "https://github.com/sponsors/sindresorhus" 1768 | } 1769 | } 1770 | } 1771 | } 1772 | -------------------------------------------------------------------------------- /examples/esm-node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@cucumber/esm-example", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "A simple example of a Cucumber-JS project using ESM", 6 | "type": "module", 7 | "scripts": { 8 | "test": "cucumber-js" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/cucumber-examples/cucumber-js-examples.git" 13 | }, 14 | "keywords": [ 15 | "cucumber", 16 | "bdd", 17 | "example" 18 | ], 19 | "author": "David Goss", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/cucumber/cucumber-js-examples/issues" 23 | }, 24 | "homepage": "https://github.com/cucumber/cucumber-js-examples#readme", 25 | "devDependencies": { 26 | "@cucumber/cucumber": "*" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /examples/esm-node/src/index.js: -------------------------------------------------------------------------------- 1 | export class Greeter { 2 | sayHello() { 3 | return "hello"; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /examples/probot/.dockerignore: -------------------------------------------------------------------------------- 1 | **/node_modules/ 2 | **/.git 3 | **/README.md 4 | **/LICENSE 5 | **/.vscode 6 | **/npm-debug.log 7 | **/coverage 8 | **/.env 9 | **/.editorconfig 10 | **/dist 11 | **/*.pem 12 | Dockerfile 13 | -------------------------------------------------------------------------------- /examples/probot/.env.example: -------------------------------------------------------------------------------- 1 | # The ID of your GitHub App 2 | APP_ID= 3 | WEBHOOK_SECRET=development 4 | 5 | # Use `trace` to get verbose logging or `info` to show less 6 | LOG_LEVEL=debug 7 | 8 | # Go to https://smee.io/new set this to the URL that you are redirected to. 9 | WEBHOOK_PROXY_URL= 10 | -------------------------------------------------------------------------------- /examples/probot/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | *.pem 4 | !mock-cert.pem 5 | .env 6 | coverage 7 | lib 8 | -------------------------------------------------------------------------------- /examples/probot/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:12-slim 2 | WORKDIR /usr/src/app 3 | COPY package.json package-lock.json ./ 4 | RUN npm ci --production 5 | RUN npm cache clean --force 6 | ENV NODE_ENV="production" 7 | COPY . . 8 | CMD [ "npm", "start" ] 9 | -------------------------------------------------------------------------------- /examples/probot/LICENSE: -------------------------------------------------------------------------------- 1 | ISC License 2 | 3 | Copyright (c) 2022, Matt Wynne 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /examples/probot/README.md: -------------------------------------------------------------------------------- 1 | # cucumber-probot-example 2 | 3 | > An example of using Cucumber to test-drive a GitHub App built with [Probot](https://github.com/probot/probot). 4 | 5 | ## Setup 6 | 7 | ```sh 8 | # Install dependencies 9 | npm install 10 | 11 | # Run the tests 12 | npm test 13 | 14 | # Start the bot 15 | npm start 16 | ``` 17 | 18 | ## Docker 19 | 20 | ```sh 21 | # 1. Build container 22 | docker build -t cucumber-probot-example . 23 | 24 | # 2. Start container 25 | docker run -e APP_ID= -e PRIVATE_KEY= cucumber-probot-example 26 | ``` 27 | 28 | ## License 29 | 30 | [ISC](LICENSE) © 2022 Matt Wynne 31 | -------------------------------------------------------------------------------- /examples/probot/app.yml: -------------------------------------------------------------------------------- 1 | # This is a GitHub App Manifest. These settings will be used by default when 2 | # initially configuring your GitHub App. 3 | # 4 | # NOTE: changing this file will not update your GitHub App settings. 5 | # You must visit github.com/settings/apps/your-app-name to edit them. 6 | # 7 | # Read more about configuring your GitHub App: 8 | # https://probot.github.io/docs/development/#configuring-a-github-app 9 | # 10 | # Read more about GitHub App Manifests: 11 | # https://developer.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/ 12 | 13 | # The list of events the GitHub App subscribes to. 14 | # Uncomment the event names below to enable them. 15 | default_events: 16 | # - check_run 17 | # - check_suite 18 | # - commit_comment 19 | # - create 20 | # - delete 21 | # - deployment 22 | # - deployment_status 23 | # - fork 24 | # - gollum 25 | # - issue_comment 26 | - issues 27 | # - label 28 | # - milestone 29 | # - member 30 | # - membership 31 | # - org_block 32 | # - organization 33 | # - page_build 34 | # - project 35 | # - project_card 36 | # - project_column 37 | # - public 38 | # - pull_request 39 | # - pull_request_review 40 | # - pull_request_review_comment 41 | # - push 42 | # - release 43 | # - repository 44 | # - repository_import 45 | # - status 46 | # - team 47 | # - team_add 48 | # - watch 49 | 50 | # The set of permissions needed by the GitHub App. The format of the object uses 51 | # the permission name for the key (for example, issues) and the access type for 52 | # the value (for example, write). 53 | # Valid values are `read`, `write`, and `none` 54 | default_permissions: 55 | # Repository creation, deletion, settings, teams, and collaborators. 56 | # https://developer.github.com/v3/apps/permissions/#permission-on-administration 57 | # administration: read 58 | 59 | # Checks on code. 60 | # https://developer.github.com/v3/apps/permissions/#permission-on-checks 61 | # checks: read 62 | 63 | # Repository contents, commits, branches, downloads, releases, and merges. 64 | # https://developer.github.com/v3/apps/permissions/#permission-on-contents 65 | # contents: read 66 | 67 | # Deployments and deployment statuses. 68 | # https://developer.github.com/v3/apps/permissions/#permission-on-deployments 69 | # deployments: read 70 | 71 | # Issues and related comments, assignees, labels, and milestones. 72 | # https://developer.github.com/v3/apps/permissions/#permission-on-issues 73 | issues: write 74 | 75 | # Search repositories, list collaborators, and access repository metadata. 76 | # https://developer.github.com/v3/apps/permissions/#metadata-permissions 77 | metadata: read 78 | 79 | # Retrieve Pages statuses, configuration, and builds, as well as create new builds. 80 | # https://developer.github.com/v3/apps/permissions/#permission-on-pages 81 | # pages: read 82 | 83 | # Pull requests and related comments, assignees, labels, milestones, and merges. 84 | # https://developer.github.com/v3/apps/permissions/#permission-on-pull-requests 85 | # pull_requests: read 86 | 87 | # Manage the post-receive hooks for a repository. 88 | # https://developer.github.com/v3/apps/permissions/#permission-on-repository-hooks 89 | # repository_hooks: read 90 | 91 | # Manage repository projects, columns, and cards. 92 | # https://developer.github.com/v3/apps/permissions/#permission-on-repository-projects 93 | # repository_projects: read 94 | 95 | # Retrieve security vulnerability alerts. 96 | # https://developer.github.com/v4/object/repositoryvulnerabilityalert/ 97 | # vulnerability_alerts: read 98 | 99 | # Commit statuses. 100 | # https://developer.github.com/v3/apps/permissions/#permission-on-statuses 101 | # statuses: read 102 | 103 | # Organization members and teams. 104 | # https://developer.github.com/v3/apps/permissions/#permission-on-members 105 | # members: read 106 | 107 | # View and manage users blocked by the organization. 108 | # https://developer.github.com/v3/apps/permissions/#permission-on-organization-user-blocking 109 | # organization_user_blocking: read 110 | 111 | # Manage organization projects, columns, and cards. 112 | # https://developer.github.com/v3/apps/permissions/#permission-on-organization-projects 113 | # organization_projects: read 114 | 115 | # Manage team discussions and related comments. 116 | # https://developer.github.com/v3/apps/permissions/#permission-on-team-discussions 117 | # team_discussions: read 118 | 119 | # Manage the post-receive hooks for an organization. 120 | # https://developer.github.com/v3/apps/permissions/#permission-on-organization-hooks 121 | # organization_hooks: read 122 | 123 | # Get notified of, and update, content references. 124 | # https://developer.github.com/v3/apps/permissions/ 125 | # organization_administration: read 126 | # The name of the GitHub App. Defaults to the name specified in package.json 127 | # name: My Probot App 128 | 129 | # The homepage of your GitHub App. 130 | # url: https://example.com/ 131 | 132 | # A description of the GitHub App. 133 | # description: A description of my awesome app 134 | 135 | # Set to true when your GitHub App is available to the public or false when it is only accessible to the owner of the app. 136 | # Default: true 137 | # public: false 138 | -------------------------------------------------------------------------------- /examples/probot/cucumber.json: -------------------------------------------------------------------------------- 1 | { 2 | "default": { 3 | "requireModule": [ 4 | "ts-node/register" 5 | ], 6 | "require": [ 7 | "features/**/*.ts" 8 | ] 9 | } 10 | } -------------------------------------------------------------------------------- /examples/probot/features/comment_on_issues.feature: -------------------------------------------------------------------------------- 1 | Feature: Comment on issues 2 | 3 | Scenario: An issue is opened 4 | Given the app has been installed on a GitHub repo 5 | When an issue is opened on the Repo 6 | Then a comment should be added to the Repo saying: 7 | """ 8 | Thanks for opening this issue! 9 | """ -------------------------------------------------------------------------------- /examples/probot/features/step_definitions/steps.ts: -------------------------------------------------------------------------------- 1 | import { Before, Given, When, Then } from "@cucumber/cucumber" 2 | import path from "path" 3 | import fs from "fs" 4 | import { Probot, ProbotOctokit } from "probot" 5 | import payload from "../../test/fixtures/issues.opened.json" 6 | import myProbotApp from "../../src" 7 | import nock from "nock" 8 | import { assertThat, equalTo } from "hamjest" 9 | 10 | const privateKey = fs.readFileSync( 11 | path.join(__dirname, "../../test/fixtures/mock-cert.pem"), 12 | "utf-8" 13 | ) 14 | 15 | Before(function () { 16 | this.probot = new Probot({ 17 | appId: 123, 18 | privateKey, 19 | // disable request throttling and retries for testing 20 | Octokit: ProbotOctokit.defaults({ 21 | retry: { enabled: false }, 22 | throttle: { enabled: false }, 23 | }), 24 | }) 25 | // Load our app into probot 26 | this.probot.load(myProbotApp) 27 | }) 28 | 29 | Given("the app has been installed on a GitHub repo", function () { 30 | nock("https://api.github.com") 31 | // return a test token 32 | .post("/app/installations/2/access_tokens") 33 | .reply(200, { 34 | token: "test", 35 | permissions: { 36 | issues: "write", 37 | }, 38 | }) 39 | .post( 40 | "/repos/hiimbex/testing-things/issues/1/comments", 41 | (responseBody: any) => (this.issueComment = responseBody.body) 42 | ) 43 | .reply(200) 44 | }) 45 | 46 | When("an issue is opened on the Repo", async function () { 47 | await this.probot.receive({ name: "issues", payload }) 48 | }) 49 | 50 | Then( 51 | "a comment should be added to the Repo saying:", 52 | function (expectedComment) { 53 | assertThat(this.issueComment, equalTo(expectedComment)) 54 | } 55 | ) 56 | -------------------------------------------------------------------------------- /examples/probot/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cucumber-probot-example", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "An example of using Cucumber to test-drive a probot app", 6 | "author": "Matt Wynne ", 7 | "license": "ISC", 8 | "homepage": "https://github.com/mattwynne/https://github.com/cucumber-examples/cucumber-js-examples", 9 | "keywords": [ 10 | "probot", 11 | "github", 12 | "probot-app" 13 | ], 14 | "scripts": { 15 | "build": "tsc", 16 | "start": "probot run ./lib/index.js", 17 | "test": "cucumber-js" 18 | }, 19 | "dependencies": { 20 | "probot": "^11.0.1" 21 | }, 22 | "devDependencies": { 23 | "@cucumber/cucumber": "*", 24 | "@types/node": "^14.14.19", 25 | "hamjest": "^3.7.3", 26 | "nock": "^13.0.5", 27 | "smee-client": "^1.2.2", 28 | "ts-node": "^10.4.0", 29 | "typescript": "^4.1.3" 30 | }, 31 | "engines": { 32 | "node": ">= 10.13.0" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/probot/src/index.ts: -------------------------------------------------------------------------------- 1 | import { Probot } from "probot"; 2 | 3 | export = (app: Probot) => { 4 | app.on("issues.opened", async (context) => { 5 | const issueComment = context.issue({ 6 | body: "Thanks for opening this issue!", 7 | }); 8 | await context.octokit.issues.createComment(issueComment); 9 | }); 10 | // For more information on building apps: 11 | // https://probot.github.io/docs/ 12 | 13 | // To get your app running against GitHub, see: 14 | // https://probot.github.io/docs/development/ 15 | }; 16 | -------------------------------------------------------------------------------- /examples/probot/test/fixtures/issues.opened.json: -------------------------------------------------------------------------------- 1 | { 2 | "action": "opened", 3 | "issue": { 4 | "number": 1, 5 | "user": { 6 | "login": "hiimbex" 7 | } 8 | }, 9 | "repository": { 10 | "name": "testing-things", 11 | "owner": { 12 | "login": "hiimbex" 13 | } 14 | }, 15 | "installation": { 16 | "id": 2 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/probot/test/fixtures/mock-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEowIBAAKCAQEAli7V49NdZe+XYC1pLaHM0te8kiDmZBJ1u2HJHN8GdbROB6NO 3 | VpC3xK7NxQn6xpvZ9ux20NvcDvGle+DOptZztBH+np6h2jZQ1/kD1yG1eQvVH4th 4 | /9oqHuIjmIfO8lIe4Hyd5Fw5xHkGqVETTGR+0c7kdZIlHmkOregUGtMYZRUi4YG+ 5 | q0w+uFemiHpGKXbeCIAvkq7aIkisEzvPWfSyYdA6WJHpxFk7tD7D8VkzABLVRHCq 6 | AuyqPG39BhGZcGLXx5rGK56kDBJkyTR1t3DkHpwX+JKNG5UYNwOG4LcQj1fteeta 7 | TdkYUMjIyWbanlMYyC+dq7B5fe7el99jXQ1gXwIDAQABAoIBADKfiPOpzKLOtzzx 8 | MbHzB0LO+75aHq7+1faayJrVxqyoYWELuB1P3NIMhknzyjdmU3t7S7WtVqkm5Twz 9 | lBUC1q+NHUHEgRQ4GNokExpSP4SU63sdlaQTmv0cBxmkNarS6ZuMBgDy4XoLvaYX 10 | MSUf/uukDLhg0ehFS3BteVFtdJyllhDdTenF1Nb1rAeN4egt8XLsE5NQDr1szFEG 11 | xH5lb+8EDtzgsGpeIddWR64xP0lDIKSZWst/toYKWiwjaY9uZCfAhvYQ1RsO7L/t 12 | sERmpYgh+rAZUh/Lr98EI8BPSPhzFcSHmtqzzejvC5zrZPHcUimz0CGA3YBiLoJX 13 | V1OrxmECgYEAxkd8gpmVP+LEWB3lqpSvJaXcGkbzcDb9m0OPzHUAJDZtiIIf0UmO 14 | nvL68/mzbCHSj+yFjZeG1rsrAVrOzrfDCuXjAv+JkEtEx0DIevU1u60lGnevOeky 15 | r8Be7pmymFB9/gzQAd5ezIlTv/COgoO986a3h1yfhzrrzbqSiivw308CgYEAwecI 16 | aZZwqH3GifR+0+Z1B48cezA5tC8LZt5yObGzUfxKTWy30d7lxe9N59t0KUVt/QL5 17 | qVkd7mqGzsUMyxUN2U2HVnFTWfUFMhkn/OnCnayhILs8UlCTD2Xxoy1KbQH/9FIr 18 | xf0pbMNJLXeGfyRt/8H+BzSZKBw9opJBWE4gqfECgYBp9FdvvryHuBkt8UQCRJPX 19 | rWsRy6pY47nf11mnazpZH5Cmqspv3zvMapF6AIxFk0leyYiQolFWvAv+HFV5F6+t 20 | Si1mM8GCDwbA5zh6pEBDewHhw+UqMBh63HSeUhmi1RiOwrAA36CO8i+D2Pt+eQHv 21 | ir52IiPJcs4BUNrv5Q1BdwKBgBHgVNw3LGe8QMOTMOYkRwHNZdjNl2RPOgPf2jQL 22 | d/bFBayhq0jD/fcDmvEXQFxVtFAxKAc+2g2S8J67d/R5Gm/AQAvuIrsWZcY6n38n 23 | pfOXaLt1x5fnKcevpFlg4Y2vM4O416RHNLx8PJDehh3Oo/2CSwMrDDuwbtZAGZok 24 | icphAoGBAI74Tisfn+aeCZMrO8KxaWS5r2CD1KVzddEMRKlJvSKTY+dOCtJ+XKj1 25 | OsZdcDvDC5GtgcywHsYeOWHldgDWY1S8Z/PUo4eK9qBXYBXp3JEZQ1dqzFdz+Txi 26 | rBn2WsFLsxV9j2/ugm0PqWVBcU2bPUCwvaRu3SOms2teaLwGCkhr 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /examples/probot/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Basic Options */ 4 | "incremental": true /* Enable incremental compilation */, 5 | "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, 6 | "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, 7 | "lib": [ 8 | "es2015", 9 | "es2017" 10 | ] /* Specify library files to be included in the compilation. */, 11 | "allowJs": true /* Allow javascript files to be compiled. */, 12 | "checkJs": true /* Report errors in .js files. */, 13 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ 14 | "declaration": true /* Generates corresponding '.d.ts' file. */, 15 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 16 | "sourceMap": true /* Generates corresponding '.map' file. */, 17 | // "outFile": "./", /* Concatenate and emit output to single file. */ 18 | "outDir": "./lib" /* Redirect output structure to the directory. */, 19 | // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 20 | // "composite": true, /* Enable project compilation */ 21 | // "tsBuildInfoFile": "./" /* Specify file to store incremental compilation information */, 22 | // "removeComments": true, /* Do not emit comments to output. */ 23 | // "noEmit": true, /* Do not emit outputs. */ 24 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 25 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 26 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 27 | 28 | /* Strict Type-Checking Options */ 29 | "strict": true /* Enable all strict type-checking options. */, 30 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 31 | // "strictNullChecks": true, /* Enable strict null checks. */ 32 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 33 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 34 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 35 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 36 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 37 | 38 | /* Additional Checks */ 39 | "noUnusedLocals": true /* Report errors on unused locals. */, 40 | "noUnusedParameters": true /* Report errors on unused parameters. */, 41 | "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, 42 | "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, 43 | 44 | /* Module Resolution Options */ 45 | "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, 46 | // "baseUrl": "./src" /* Base directory to resolve non-absolute module names. */, 47 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 48 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 49 | // "typeRoots": [], /* List of folders to include type definitions from. */ 50 | // "types": [], /* Type declaration files to be included in compilation. */ 51 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 52 | "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, 53 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 54 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 55 | 56 | /* Source Map Options */ 57 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 58 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 59 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 60 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 61 | 62 | /* Experimental Options */ 63 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 64 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ 65 | 66 | /* Advanced Options */ 67 | "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, 68 | "resolveJsonModule": true, 69 | "pretty": false, 70 | "skipLibCheck": true 71 | }, 72 | "include": ["src/"], 73 | "compileOnSave": false 74 | } 75 | -------------------------------------------------------------------------------- /examples/typescript-node-commonjs/cucumber.json: -------------------------------------------------------------------------------- 1 | { 2 | "default": { 3 | "requireModule": [ 4 | "ts-node/register" 5 | ], 6 | "require": [ 7 | "features/**/*.ts" 8 | ] 9 | } 10 | } -------------------------------------------------------------------------------- /examples/typescript-node-commonjs/features/greeting.feature: -------------------------------------------------------------------------------- 1 | Feature: Greeting 2 | 3 | Scenario: Say hello 4 | When the greeter says hello 5 | Then I should have heard "hello" 6 | -------------------------------------------------------------------------------- /examples/typescript-node-commonjs/features/step_definitions/steps.ts: -------------------------------------------------------------------------------- 1 | import * as assert from "assert"; 2 | 3 | import { When, Then } from "@cucumber/cucumber"; 4 | import { Greeter } from "../../src"; 5 | 6 | interface MyWorld { 7 | whatIHeard: string; 8 | } 9 | 10 | When("the greeter says hello", function (this: MyWorld) { 11 | this.whatIHeard = new Greeter().sayHello(); 12 | }); 13 | 14 | Then( 15 | "I should have heard {string}", 16 | function (this: MyWorld, expectedResponse: string) { 17 | assert.equal(this.whatIHeard, expectedResponse); 18 | } 19 | ); 20 | -------------------------------------------------------------------------------- /examples/typescript-node-commonjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@cucumber/typescript-example", 3 | "version": "1.0.0", 4 | "description": "A simple example of a TypeScript Cucumber-JS project", 5 | "main": "src/index.ts", 6 | "scripts": { 7 | "test": "cucumber-js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/cucumber/cucumber-js-examples.git" 12 | }, 13 | "keywords": [ 14 | "cucumber", 15 | "bdd", 16 | "typescript", 17 | "example" 18 | ], 19 | "author": "Matt Wynne", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/cucumber/cucumber-js-examples/issues" 23 | }, 24 | "homepage": "https://github.com/cucumber/cucumber-js-examples#readme", 25 | "devDependencies": { 26 | "@cucumber/cucumber": "*", 27 | "ts-node": "^10.4.0" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/typescript-node-commonjs/src/index.ts: -------------------------------------------------------------------------------- 1 | export class Greeter { 2 | sayHello() { 3 | return "hello"; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /examples/typescript-node-esm/cucumber.json: -------------------------------------------------------------------------------- 1 | { 2 | "default": { 3 | "loader": [ 4 | "ts-node/esm" 5 | ], 6 | "import": [ 7 | "features/**/*.ts" 8 | ] 9 | } 10 | } -------------------------------------------------------------------------------- /examples/typescript-node-esm/features/greeting.feature: -------------------------------------------------------------------------------- 1 | Feature: Greeting 2 | 3 | Scenario: Say hello 4 | When the greeter says hello 5 | Then I should have heard "hello" 6 | -------------------------------------------------------------------------------- /examples/typescript-node-esm/features/step_definitions/steps.ts: -------------------------------------------------------------------------------- 1 | import * as assert from "assert"; 2 | 3 | import { When, Then } from "@cucumber/cucumber"; 4 | import { Greeter } from "../../src/index.js"; 5 | 6 | interface MyWorld { 7 | whatIHeard: string; 8 | } 9 | 10 | When("the greeter says hello", function (this: MyWorld) { 11 | this.whatIHeard = new Greeter().sayHello(); 12 | }); 13 | 14 | Then( 15 | "I should have heard {string}", 16 | function (this: MyWorld, expectedResponse: string) { 17 | assert.equal(this.whatIHeard, expectedResponse); 18 | } 19 | ); 20 | -------------------------------------------------------------------------------- /examples/typescript-node-esm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@cucumber/typescript-example", 3 | "version": "1.0.0", 4 | "description": "A simple example of a TypeScript Cucumber-JS project", 5 | "main": "src/index.ts", 6 | "type": "module", 7 | "scripts": { 8 | "test": "cucumber-js" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/cucumber/cucumber-js-examples.git" 13 | }, 14 | "keywords": [ 15 | "cucumber", 16 | "bdd", 17 | "typescript", 18 | "example" 19 | ], 20 | "author": "Matt Wynne", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/cucumber/cucumber-js-examples/issues" 24 | }, 25 | "homepage": "https://github.com/cucumber/cucumber-js-examples#readme", 26 | "devDependencies": { 27 | "@cucumber/cucumber": "*", 28 | "ts-node": "^10.4.0" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /examples/typescript-node-esm/src/index.ts: -------------------------------------------------------------------------------- 1 | export class Greeter { 2 | sayHello() { 3 | return "hello"; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /examples/typescript-node-esm/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "esnext", 4 | "moduleResolution": "node" 5 | } 6 | } -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "local>cucumber/renovate-config" 5 | ] 6 | } 7 | --------------------------------------------------------------------------------