From 668d5f315d168e39e5a03cbf0b55c2ebbc87da1e Mon Sep 17 00:00:00 2001 From: Blaine Bublitz Date: Sun, 27 Sep 2026 19:04:27 +0000 Subject: [PATCH 1/3] chore!: Normalize repository, dropping Node <22.15.0 --- .devcontainer/devcontainer.json | 22 + .eslintignore | 2 - .eslintrc | 8 - .github/workflows/dev.yml | 66 +- .github/workflows/release.yml | 8 +- .gitignore | 53 +- .npmrc | 1 - LICENSE | 2 +- README.md | 16 +- eslint.config.js | 3 + package-lock.json | 9824 +++++++++++++++++++++++++++++++ package.json | 22 +- test/.gitkeep | 0 13 files changed, 9954 insertions(+), 73 deletions(-) create mode 100644 .devcontainer/devcontainer.json delete mode 100644 .eslintignore delete mode 100644 .eslintrc delete mode 100644 .npmrc create mode 100644 eslint.config.js create mode 100644 package-lock.json create mode 100644 test/.gitkeep diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..64bdd943 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,22 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/javascript-node +{ + "name": "Node.js", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/javascript-node:1-22-bookworm" + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "yarn install", + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index c8fc7f56..00000000 --- a/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -**/*.babel.js -coverage diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index c35bface..00000000 --- a/.eslintrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "gulp", - "rules": { - "max-len": [1, 130], - "max-statements": [1, 65], - "no-console": "off" - } -} diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 9e3fe6a8..a531256b 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -3,27 +3,11 @@ on: pull_request: push: branches: - - master - main env: CI: true jobs: - prettier: - name: Format code - runs-on: ubuntu-latest - if: ${{ github.event_name == 'push' }} - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Prettier - uses: gulpjs/prettier_action@v3.0 - with: - commit_message: 'chore: Run prettier' - prettier_options: '--write .' - test: name: Tests for Node ${{ matrix.node }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} @@ -31,23 +15,26 @@ jobs: strategy: fail-fast: false matrix: - node: [10, 12, 14, 16, 18, 20, 22, 24] - os: [ubuntu-latest, windows-latest, macos-13] + node: [22, 24, 26] + os: [ubuntu-latest, windows-latest, macos-latest] steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set Node.js version - uses: actions/setup-node@v2 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ matrix.node }} - - run: node --version - - run: npm --version + - name: Check node version + run: node --version + + - name: Check npm version + run: npm --version - name: Install npm dependencies - run: npm install + run: npm ci - name: Run lint run: npm run lint @@ -56,31 +43,24 @@ jobs: # Run test without coverage because a behavior about esm is different with nyc or not run: npm test + - name: Check format + run: npm run format-check + + - name: Coveralls + uses: coverallsapp/github-action@8d6379e14d29928660c4ba802d8e85393440b329 # v2.3.8 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + flag-name: ${{matrix.os}}-node-${{ matrix.node }} + parallel: true + coveralls: needs: test name: Finish up runs-on: ubuntu-latest steps: - - name: Clone repository - uses: actions/checkout@v2 - - - name: Set Node.js version - uses: actions/setup-node@v2 - with: - # Coverage with LTS version - node-version: 18 - - - run: node --version - - run: npm --version - - - name: Install npm dependencies - run: npm install - - - name: Run coverage - run: npm run cover - - - name: Coveralls - uses: coverallsapp/github-action@v1.1.2 + - name: Coveralls Finished + uses: coverallsapp/github-action@8d6379e14d29928660c4ba802d8e85393440b329 # v2.3.8 with: github-token: ${{ secrets.GITHUB_TOKEN }} + parallel-finished: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 87cd13c0..19809fdc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,15 +2,17 @@ name: release on: push: branches: - - master - main jobs: release-please: runs-on: ubuntu-latest + permissions: + contents: write + issues: write + pull-requests: write steps: - - uses: GoogleCloudPlatform/release-please-action@v2 + - uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0 with: token: ${{ secrets.GITHUB_TOKEN }} release-type: node - package-name: release-please-action diff --git a/.gitignore b/.gitignore index c626059e..3593dbae 100644 --- a/.gitignore +++ b/.gitignore @@ -9,10 +9,57 @@ components coverage .coveralls.yml .nyc_output -*.orig -.idea -sandbox + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next + +# Garbage files +.DS_Store + +# Test results +test.xunit test/out-fixtures/* +!test/fixtures/errors/bad-gulp-version/node_modules/ +!test/fixtures/config/theming/UNSUPPORTED_GULP_VERSION/node_modules/ test/output/ test/watch-*.txt + +# Manpage gulp.1 diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 43c97e71..00000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -package-lock=false diff --git a/LICENSE b/LICENSE index 6443cad0..84b9822a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015, 2017-2020, 2022-2023 Blaine Bublitz and Eric Schoffstall +Copyright (c) 2015, 2017-2020, 2022-2023, 2026 Blaine Bublitz and Eric Schoffstall Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index bfb6c6d1..5195bd16 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,16 @@ __Some flags only work with gulp 4 and will be ignored when invoked against gulp +## Strict No LLM / No AI Policy + +No LLMs for issues. + +No LLMs for patches / pull requests. + +No LLMs for comments on the bug tracker, including translation. + +English is encouraged, but not required. You are welcome to post in your native language and rely on others to have their own translation tools of choice to interpret your words. + ## License MIT @@ -235,9 +245,9 @@ MIT [npm-url]: https://www.npmjs.com/package/gulp-cli [npm-image]: https://img.shields.io/npm/v/gulp-cli.svg?style=flat-square -[ci-url]: https://github.com/gulpjs/gulp-cli/actions?query=workflow:dev -[ci-image]: https://img.shields.io/github/actions/workflow/status/gulpjs/gulp-cli/dev.yml?branch=master&style=flat-square +[ci-url]: https://github.com/gulpjs/gulp-cli/actions/workflows/dev.yml +[ci-image]: https://img.shields.io/github/actions/workflow/status/gulpjs/gulp-cli/dev.yml?style=flat-square [coveralls-url]: https://coveralls.io/r/gulpjs/gulp-cli -[coveralls-image]: https://img.shields.io/coveralls/gulpjs/gulp-cli.svg?style=flat-square +[coveralls-image]: https://img.shields.io/coveralls/gulpjs/gulp-cli/main.svg?style=flat-square diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..cc4fd765 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,3 @@ +var gulpConfig = require("eslint-config-gulp"); + +module.exports = [...gulpConfig.default]; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..e7712c01 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9824 @@ +{ + "name": "gulp-cli", + "version": "3.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "gulp-cli", + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "@gulpjs/messages": "^1.1.0", + "chalk": "^4.1.2", + "copy-props": "^4.0.0", + "gulplog": "^2.2.0", + "interpret": "^3.1.1", + "liftoff": "^5.0.1", + "mute-stdout": "^2.0.0", + "replace-homedir": "^2.0.0", + "semver-greatest-satisfied-range": "^2.0.0", + "string-width": "^4.2.3", + "v8flags": "^4.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "devDependencies": { + "@babel/core": "^7.20.2", + "@babel/preset-env": "^7.20.2", + "@babel/register": "^7.18.9", + "@gulpjs/gulplog-v1": "npm:gulplog@1.0.0", + "eslint": "10.11.0", + "eslint-config-gulp": "7.0.0", + "expect": "^27.5.1", + "gulp": "^4.0.2", + "marked": "^0.7.0", + "marked-man": "^0.7.0", + "mocha": "^8.4.0", + "nyc": "^15.1.0", + "prettier": "3.9.6", + "rimraf": "^3.0.2", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 22.15.0" + }, + "funding": { + "url": "https://github.com/sponsors/gulpjs" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", + "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", + "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", + "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", + "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz", + "integrity": "sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", + "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", + "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", + "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz", + "integrity": "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", + "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", + "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", + "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", + "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", + "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", + "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", + "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", + "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.8.tgz", + "integrity": "sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", + "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", + "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", + "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", + "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", + "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", + "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", + "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", + "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.8.tgz", + "integrity": "sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", + "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", + "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.8.tgz", + "integrity": "sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", + "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", + "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", + "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz", + "integrity": "sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.29.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.29.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.29.7", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.29.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.29.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.29.7", + "@babel/plugin-syntax-import-attributes": "^7.29.7", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.29.7", + "@babel/plugin-transform-async-generator-functions": "^7.29.7", + "@babel/plugin-transform-async-to-generator": "^7.29.7", + "@babel/plugin-transform-block-scoped-functions": "^7.29.7", + "@babel/plugin-transform-block-scoping": "^7.29.7", + "@babel/plugin-transform-class-properties": "^7.29.7", + "@babel/plugin-transform-class-static-block": "^7.29.7", + "@babel/plugin-transform-classes": "^7.29.7", + "@babel/plugin-transform-computed-properties": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-dotall-regex": "^7.29.7", + "@babel/plugin-transform-duplicate-keys": "^7.29.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-dynamic-import": "^7.29.7", + "@babel/plugin-transform-explicit-resource-management": "^7.29.7", + "@babel/plugin-transform-exponentiation-operator": "^7.29.7", + "@babel/plugin-transform-export-namespace-from": "^7.29.7", + "@babel/plugin-transform-for-of": "^7.29.7", + "@babel/plugin-transform-function-name": "^7.29.7", + "@babel/plugin-transform-json-strings": "^7.29.7", + "@babel/plugin-transform-literals": "^7.29.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.29.7", + "@babel/plugin-transform-member-expression-literals": "^7.29.7", + "@babel/plugin-transform-modules-amd": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-modules-systemjs": "^7.29.7", + "@babel/plugin-transform-modules-umd": "^7.29.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-new-target": "^7.29.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.29.7", + "@babel/plugin-transform-numeric-separator": "^7.29.7", + "@babel/plugin-transform-object-rest-spread": "^7.29.7", + "@babel/plugin-transform-object-super": "^7.29.7", + "@babel/plugin-transform-optional-catch-binding": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/plugin-transform-private-methods": "^7.29.7", + "@babel/plugin-transform-private-property-in-object": "^7.29.7", + "@babel/plugin-transform-property-literals": "^7.29.7", + "@babel/plugin-transform-regenerator": "^7.29.7", + "@babel/plugin-transform-regexp-modifiers": "^7.29.7", + "@babel/plugin-transform-reserved-words": "^7.29.7", + "@babel/plugin-transform-shorthand-properties": "^7.29.7", + "@babel/plugin-transform-spread": "^7.29.7", + "@babel/plugin-transform-sticky-regex": "^7.29.7", + "@babel/plugin-transform-template-literals": "^7.29.7", + "@babel/plugin-transform-typeof-symbol": "^7.29.7", + "@babel/plugin-transform-unicode-escapes": "^7.29.7", + "@babel/plugin-transform-unicode-property-regex": "^7.29.7", + "@babel/plugin-transform-unicode-regex": "^7.29.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.29.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/register": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.29.7.tgz", + "integrity": "sha512-AMGJoWuES861riy6pcB0fphE1YXybtQnBYQMuIyPv6mKLiosfa79BKTnAOyx215c/3RJPJpdQwoHZ3earVH7AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.6", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cacheable/memory": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.2.0.tgz", + "integrity": "sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "^2.5.0", + "@keyv/bigmap": "^1.3.1", + "hookified": "^1.15.1", + "keyv": "^5.6.0" + } + }, + "node_modules/@cacheable/utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.5.0.tgz", + "integrity": "sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.5.1", + "keyv": "^5.6.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^3.0.5", + "debug": "^4.3.1", + "minimatch": "^10.2.4" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.7.0.tgz", + "integrity": "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/js": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz", + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "eslint": "^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/object-schema": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.3.tgz", + "integrity": "sha512-IkO+/KEUvwbVpiURZg+P7zF74z5Jxe0UgJxVni+RtoHQ6IZieXaO02kmadomap/q+l6bc/jdPGGqTjhuZnuz1Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@gulpjs/gulplog-v1": { + "name": "gulplog", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulpjs/messages": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz", + "integrity": "sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.2.tgz", + "integrity": "sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@keyv/bigmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.4.0", + "hookified": "^1.15.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "^5.6.0" + } + }, + "node_modules/@keyv/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.3.tgz", + "integrity": "sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.9.0" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "16.0.11", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.11.tgz", + "integrity": "sha512-sbtvk8wDN+JvEdabmZExoW/HNr1cB7D/j4LT08rMiuikfA7m/JNJg7ATQcgzs34zHnoScDkY0ZRSl29Fkmk36g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "license": "ISC", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-done": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.26", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.26.tgz", + "integrity": "sha512-GLQdD3y6UF8iVuMJl5fHgE4jdn/ua7n+toKfLgNlg3BqQtOZjpy68T8Tup8/wGWZCDlm7KMg7tPb4MPn7oN0TQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, + "license": "ISC" + }, + "node_modules/browserslist": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.1.tgz", + "integrity": "sha512-AUdjuRyCNGUYtqpqfTmWyM4fXay8yIQhmLnvYe/THMGfT9B/34X7xQd3ifKxwyNPPpowVBjLb+64BN9Rn1mizw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.11.25", + "caniuse-lite": "^1.0.30001810", + "electron-to-chromium": "^1.5.438", + "node-releases": "^2.0.57", + "update-browserslist-db": "^1.3.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz", + "integrity": "sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "^2.2.0", + "@cacheable/utils": "^2.5.0", + "hookified": "^1.15.0", + "keyv": "^5.6.0", + "qified": "^0.10.1" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/caching-transform/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caching-transform/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001812", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001812.tgz", + "integrity": "sha512-qN+QNNBr93TCmFrmte0bBCjSDMuRvt78VlHT99qIGPszm4QsqCX8lnyWUFkHi8B7ZBAPq8SH+UqyXNy/odMdng==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/chokidar/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.8.tgz", + "integrity": "sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-props": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz", + "integrity": "sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==", + "license": "MIT", + "dependencies": { + "each-props": "^3.0.0", + "is-plain-object": "^5.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/copy-props/node_modules/is-plain-object": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", + "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.50.0.tgz", + "integrity": "sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.7" + }, + "engines": { + "node": ">=6.4.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-compare/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/each-props": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz", + "integrity": "sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^5.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/each-props/node_modules/is-plain-object": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", + "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.439", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.439.tgz", + "integrity": "sha512-qu6QIPXhsb+CRcAiTMNjR4A1y/7tCYKkKjr5CZXRVih6qkDf79peZ2BpEU3qoDBNCRrcy3Mra3X9nG5oruuA7Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "dev": true, + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.11.0.tgz", + "integrity": "sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "packages/*" + ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.7.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "11.1.5 || >11.1.6 <12", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "minimatch": "^10.2.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-gulp": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-gulp/-/eslint-config-gulp-7.0.0.tgz", + "integrity": "sha512-Dufej4M44+/EKFLPpuyUjKcB0ADOEwIjp59Szn3mHEynXZrmksq2EX/IZocdAE+XltFGVxYsdLgAk8zoMZAFXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint/js": "^10.0.1", + "globals": "^17.12.0" + }, + "engines": { + "node": ">= 22.15.0" + }, + "funding": { + "url": "https://github.com/sponsors/gulpjs" + } + }, + "node_modules/eslint-scope": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.8.tgz", + "integrity": "sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz", + "integrity": "sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^6.1.23" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup-sync": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/findup-sync/node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/findup-sync/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/findup-sync/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/findup-sync/node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/findup-sync/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/fined": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", + "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^5.0.0", + "object.defaults": "^1.1.0", + "object.pick": "^1.3.0", + "parse-filepath": "^1.0.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/fined/node_modules/is-plain-object": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", + "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", + "license": "MIT", + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "6.1.23", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.23.tgz", + "integrity": "sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cacheable": "^2.5.0", + "flatted": "^3.4.2", + "hookified": "^1.15.0" + } + }, + "node_modules/flatted": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-stream/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-stream/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "17.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.12.0.tgz", + "integrity": "sha512-cezEd/DTyyht9cvSSURyygXPfy04GtWO/5e6ZPvH7fCtjKz9PYOmuawphw1Ctd1f6C+5JypXfGD7ahNMXvevBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/gulp-cli/node_modules/copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "node_modules/gulp-cli/node_modules/copy-props/node_modules/is-plain-object": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", + "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/gulp-cli/node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true, + "license": "ISC" + }, + "node_modules/gulp-cli/node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/gulp-cli/node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sver-compat": "^1.5.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/gulp-cli/node_modules/yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "node_modules/gulp-cli/node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "node_modules/gulplog": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz", + "integrity": "sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==", + "license": "MIT", + "dependencies": { + "glogg": "^2.2.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulplog/node_modules/glogg": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz", + "integrity": "sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==", + "license": "MIT", + "dependencies": { + "sparkles": "^2.1.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulplog/node_modules/sparkles": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz", + "integrity": "sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==", + "license": "MIT", + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hashery": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz", + "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.15.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hookified": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", + "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.2.tgz", + "integrity": "sha512-AIbwAcazqP3R65dGvqk1V+a+vE5Fg1yu/ZKMOiBWSUIXXiwQkYmXQcVa2O0nh0tSDKDFKxG2mY7dB1Sr4hEP1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.17.0.tgz", + "integrity": "sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.4.tgz", + "integrity": "sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.2", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", + "dev": true, + "license": "ISC", + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jest-message-util/node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/jest-message-util/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "dev": true, + "license": "MIT", + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/liftoff": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.1.tgz", + "integrity": "sha512-wwLXMbuxSF8gMvubFcFRp56lkFV69twvbU5vDPbaw+Q+/rF8j0HKjGbIdlSi+LuJm9jf7k9PB+nTxnsLMPcv2Q==", + "license": "MIT", + "dependencies": { + "extend": "^3.0.2", + "findup-sync": "^5.0.0", + "fined": "^2.0.0", + "flagged-respawn": "^2.0.0", + "is-plain-object": "^5.0.0", + "rechoir": "^0.8.0", + "resolve": "^1.20.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/liftoff/node_modules/is-plain-object": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", + "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked-man": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked-man/-/marked-man-0.7.0.tgz", + "integrity": "sha512-zxK5E4jbuARALc+fIUAanM2njVGnrd9YvKrqoDHUg2XwNLJijo39EzMIg59LecHBHsIHNtPqepqnJp4SmL/EVg==", + "dev": true, + "license": "MIT", + "bin": { + "marked-man": "bin/marked-man" + }, + "peerDependencies": { + "marked": "^0.7.0" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/matchdep/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/matchdep/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", + "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.1", + "debug": "4.3.1", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.6", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.0.0", + "log-symbols": "4.0.0", + "minimatch": "3.0.4", + "ms": "2.1.3", + "nanoid": "3.1.20", + "serialize-javascript": "5.0.1", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.1.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 10.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mocha/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/mocha/node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/mocha/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mocha/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mute-stdout": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz", + "integrity": "sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==", + "license": "MIT", + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/nan": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.29.0.tgz", + "integrity": "sha512-GlGk3HIvitbvs+LT3g6XUP1kpirKNvmDFwF/bmo6XNWSb/eYEs/O4bfgIEIXCZ+lIOTS5xNwDvSGMw6FJdAhtA==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/nanoid": { + "version": "3.1.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", + "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", + "dev": true, + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.57", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.57.tgz", + "integrity": "sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/nyc/node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.8.tgz", + "integrity": "sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "license": "MIT", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/process-on-spawn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz", + "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qified": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz", + "integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^2.1.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/qified/node_modules/hookified": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz", + "integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==", + "dev": true, + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.3.tgz", + "integrity": "sha512-ycwFAS14Jw4mppvmK4GR/J6u3WpWpjkEApehuHtLc/8VpPNpDMbQ4WjqwplXifGeyKOzHSFLmSPqzksDQE2Sfg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "license": "ISC", + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true, + "license": "ISC" + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/replace-homedir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz", + "integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==", + "license": "MIT", + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true, + "license": "ISC" + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-greatest-satisfied-range": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", + "integrity": "sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==", + "license": "MIT", + "dependencies": { + "sver": "^1.8.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.8.tgz", + "integrity": "sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spawn-wrap/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/spawn-wrap/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.24.tgz", + "integrity": "sha512-cLS9TtWkIQFyLkJ3/5aFQAOHOSKTlOs/7WDut/XPSdjom1fJhUdkepeJAKXa9Y05+FabHd0sti+Et559vDtkpQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.8.tgz", + "integrity": "sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sver": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz", + "integrity": "sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==", + "license": "MIT", + "optionalDependencies": { + "semver": "^6.3.0" + } + }, + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/sver/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker/node_modules/fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.4.0.tgz", + "integrity": "sha512-V6QarSfeSgDipGA9EZdoIzu03ZDlOFkk+FbEP5cwgrZXN3iIkYR91IjU2EnM6rB835kGQsqHX8qncObTXV+6KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "3.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", + "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8flags": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", + "license": "MIT", + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wide-align/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", + "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.2.tgz", + "integrity": "sha512-Nt9ZJjXTv5R8MHbqby/wXQ6Gi0Bb3TcYZkR1bzuL4yB2OxWPkXknz513gEF0GoA6tn00UpbPvERW8rzCuWCA6w==", + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index 372e4bd3..7bfe9868 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,17 @@ "author": "Gulp Team (https://gulpjs.com/)", "contributors": [], "homepage": "https://gulpjs.com", - "repository": "gulpjs/gulp-cli", + "funding": "https://github.com/sponsors/gulpjs", + "repository": { + "type": "git", + "url": "git+https://github.com/gulpjs/gulp-cli.git" + }, "license": "MIT", "man": "gulp.1", "engines": { - "node": ">=10.13.0" + "node": ">= 22.15.0" }, - "main": "index.js", + "main": "./index.js", "bin": { "gulp": "bin/gulp.js" }, @@ -23,6 +27,8 @@ "gulp.1" ], "scripts": { + "format-check": "prettier . --check", + "format-write": "prettier . --write", "lint": "eslint .", "manpage": "marked-man --name gulp docs/CLI.md > gulp.1", "pretest": "npm run lint", @@ -48,14 +54,15 @@ "@babel/preset-env": "^7.20.2", "@babel/register": "^7.18.9", "@gulpjs/gulplog-v1": "npm:gulplog@1.0.0", - "eslint": "^7.32.0", - "eslint-config-gulp": "^5.0.1", + "eslint": "10.11.0", + "eslint-config-gulp": "7.0.0", "expect": "^27.5.1", "gulp": "^4.0.2", - "marked-man": "^0.7.0", "marked": "^0.7.0", + "marked-man": "^0.7.0", "mocha": "^8.4.0", "nyc": "^15.1.0", + "prettier": "3.9.6", "rimraf": "^3.0.2", "semver": "^7.3.8" }, @@ -65,9 +72,6 @@ "text-summary" ] }, - "prettier": { - "singleQuote": true - }, "keywords": [ "build", "stream", diff --git a/test/.gitkeep b/test/.gitkeep new file mode 100644 index 00000000..e69de29b From dac227b0781e2fcb109a51f65b4e65722aceade8 Mon Sep 17 00:00:00 2001 From: Blaine Bublitz Date: Sun, 27 Sep 2026 19:08:53 +0000 Subject: [PATCH 2/3] chore: Format files with prettier --- README.md | 31 +- bin/gulp.js | 4 +- completion/README.md | 1 + docs/CLI.md | 34 +- index.js | 118 +++--- lib/shared/array-find.js | 2 +- lib/shared/completion.js | 24 +- lib/shared/config/cli-flags.js | 18 +- lib/shared/exit.js | 6 +- lib/shared/is-object.js | 4 +- lib/shared/log/copy-tree.js | 8 +- lib/shared/log/format-hrtime.js | 36 +- lib/shared/log/tasks.js | 94 +++-- lib/shared/log/to-console.js | 46 ++- lib/shared/make-title.js | 4 +- lib/shared/options/cli-options.js | 78 ++-- lib/shared/options/make-help.js | 6 +- lib/shared/register-exports.js | 4 +- lib/shared/require-or-import.js | 20 +- lib/shared/tildify.js | 6 +- lib/shared/translate.js | 230 +++++++----- lib/versioned/^3.7.0/format-error.js | 4 +- lib/versioned/^3.7.0/index.js | 55 +-- lib/versioned/^3.7.0/log/events.js | 29 +- lib/versioned/^3.7.0/log/tasks-simple.js | 6 +- lib/versioned/^3.7.0/task-tree.js | 16 +- lib/versioned/^4.0.0/format-error.js | 4 +- lib/versioned/^4.0.0/index.js | 64 ++-- lib/versioned/^4.0.0/log/events.js | 33 +- lib/versioned/^4.0.0/log/get-task.js | 14 +- lib/versioned/^4.0.0/log/sync-task.js | 23 +- lib/versioned/^4.0.0/log/tasks-simple.js | 4 +- lib/versioned/^4.0.0/normalize-error.js | 10 +- lib/versioned/^5.0.0/format-error.js | 4 +- lib/versioned/^5.0.0/index.js | 62 ++-- lib/versioned/^5.0.0/log/events.js | 33 +- lib/versioned/^5.0.0/log/get-task.js | 14 +- lib/versioned/^5.0.0/log/sync-task.js | 23 +- lib/versioned/^5.0.0/log/tasks-simple.js | 4 +- test/completion.js | 45 ++- test/config-flags-compact-tasks.js | 69 ++-- test/config-flags-continue.js | 86 ++--- test/config-flags-gulpfile.js | 147 +++++--- test/config-flags-log-level.js | 178 ++++----- test/config-flags-node-flags.js | 87 ++--- test/config-flags-preload.js | 128 ++++--- test/config-flags-series.js | 89 +++-- test/config-flags-silent.js | 58 ++- test/config-flags-sort-tasks.js | 70 ++-- test/config-flags-tasks-depth.js | 41 +-- test/config-message-function.js | 346 +++++++++--------- test/esm.js | 81 ++-- test/execution-errors.js | 134 +++---- test/expected/flags-tasks-json.json | 119 +++++- test/exports-as-tasks.js | 44 ++- test/fixtures/.gulp.js | 4 +- .../config/flags/compactTasks/f/.gulp.js | 4 +- .../config/flags/compactTasks/t/.gulp.js | 4 +- .../fixtures/config/flags/continue/f/.gulp.js | 4 +- .../config/flags/continue/f/gulpfile.js | 8 +- .../fixtures/config/flags/continue/t/.gulp.js | 4 +- .../config/flags/continue/t/gulpfile.js | 8 +- .../flags/gulpfile/autoload-fail/.gulp.js | 2 +- .../config/flags/gulpfile/autoload/.gulp.js | 2 +- .../other_folder/gulpfile-exports.babel.js | 16 +- .../config/flags/gulpfile/cwd/.gulp.js | 2 +- .../gulpfile/is/here/gulpfile-by-cwd-cfg.js | 10 +- .../gulpfile/is/here/gulpfile-by-prj-cfg.js | 10 +- .../config/flags/gulpfile/is/here/gulpfile.js | 10 +- .../gulpfile/override-by-cliflag/.gulp.js | 2 +- .../override-by-cliflag/mygulpfile.js | 8 +- .../config/flags/gulpfile/prj/.gulp.js | 2 +- .../use-current-cfg/current-dir/.gulp.js | 2 +- .../use-current-cfg/current-dir/gulpfile-2.js | 6 +- .../gulpfile/use-current-cfg/gulpfile.js | 6 +- .../fixtures/config/flags/logLevel/L/.gulp.js | 6 +- .../config/flags/logLevel/L/gulpfile.js | 6 +- .../config/flags/logLevel/LL/.gulp.js | 4 +- .../config/flags/logLevel/LL/gulpfile.js | 6 +- .../config/flags/logLevel/LLL/.gulp.js | 4 +- .../config/flags/logLevel/LLL/gulpfile.js | 6 +- .../config/flags/logLevel/gulpfile.js | 6 +- .../config/flags/nodeFlags/array/.gulp.js | 4 +- .../config/flags/nodeFlags/array/gulpfile.js | 6 +- .../config/flags/nodeFlags/null/.gulp.js | 2 +- .../config/flags/nodeFlags/null/gulpfile.js | 6 +- .../config/flags/nodeFlags/string/.gulp.js | 4 +- .../config/flags/nodeFlags/string/gulpfile.js | 6 +- .../config/flags/nodeFlags/undefined/.gulp.js | 2 +- .../flags/nodeFlags/undefined/gulpfile.js | 6 +- .../config/flags/preload/array/.gulp.js | 5 +- .../config/flags/preload/array/gulpfile.js | 6 +- .../config/flags/preload/array/preload_one.js | 2 +- .../config/flags/preload/array/preload_two.js | 2 +- .../config/flags/preload/join-flags/.gulp.js | 4 +- .../flags/preload/join-flags/gulpfile.js | 6 +- .../flags/preload/join-flags/preload_one.js | 2 +- .../flags/preload/join-flags/preload_two.js | 2 +- test/fixtures/config/flags/preload/preload.js | 2 +- .../config/flags/preload/string/.gulp.js | 2 +- .../config/flags/preload/string/gulpfile.js | 6 +- .../config/flags/preload/string/preload.js | 2 +- .../flags/preload/with-absolute/.gulp.js | 4 +- .../flags/preload/with-absolute/gulpfile.js | 6 +- .../config/flags/preload/with-cwd/.gulp.js | 2 +- .../config/flags/preload/with-cwd/gulpfile.js | 6 +- test/fixtures/config/flags/series/f/.gulp.js | 4 +- .../config/flags/series/f/gulpfile.js | 8 +- test/fixtures/config/flags/series/t/.gulp.js | 4 +- .../config/flags/series/t/gulpfile.js | 8 +- test/fixtures/config/flags/silent/f/.gulp.js | 4 +- .../config/flags/silent/f/gulpfile.js | 6 +- test/fixtures/config/flags/silent/t/.gulp.js | 4 +- .../config/flags/silent/t/gulpfile.js | 6 +- .../config/flags/sortTasks/f/.gulp.js | 4 +- .../config/flags/sortTasks/t/.gulp.js | 4 +- .../fixtures/config/flags/tasksDepth/.gulp.js | 4 +- test/fixtures/config/foo/bar/.gulp.js | 2 +- test/fixtures/config/foo/bar/gulpfile.js | 6 +- .../config/foo/bar/quux/.gulp.babel.js | 2 +- test/fixtures/config/qux/.gulp.js | 4 +- .../config/theming/ARGV_ERROR/.gulp.js | 6 +- .../config/theming/ARGV_ERROR/gulpfile.js | 4 +- .../theming/COMPLETION_TYPE_MISSING/.gulp.js | 6 +- .../COMPLETION_TYPE_MISSING/gulpfile.js | 4 +- .../theming/COMPLETION_TYPE_UNKNOWN/.gulp.js | 6 +- .../COMPLETION_TYPE_UNKNOWN/gulpfile.js | 4 +- .../config/theming/CWD_CHANGED/.gulp.js | 6 +- .../config/theming/CWD_CHANGED/gulpfile.js | 4 +- .../config/theming/DESCRIPTION/.gulp.js | 6 +- .../config/theming/DESCRIPTION/gulpfile.js | 4 +- .../theming/DESCRIPTION/remove/.gulp.js | 4 +- .../theming/DESCRIPTION/remove/gulpfile.js | 4 +- .../config/theming/EXEC_ERROR/.gulp.js | 8 +- .../config/theming/EXEC_ERROR/gulpfile.js | 4 +- .../fixtures/config/theming/GULPFILE/.gulp.js | 7 +- .../config/theming/GULPFILE/gulpfile.js | 4 +- .../theming/GULPLOG_DEPRECATED/.gulp.js | 6 +- .../theming/GULPLOG_DEPRECATED/gulpfile.js | 8 +- .../config/theming/LOADER_FAILURE/.gulp.js | 6 +- .../config/theming/LOADER_SUCCESS/.gulp.js | 6 +- .../theming/LOADER_SUCCESS/gulpfile.babel.js | 4 +- .../config/theming/MISSING_GULP/.gulp.js | 8 +- .../config/theming/MISSING_GULPFILE/.gulp.js | 6 +- .../theming/MISSING_NODE_MODULES/.gulp.js | 9 +- .../config/theming/NODE_FLAGS/.gulp.js | 6 +- .../config/theming/NODE_FLAGS/gulpfile.js | 4 +- .../config/theming/PRELOAD_BEFORE/.gulp.js | 6 +- .../config/theming/PRELOAD_BEFORE/gulpfile.js | 4 +- .../config/theming/PRELOAD_BEFORE/preload.js | 2 +- .../config/theming/PRELOAD_FAILURE/.gulp.js | 6 +- .../theming/PRELOAD_FAILURE/gulpfile.js | 4 +- .../config/theming/PRELOAD_SUCCESS/.gulp.js | 6 +- .../theming/PRELOAD_SUCCESS/gulpfile.js | 4 +- .../config/theming/PRELOAD_SUCCESS/preload.js | 2 +- .../config/theming/RESPAWNED/.gulp.js | 6 +- .../config/theming/RESPAWNED/gulpfile.js | 4 +- .../config/theming/TASK_ERROR/.gulp.js | 6 +- .../config/theming/TASK_ERROR/gulpfile.js | 6 +- .../config/theming/TASK_FAILURE/.gulp.js | 6 +- .../config/theming/TASK_FAILURE/gulpfile.js | 6 +- .../config/theming/TASK_MISSING/.gulp.js | 14 +- .../config/theming/TASK_MISSING/gulpfile.js | 4 +- .../config/theming/TASK_START/.gulp.js | 6 +- .../config/theming/TASK_START/gulpfile.js | 4 +- .../config/theming/TASK_STOP/.gulp.js | 6 +- .../config/theming/TASK_STOP/gulpfile.js | 4 +- .../config/theming/TASK_SYNC/.gulp.js | 6 +- .../config/theming/TASK_SYNC/gulpfile.js | 4 +- .../theming/UNSUPPORTED_GULP_VERSION/.gulp.js | 6 +- .../UNSUPPORTED_GULP_VERSION/gulpfile.js | 4 +- test/fixtures/config/theming/USAGE/.gulp.js | 6 +- test/fixtures/config/theming/flags/.gulp.js | 38 +- test/fixtures/errors/package.json | 6 +- test/fixtures/gulpfiles/.gulp.js | 4 +- .../gulpfiles/by-unwrap-and-not-by-unwrap.js | 62 ++-- test/fixtures/gulpfiles/gulpfile-2.js | 6 +- test/fixtures/gulpfiles/gulpfile-3.8.10.js | 14 +- test/fixtures/gulpfiles/gulpfile-4.js | 11 +- .../gulpfiles/gulpfile-babel.babel.js | 26 +- .../gulpfiles/gulpfile-dedup-errorlog.js | 12 +- .../gulpfiles/gulpfile-exports.babel.js | 22 +- .../gulpfiles/gulpfile-parallel-failure.js | 10 +- test/fixtures/gulpfiles/gulpfile-tla.mjs | 4 +- test/fixtures/gulpfiles/gulpfile.js | 26 +- test/fixtures/gulpfiles/gulpfile.mjs | 8 +- .../fixtures/gulpfiles/with-desc-and-flags.js | 42 +-- test/fixtures/logging.js | 18 +- test/fixtures/test-error-module.js | 4 +- test/fixtures/test-module-2.js | 6 +- test/fixtures/test-module.js | 6 +- test/fixtures/verify/invalid-package.json | 6 +- test/fixtures/verify/package.json | 6 +- test/fixtures/verify/valid-package.json | 6 +- test/flags-continue.js | 56 ++- test/flags-gulpfile.js | 64 ++-- test/flags-help.js | 65 ++-- test/flags-preload.js | 218 ++++++----- test/flags-series.js | 63 ++-- test/flags-silent.js | 27 +- test/flags-tasks-json.js | 92 ++--- test/flags-tasks-simple.js | 47 ++- test/flags-tasks.js | 215 ++++++----- test/flags-v8flags.js | 39 +- test/flags-version.js | 76 ++-- test/lib/config-cli-flags.js | 31 +- test/lib/format-hrtime.js | 218 +++++------ test/lib/log-copy-tree.js | 128 +++---- test/lib/make-title.js | 33 +- test/lib/normalize-error.js | 39 +- test/lib/task-tree.js | 73 ++-- test/logging.js | 65 ++-- test/sync-task.js | 80 ++-- test/tool/erase-lapse.js | 8 +- test/tool/erase-time.js | 6 +- test/tool/gulp-cmd.js | 12 +- test/tool/slice-lines.js | 8 +- test/window-extended-length-paths.js | 76 ++-- 218 files changed, 2977 insertions(+), 2596 deletions(-) diff --git a/README.md b/README.md index 5195bd16..7dbd625e 100644 --- a/README.md +++ b/README.md @@ -26,14 +26,14 @@ npm install --global gulp-cli When listing tasks with the `gulp -T` command, gulp-cli displays some custom metadata as defined upon task functions. Currently supported properties: -* `task.description` - String of the description to display. +- `task.description` - String of the description to display. ```js function clean() { ... } clean.description = 'Cleans up generated files.'; ``` -* `task.flags` - Object with key/value pairs being flag/description to display. +- `task.flags` - Object with key/value pairs being flag/description to display. ```js function build() { ... } @@ -69,6 +69,7 @@ Just running `gulp` will execute the task `default`. If there is no `default` task, gulp will error. ## Completion + > Thanks to the grunt team, specifically Tyler Kellen To enable tasks auto-completion in shell you should add `eval "$(gulp --completion=shell)"` in your `.shellrc` file. @@ -105,25 +106,25 @@ A configuration file from the current working directory (`cwd`) or above are sel Supported configurations properties: -| Property | Description | -|--------------------|-------------| -| description | Top-level description of the project/gulpfile (Replaces "Tasks for ~/path/of/gulpfile.js") | -| gulpfile | Set a default gulpfile | -| preload | An array of modules to preload before running the gulpfile. Any relative paths will be resolved against the `--cwd` directory (if you don't want that behavior, use absolute paths) | -| nodeFlags | An array of flags used to forcibly respawn the process upon startup. For example, if you always want your gulpfiles to run in node's harmony mode, you can set `--harmony` here | -| flags.continue | Continue execution of tasks upon failure by default. | -| flags.compactTasks | Reduce the output of task dependency tree by default. | -| flags.tasksDepth | Set default depth of task dependency tree. | -| flags.silent | Silence logging by default | -| flags.series | Run tasks given on the CLI in series (the default is parallel) | -| message(data) | A function used to translate messages that pass through gulp-cli. Can receive an object like `{ tag: Symbol(), ...props }` where the `tag` is a symbol from `@gulpjs/messages`. The string returned from this function will be logged. If `false` is explicitly returned, no message will be logged. | +| Property | Description | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| description | Top-level description of the project/gulpfile (Replaces "Tasks for ~/path/of/gulpfile.js") | +| gulpfile | Set a default gulpfile | +| preload | An array of modules to preload before running the gulpfile. Any relative paths will be resolved against the `--cwd` directory (if you don't want that behavior, use absolute paths) | +| nodeFlags | An array of flags used to forcibly respawn the process upon startup. For example, if you always want your gulpfiles to run in node's harmony mode, you can set `--harmony` here | +| flags.continue | Continue execution of tasks upon failure by default. | +| flags.compactTasks | Reduce the output of task dependency tree by default. | +| flags.tasksDepth | Set default depth of task dependency tree. | +| flags.silent | Silence logging by default | +| flags.series | Run tasks given on the CLI in series (the default is parallel) | +| message(data) | A function used to translate messages that pass through gulp-cli. Can receive an object like `{ tag: Symbol(), ...props }` where the `tag` is a symbol from `@gulpjs/messages`. The string returned from this function will be logged. If `false` is explicitly returned, no message will be logged. | | timestamp(data) | A function used to provide timestamps for gulp-cli. Can receive an object like `{ tag: Symbol(), ...props }` where the `tag` is a symbol from `@gulpjs/messages`. The string returned from this function will be output before any messages. If `false` is explicitly returned, no timestamp will be output. | ## Flags gulp has very few flags to know about. All other flags are for tasks to use if needed. -__Some flags only work with gulp 4 and will be ignored when invoked against gulp 3.__ +**Some flags only work with gulp 4 and will be ignored when invoked against gulp 3.** diff --git a/bin/gulp.js b/bin/gulp.js index b6423d10..cc169a0e 100755 --- a/bin/gulp.js +++ b/bin/gulp.js @@ -1,5 +1,5 @@ #!/usr/bin/env node -'use strict'; +"use strict"; -require('../')(); +require("../")(); diff --git a/completion/README.md b/completion/README.md index 3fa466f6..069f7c69 100644 --- a/completion/README.md +++ b/completion/README.md @@ -1,4 +1,5 @@ # Completion for gulp + > Thanks to the grunt team, specifically Tyler Kellen To enable tasks auto-completion in shell you should add `eval "$(gulp --completion=shell)"` in your `.shellrc` file. diff --git a/docs/CLI.md b/docs/CLI.md index 0b2bd592..53256f59 100644 --- a/docs/CLI.md +++ b/docs/CLI.md @@ -29,52 +29,52 @@ gulp has very few flags to know about. All other flags are for tasks to use if n **Some flags only work with gulp 4 and will be ignored when invoked against gulp 3.** **--help**, **-h** - Show the help. +Show the help. **--version**, **-v** - Print the global and local gulp versions. +Print the global and local gulp versions. **--require** [path] - Will require a module before running the gulpfile. This is useful for transpilers but also has other applications. +Will require a module before running the gulpfile. This is useful for transpilers but also has other applications. **--gulpfile** [path], **-f** [path] - Manually set path of gulpfile. Useful if you have multiple gulpfiles. This will set the CWD to the gulpfile directory as well. +Manually set path of gulpfile. Useful if you have multiple gulpfiles. This will set the CWD to the gulpfile directory as well. **--cwd** [path] - Manually set the CWD. The search for the gulpfile, as well as the relativity of all requires will be from here. +Manually set the CWD. The search for the gulpfile, as well as the relativity of all requires will be from here. **--tasks**, **-T** - Print the task dependency tree for the loaded gulpfile. +Print the task dependency tree for the loaded gulpfile. **--tasks-simple** - Print a plaintext list of tasks for the loaded gulpfile. +Print a plaintext list of tasks for the loaded gulpfile. **--tasks-json** [path] - Print the task dependency tree, in JSON format, for the loaded gulpfile. The [path] argument is optional, and if given writes the JSON to the path. +Print the task dependency tree, in JSON format, for the loaded gulpfile. The [path] argument is optional, and if given writes the JSON to the path. **--tasks-depth** [number] - Specify the depth of the task dependency tree to print. This flag can be used with --tasks or --tasks-json. (This flag was named --depth before but is deprecated.) +Specify the depth of the task dependency tree to print. This flag can be used with --tasks or --tasks-json. (This flag was named --depth before but is deprecated.) **--compact-tasks** - Reduce the output of task dependency tree by printing only top tasks and their child tasks. This flag can be used with --tasks or --tasks-json. +Reduce the output of task dependency tree by printing only top tasks and their child tasks. This flag can be used with --tasks or --tasks-json. **--sort-tasks** - Will sort top tasks of task dependency tree. This flag can be used with --tasks. +Will sort top tasks of task dependency tree. This flag can be used with --tasks. **--color** - Will force gulp and gulp plugins to display colors, even when no color support is detected. +Will force gulp and gulp plugins to display colors, even when no color support is detected. **--no-color** - Will force gulp and gulp plugins to not display colors, even when color support is detected. +Will force gulp and gulp plugins to not display colors, even when color support is detected. **--silent**, **-S** - Suppress all gulp logging. +Suppress all gulp logging. **--continue** - Continue execution of tasks upon failure. +Continue execution of tasks upon failure. **--series** - Run tasks given on the CLI in series (the default is parallel). +Run tasks given on the CLI in series (the default is parallel). **--log-level**, **-L** - Set the loglevel. -L for least verbose and -LLLL for most verbose. -LLL is default. +Set the loglevel. -L for least verbose and -LLLL for most verbose. -LLL is default. diff --git a/index.js b/index.js index 3491a7a6..c658066c 100644 --- a/index.js +++ b/index.js @@ -1,50 +1,50 @@ -'use strict'; - -var fs = require('fs'); -var path = require('path'); - -var log = require('gulplog'); -var yargs = require('yargs'); -var Liftoff = require('liftoff'); -var interpret = require('interpret'); -var v8flags = require('v8flags'); -var messages = require('@gulpjs/messages'); -var findRange = require('semver-greatest-satisfied-range'); - -var exit = require('./lib/shared/exit'); - -var arrayFind = require('./lib/shared/array-find'); -var makeTitle = require('./lib/shared/make-title'); -var makeHelp = require('./lib/shared/options/make-help'); -var cliOptions = require('./lib/shared/options/cli-options'); -var completion = require('./lib/shared/completion'); -var cliVersion = require('./package.json').version; -var toConsole = require('./lib/shared/log/to-console'); -var mergeCliOpts = require('./lib/shared/config/cli-flags'); -var buildTranslations = require('./lib/shared/translate'); +"use strict"; + +var fs = require("fs"); +var path = require("path"); + +var log = require("gulplog"); +var yargs = require("yargs"); +var Liftoff = require("liftoff"); +var interpret = require("interpret"); +var v8flags = require("v8flags"); +var messages = require("@gulpjs/messages"); +var findRange = require("semver-greatest-satisfied-range"); + +var exit = require("./lib/shared/exit"); + +var arrayFind = require("./lib/shared/array-find"); +var makeTitle = require("./lib/shared/make-title"); +var makeHelp = require("./lib/shared/options/make-help"); +var cliOptions = require("./lib/shared/options/cli-options"); +var completion = require("./lib/shared/completion"); +var cliVersion = require("./package.json").version; +var toConsole = require("./lib/shared/log/to-console"); +var mergeCliOpts = require("./lib/shared/config/cli-flags"); +var buildTranslations = require("./lib/shared/translate"); // Get supported ranges -var ranges = fs.readdirSync(path.join(__dirname, '/lib/versioned/')); +var ranges = fs.readdirSync(path.join(__dirname, "/lib/versioned/")); // Set env var for ORIGINAL cwd // before anything touches it process.env.INIT_CWD = process.cwd(); var cli = new Liftoff({ - name: 'gulp', - processTitle: makeTitle('gulp', process.argv.slice(2)), + name: "gulp", + processTitle: makeTitle("gulp", process.argv.slice(2)), extensions: interpret.jsVariants, v8flags: v8flags, configFiles: [ { - name: '.gulp', - path: '.', + name: ".gulp", + path: ".", extensions: interpret.jsVariants, findUp: true, }, { - name: '.gulp', - path: '~', + name: ".gulp", + path: "~", extensions: interpret.jsVariants, }, ], @@ -66,49 +66,52 @@ var opts = parser.parse(); // Possibly by batching messages in gulplog until listeners are attached var cleanupListeners = toConsole(log, opts, buildTranslations()); -cli.on('preload:before', function(name) { +cli.on("preload:before", function (name) { log.info({ tag: messages.PRELOAD_BEFORE, name: name }); }); -cli.on('preload:success', function(name) { +cli.on("preload:success", function (name) { log.info({ tag: messages.PRELOAD_SUCCESS, name: name }); }); -cli.on('preload:failure', function(name, error) { +cli.on("preload:failure", function (name, error) { log.warn({ tag: messages.PRELOAD_FAILURE, name: name }); if (error) { log.warn({ tag: messages.PRELOAD_ERROR, error: error }); } }); -cli.on('loader:success', function(name) { +cli.on("loader:success", function (name) { // This is needed because interpret needs to stub the .mjs extension // Without the .mjs require hook, rechoir blows up // However, we don't want to show the mjs-stub loader in the logs /* istanbul ignore else */ - if (path.basename(name, '.js') !== 'mjs-stub') { + if (path.basename(name, ".js") !== "mjs-stub") { log.info({ tag: messages.LOADER_SUCCESS, name: name }); } }); -cli.on('loader:failure', function(name, error) { +cli.on("loader:failure", function (name, error) { log.warn({ tag: messages.LOADER_FAILURE, name: name }); if (error) { log.warn({ tag: messages.LOADER_ERROR, error: error }); } }); -cli.on('respawn', function(flags, child) { +cli.on("respawn", function (flags, child) { log.info({ tag: messages.NODE_FLAGS, flags: flags }); log.info({ tag: messages.RESPAWNED, pid: child.pid }); }); function run() { - cli.prepare({ - cwd: opts.cwd, - configPath: opts.gulpfile, - preload: opts.preload, - }, onPrepare); + cli.prepare( + { + cwd: opts.cwd, + configPath: opts.gulpfile, + preload: opts.preload, + }, + onPrepare, + ); } module.exports = run; @@ -125,7 +128,11 @@ function onFail(message, error) { var cfg = arrayFind(env.config, isDefined); var translate = buildTranslations(cfg); - var errorMsg = translate.message({ tag: messages.ARGV_ERROR, message: message, error: error }); + var errorMsg = translate.message({ + tag: messages.ARGV_ERROR, + message: message, + error: error, + }); if (errorMsg) { console.error(errorMsg); } @@ -166,7 +173,7 @@ function onExecute(env, flags, translate) { // We use the process.env so the user's gulpfile // Can know about the flag if (flags.continue) { - process.env.UNDERTAKER_SETTLE = 'true'; + process.env.UNDERTAKER_SETTLE = "true"; } if (flags.help) { @@ -176,23 +183,23 @@ function onExecute(env, flags, translate) { // Anything that needs to print outside of the logging mechanism should use console.log if (flags.version) { - console.log('CLI version:', cliVersion); - console.log('Local version:', env.modulePackage.version || 'Unknown'); + console.log("CLI version:", cliVersion); + console.log("Local version:", env.modulePackage.version || "Unknown"); exit(0); } if (!env.modulePath) { var missingNodeModules = - fs.existsSync(path.join(env.cwd, 'package.json')) - && !fs.existsSync(path.join(env.cwd, 'node_modules')); + fs.existsSync(path.join(env.cwd, "package.json")) && + !fs.existsSync(path.join(env.cwd, "node_modules")); - var hasYarn = fs.existsSync(path.join(env.cwd, 'yarn.lock')); + var hasYarn = fs.existsSync(path.join(env.cwd, "yarn.lock")); if (missingNodeModules) { log.error({ tag: messages.MISSING_NODE_MODULES, cwd: env.cwd }); if (hasYarn) { - log.error({ tag: messages.YARN_INSTALL }) + log.error({ tag: messages.YARN_INSTALL }); } else { - log.error({ tag: messages.NPM_INSTALL }) + log.error({ tag: messages.NPM_INSTALL }); } } else { log.error({ tag: messages.MISSING_GULP, cwd: env.cwd }); @@ -221,11 +228,14 @@ function onExecute(env, flags, translate) { var range = findRange(env.modulePackage.version, ranges); if (!range) { - log.error({ tag: messages.UNSUPPORTED_GULP_VERSION, version: env.modulePackage.version }); + log.error({ + tag: messages.UNSUPPORTED_GULP_VERSION, + version: env.modulePackage.version, + }); exit(1); } // Load and execute the CLI version - var versionedDir = path.join(__dirname, '/lib/versioned/', range, '/'); + var versionedDir = path.join(__dirname, "/lib/versioned/", range, "/"); require(versionedDir)(env, flags, translate); } diff --git a/lib/shared/array-find.js b/lib/shared/array-find.js index 0596268c..ecfc6449 100644 --- a/lib/shared/array-find.js +++ b/lib/shared/array-find.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; function arrayFind(arr, fn) { if (!Array.isArray(arr)) { diff --git a/lib/shared/completion.js b/lib/shared/completion.js index d637d140..95fbeca5 100644 --- a/lib/shared/completion.js +++ b/lib/shared/completion.js @@ -1,20 +1,24 @@ -'use strict'; +"use strict"; -var fs = require('fs'); -var path = require('path'); +var fs = require("fs"); +var path = require("path"); -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); -module.exports = function(name, translate) { - if (typeof name !== 'string') { - throw new Error(translate.message({ tag: messages.COMPLETION_TYPE_MISSING })); +module.exports = function (name, translate) { + if (typeof name !== "string") { + throw new Error( + translate.message({ tag: messages.COMPLETION_TYPE_MISSING }), + ); } - var file = path.join(__dirname, '../../completion', name); + var file = path.join(__dirname, "../../completion", name); try { - console.log(fs.readFileSync(file, 'utf8')); + console.log(fs.readFileSync(file, "utf8")); process.exit(0); } catch (err) { - console.log(translate.message({ tag: messages.COMPLETION_TYPE_UNKNOWN, name: name })); + console.log( + translate.message({ tag: messages.COMPLETION_TYPE_UNKNOWN, name: name }), + ); process.exit(5); } }; diff --git a/lib/shared/config/cli-flags.js b/lib/shared/config/cli-flags.js index 996aaa6b..ee39b33e 100644 --- a/lib/shared/config/cli-flags.js +++ b/lib/shared/config/cli-flags.js @@ -1,15 +1,15 @@ -'use strict'; +"use strict"; -var copyProps = require('copy-props'); +var copyProps = require("copy-props"); var fromConfigToCliOpts = { - 'flags.silent': 'silent', - 'flags.continue': 'continue', - 'flags.series': 'series', - 'flags.logLevel': 'logLevel', - 'flags.compactTasks': 'compactTasks', - 'flags.tasksDepth': 'tasksDepth', - 'flags.sortTasks': 'sortTasks', + "flags.silent": "silent", + "flags.continue": "continue", + "flags.series": "series", + "flags.logLevel": "logLevel", + "flags.compactTasks": "compactTasks", + "flags.tasksDepth": "tasksDepth", + "flags.sortTasks": "sortTasks", }; function mergeCliOpts(opts, config) { diff --git a/lib/shared/exit.js b/lib/shared/exit.js index 9d619c32..1a5d0b1c 100644 --- a/lib/shared/exit.js +++ b/lib/shared/exit.js @@ -1,10 +1,10 @@ -'use strict'; +"use strict"; // Fix stdout truncation on windows function exit(code) { /* istanbul ignore next */ - if (process.platform === 'win32' && process.stdout.bufferSize) { - process.stdout.once('drain', function() { + if (process.platform === "win32" && process.stdout.bufferSize) { + process.stdout.once("drain", function () { process.exit(code); }); return; diff --git a/lib/shared/is-object.js b/lib/shared/is-object.js index 6375b561..8d72f047 100644 --- a/lib/shared/is-object.js +++ b/lib/shared/is-object.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; function isObject(v) { - return (v != null && typeof v === 'object' && !Array.isArray(v)); + return v != null && typeof v === "object" && !Array.isArray(v); } module.exports = isObject; diff --git a/lib/shared/log/copy-tree.js b/lib/shared/log/copy-tree.js index 99d7b5fa..ee69c4fc 100644 --- a/lib/shared/log/copy-tree.js +++ b/lib/shared/log/copy-tree.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; function copyNode(node) { var newNode = {}; - Object.keys(node).forEach(function(key) { + Object.keys(node).forEach(function (key) { newNode[key] = node[key]; }); return newNode; @@ -18,7 +18,7 @@ function copyTree(tree, opts, nodeFactory) { opts = opts || {}; var depth = opts.tasksDepth; - depth = typeof depth === 'number' ? ((depth < 1) ? 1 : depth) : null; + depth = typeof depth === "number" ? (depth < 1 ? 1 : depth) : null; nodeFactory = nodeFactory || defaultNodeFactory; @@ -36,7 +36,6 @@ function copyTree(tree, opts, nodeFactory) { if (opts.compactTasks) { forEach(node.nodes, copyNotRecursively, newNode); - } else if (!depth || depth > 1) { forEach(node.nodes, copyRecursively, depth, 2, newNode); } @@ -78,4 +77,3 @@ function forEach(nodes, fn) { } module.exports = copyTree; - diff --git a/lib/shared/log/format-hrtime.js b/lib/shared/log/format-hrtime.js index 0547bd1e..4edbc8cd 100644 --- a/lib/shared/log/format-hrtime.js +++ b/lib/shared/log/format-hrtime.js @@ -1,19 +1,19 @@ -'use strict'; +"use strict"; var units = [ - [ 'h', 3600e9 ], - [ 'min', 60e9 ], - [ 's', 1e9 ], - [ 'ms', 1e6 ], - [ 'μs', 1e3 ], + ["h", 3600e9], + ["min", 60e9], + ["s", 1e9], + ["ms", 1e6], + ["μs", 1e3], ]; function formatHrTime(hrtime) { if (!Array.isArray(hrtime) || hrtime.length !== 2) { - return ''; + return ""; } - if (typeof hrtime[0] !== 'number' || typeof hrtime[1] !== 'number') { - return ''; + if (typeof hrtime[0] !== "number" || typeof hrtime[1] !== "number") { + return ""; } var nano = hrtime[0] * 1e9 + hrtime[1]; @@ -24,25 +24,25 @@ function formatHrTime(hrtime) { } if (nano >= units[i][1] * 10) { - return Math.round(nano / units[i][1]) + ' ' + units[i][0]; + return Math.round(nano / units[i][1]) + " " + units[i][0]; } - var s = String(Math.round(nano * 1e2 / units[i][1])); - if (s.slice(-2) === '00') { + var s = String(Math.round((nano * 1e2) / units[i][1])); + if (s.slice(-2) === "00") { s = s.slice(0, -2); - } else if (s.slice(-1) === '0') { - s = s.slice(0, -2) + '.' + s.slice(-2, -1); + } else if (s.slice(-1) === "0") { + s = s.slice(0, -2) + "." + s.slice(-2, -1); } else { - s = s.slice(0, -2) + '.' + s.slice(-2); + s = s.slice(0, -2) + "." + s.slice(-2); } - return s + ' ' + units[i][0]; + return s + " " + units[i][0]; } if (nano > 0) { - return nano + ' ns'; + return nano + " ns"; } - return ''; + return ""; } module.exports = formatHrTime; diff --git a/lib/shared/log/tasks.js b/lib/shared/log/tasks.js index 0590ef4a..1d23eb27 100644 --- a/lib/shared/log/tasks.js +++ b/lib/shared/log/tasks.js @@ -1,9 +1,9 @@ -'use strict'; +"use strict"; -var stringWidth = require('string-width'); -var messages = require('@gulpjs/messages'); +var stringWidth = require("string-width"); +var messages = require("@gulpjs/messages"); -var isObject = require('../is-object'); +var isObject = require("../is-object"); function logTasks(tree, opts, getTask, translate) { if (opts.sortTasks) { @@ -11,7 +11,7 @@ function logTasks(tree, opts, getTask, translate) { } var maxDepth = opts.tasksDepth; - if (typeof maxDepth !== 'number') { + if (typeof maxDepth !== "number") { maxDepth = 50; } else if (maxDepth < 1) { maxDepth = 1; @@ -32,16 +32,16 @@ function logTasks(tree, opts, getTask, translate) { lines.push({ label: tree.label }); var maxLabelWidth = 0; - tree.nodes.forEach(function(node, idx, arr) { + tree.nodes.forEach(function (node, idx, arr) { var isLast = idx === arr.length - 1; - var w = createTreeLines(node, lines, opts, 1, '', isLast); + var w = createTreeLines(node, lines, opts, 1, "", isLast); maxLabelWidth = Math.max(maxLabelWidth, w); }); - lines.forEach(function(line) { + lines.forEach(function (line) { var s = line.label; if (line.desc) { - var spaces = ' '.repeat(maxLabelWidth - line.width) + ' '; + var spaces = " ".repeat(maxLabelWidth - line.width) + " "; s += spaces + line.desc; } if (s) { @@ -64,9 +64,11 @@ function logTasks(tree, opts, getTask, translate) { var maxLabelWidth = addTaskToLines(task, lines, isLast, isLeaf); if (!isLeaf) { - bars += (isLast ? ' ' : translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL })); - bars += ' ' - node.nodes.forEach(function(node, idx, arr) { + bars += isLast + ? " " + : translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL }); + bars += " "; + node.nodes.forEach(function (node, idx, arr) { var isLast = idx === arr.length - 1; createTreeLines(node, lines, opts, depth + 1, bars, isLast); }); @@ -76,27 +78,42 @@ function logTasks(tree, opts, getTask, translate) { } function addTaskToLines(task, lines, isLast, isLeaf) { - var taskBars = task.bars + (isLast + var taskBars = + task.bars + + (isLast ? translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_UP_AND_RIGHT }) - : translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT })) + - translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_HORIZONTAL }); + : translate.message({ + tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT, + })) + + translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_HORIZONTAL }); if (isLeaf) { - taskBars += translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_HORIZONTAL }); + taskBars += translate.message({ + tag: messages.BOX_DRAWINGS_LIGHT_HORIZONTAL, + }); } else { - taskBars += translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL }); + taskBars += translate.message({ + tag: messages.BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL, + }); } - taskBars += ' '; + taskBars += " "; var line = {}; if (task.depth === 1) { - line.label = taskBars + translate.message({ tag: messages.TASK_NAME, name: task.label }); + line.label = + taskBars + + translate.message({ tag: messages.TASK_NAME, name: task.label }); } else { - line.label = taskBars + translate.message({ tag: messages.TASK_NAME, name: task.label }); + line.label = + taskBars + + translate.message({ tag: messages.TASK_NAME, name: task.label }); } line.width = stringWidth(line.label); - if (typeof task.desc === 'string' && task.desc) { - line.desc = translate.message({ tag: messages.TASK_DESCRIPTION, description: task.desc }); + if (typeof task.desc === "string" && task.desc) { + line.desc = translate.message({ + tag: messages.TASK_DESCRIPTION, + description: task.desc, + }); } lines.push(line); @@ -108,31 +125,39 @@ function logTasks(tree, opts, getTask, translate) { var flagBars = task.bars; if (isLast) { - flagBars += ' '; + flagBars += " "; } else { - flagBars += translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL }); + flagBars += translate.message({ + tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL, + }); } - flagBars += ' '; + flagBars += " "; if (isLeaf) { - flagBars += ' '; + flagBars += " "; } else { - flagBars += translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL }); + flagBars += translate.message({ + tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL, + }); } - flagBars += ' '; + flagBars += " "; Object.entries(task.flags).sort(flagSorter).forEach(addFlagsToLines); function addFlagsToLines(ent) { - if (typeof ent[0] !== 'string' || !ent[0]) return; + if (typeof ent[0] !== "string" || !ent[0]) return; var line = {}; - line.label = flagBars + translate.message({ tag: messages.TASK_FLAG, flag: ent[0] }); + line.label = + flagBars + translate.message({ tag: messages.TASK_FLAG, flag: ent[0] }); line.width = stringWidth(line.label); maxLabelWidth = Math.max(maxLabelWidth, line.width); - if (typeof ent[1] === 'string' && ent[1] !== '') { - line.desc = translate.message({ tag: messages.TASK_FLAG_DESCRIPTION, description: ent[1] }); + if (typeof ent[1] === "string" && ent[1] !== "") { + line.desc = translate.message({ + tag: messages.TASK_FLAG_DESCRIPTION, + description: ent[1], + }); } lines.push(line); } @@ -159,13 +184,12 @@ function compareByLabel(a, b) { } else /* istanbul ignore if */ if (!a.label) { return 1; } else { - return (a.label <= b.label) ? -1 : 1; + return a.label <= b.label ? -1 : 1; } } function flagSorter(a, b) { - return (a[0] <= b[0]) ? -1 : 1; + return a[0] <= b[0] ? -1 : 1; } module.exports = logTasks; - diff --git a/lib/shared/log/to-console.js b/lib/shared/log/to-console.js index 3cdf1ca2..4623705a 100644 --- a/lib/shared/log/to-console.js +++ b/lib/shared/log/to-console.js @@ -1,6 +1,6 @@ -'use strict'; +"use strict"; -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); /* istanbul ignore next */ function noop() {} @@ -8,11 +8,17 @@ function noop() {} function toConsole(log, opts, translate) { // Return immediately if logging is // not desired. - if (opts.tasksSimple || opts.tasksJson || opts.help || opts.version || opts.silent) { + if ( + opts.tasksSimple || + opts.tasksJson || + opts.help || + opts.version || + opts.silent + ) { // Keep from crashing process when silent. - log.on('error', noop); + log.on("error", noop); return function () { - log.removeListener('error', noop); + log.removeListener("error", noop); }; } @@ -20,33 +26,33 @@ function toConsole(log, opts, translate) { var loglevel = opts.logLevel || 3; var deprecatedPrinted = false; - log.on('deprecated', onDeprecated); + log.on("deprecated", onDeprecated); // -L: Logs error events. if (loglevel > 0) { - log.on('error', onError); + log.on("error", onError); } // -LL: Logs warn and error events. if (loglevel > 1) { - log.on('warn', onWarn); + log.on("warn", onWarn); } // -LLL: Logs info, warn and error events. if (loglevel > 2) { - log.on('info', onInfo); + log.on("info", onInfo); } if (loglevel > 3) { - log.on('debug', onDebug); + log.on("debug", onDebug); } return function () { - log.removeListener('deprecated', onDeprecated); - log.removeListener('error', onError); - log.removeListener('warn', onWarn); - log.removeListener('info', onInfo); - log.removeListener('debug', onDebug); + log.removeListener("deprecated", onDeprecated); + log.removeListener("error", onError); + log.removeListener("warn", onWarn); + log.removeListener("info", onInfo); + log.removeListener("debug", onDebug); }; function onDeprecated() { @@ -60,7 +66,7 @@ function toConsole(log, opts, translate) { if (message) { // Ensure timestamp is not written without a message if (timestamp) { - process.stderr.write(timestamp + ' '); + process.stderr.write(timestamp + " "); } console.error(message); } @@ -78,7 +84,7 @@ function toConsole(log, opts, translate) { if (message) { // Ensure timestamp is not written without a message if (timestamp) { - process.stderr.write(timestamp + ' '); + process.stderr.write(timestamp + " "); } console.error(message); } @@ -95,7 +101,7 @@ function toConsole(log, opts, translate) { if (message) { // Ensure timestamp is not written without a message if (timestamp) { - process.stdout.write(timestamp + ' '); + process.stdout.write(timestamp + " "); } console.log(message); } @@ -110,7 +116,7 @@ function toConsole(log, opts, translate) { if (message) { // Ensure timestamp is not written without a message if (timestamp) { - process.stdout.write(timestamp + ' '); + process.stdout.write(timestamp + " "); } console.log(message); } @@ -125,7 +131,7 @@ function toConsole(log, opts, translate) { if (message) { // Ensure timestamp is not written without a message if (timestamp) { - process.stdout.write(timestamp + ' '); + process.stdout.write(timestamp + " "); } console.log(message); } diff --git a/lib/shared/make-title.js b/lib/shared/make-title.js index aa6d2ee3..e5e09c48 100644 --- a/lib/shared/make-title.js +++ b/lib/shared/make-title.js @@ -1,11 +1,11 @@ -'use strict'; +"use strict"; function makeTitle(cmd, argv) { if (!argv || argv.length === 0) { return cmd; } - return [cmd].concat(argv).join(' '); + return [cmd].concat(argv).join(" "); } module.exports = makeTitle; diff --git a/lib/shared/options/cli-options.js b/lib/shared/options/cli-options.js index b84c7948..f79e183a 100644 --- a/lib/shared/options/cli-options.js +++ b/lib/shared/options/cli-options.js @@ -1,94 +1,94 @@ -'use strict'; +"use strict"; -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); var options = { help: { - alias: 'h', - type: 'boolean', + alias: "h", + type: "boolean", tag: messages.FLAG_HELP, }, version: { - alias: 'v', - type: 'boolean', + alias: "v", + type: "boolean", tag: messages.FLAG_VERSION, }, preload: { - type: 'string', + type: "string", requiresArg: true, tag: messages.FLAG_PRELOAD, }, gulpfile: { - alias: 'f', - type: 'string', + alias: "f", + type: "string", requiresArg: true, tag: messages.FLAG_GULPFILE, }, cwd: { - type: 'string', + type: "string", requiresArg: true, tag: messages.FLAG_CWD, }, tasks: { - alias: 'T', - type: 'boolean', + alias: "T", + type: "boolean", tag: messages.FLAG_TASKS, }, - 'tasks-simple': { - type: 'boolean', + "tasks-simple": { + type: "boolean", tag: messages.FLAG_TASKS_SIMPLE, }, - 'tasks-json': { + "tasks-json": { tag: messages.FLAG_TASKS_JSON, }, - 'tasks-depth': { - alias: 'depth', - type: 'number', + "tasks-depth": { + alias: "depth", + type: "number", requiresArg: true, - default: undefined, // To detect if this cli option is specified. + default: undefined, // To detect if this cli option is specified. tag: messages.FLAG_TASKS_DEPTH, }, - 'compact-tasks': { - type: 'boolean', - default: undefined, // To detect if this cli option is specified. + "compact-tasks": { + type: "boolean", + default: undefined, // To detect if this cli option is specified. tag: messages.FLAG_COMPACT_TASKS, }, - 'sort-tasks': { - type: 'boolean', - default: undefined, // To detect if this cli option is specified. + "sort-tasks": { + type: "boolean", + default: undefined, // To detect if this cli option is specified. tag: messages.FLAG_SORT_TASKS, }, color: { - type: 'boolean', + type: "boolean", tag: messages.FLAG_COLOR, }, - 'no-color': { - type: 'boolean', + "no-color": { + type: "boolean", tag: messages.FLAG_NO_COLOR, }, silent: { - alias: 'S', - type: 'boolean', - default: undefined, // To detect if this cli option is specified. + alias: "S", + type: "boolean", + default: undefined, // To detect if this cli option is specified. tag: messages.FLAG_SILENT, }, continue: { - type: 'boolean', - default: undefined, // To detect if this cli option is specified. + type: "boolean", + default: undefined, // To detect if this cli option is specified. tag: messages.FLAG_CONTINUE, }, series: { - type: 'boolean', - default: undefined, // To detect if this cli option is specified. + type: "boolean", + default: undefined, // To detect if this cli option is specified. tag: messages.FLAG_SERIES, }, - 'log-level': { - alias: 'L', + "log-level": { + alias: "L", // Type isn't needed because count acts as a boolean count: true, - default: undefined, // To detect if this cli option is specified. + default: undefined, // To detect if this cli option is specified. tag: messages.FLAG_LOG_LEVEL, - } + }, }; module.exports = options; diff --git a/lib/shared/options/make-help.js b/lib/shared/options/make-help.js index 7a56387f..052db1df 100644 --- a/lib/shared/options/make-help.js +++ b/lib/shared/options/make-help.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; -var cliOptions = require('./cli-options'); +var cliOptions = require("./cli-options"); -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); function makeHelp(parser, translate) { var usage = translate.message({ tag: messages.USAGE }); diff --git a/lib/shared/register-exports.js b/lib/shared/register-exports.js index 572e9edc..4f5130d5 100644 --- a/lib/shared/register-exports.js +++ b/lib/shared/register-exports.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; function registerExports(gulpInst, tasks) { var taskNames = Object.keys(tasks); @@ -10,7 +10,7 @@ function registerExports(gulpInst, tasks) { function register(taskName) { var task = tasks[taskName]; - if (typeof task !== 'function') { + if (typeof task !== "function") { return; } diff --git a/lib/shared/require-or-import.js b/lib/shared/require-or-import.js index af98aac5..ed8599bb 100644 --- a/lib/shared/require-or-import.js +++ b/lib/shared/require-or-import.js @@ -1,13 +1,13 @@ -'use strict'; +"use strict"; -var pathToFileURL = require('url').pathToFileURL; +var pathToFileURL = require("url").pathToFileURL; var importESM; try { // Node.js <10 errors out with a SyntaxError when loading a script that uses import(). // So a function is dynamically created to catch the SyntaxError at runtime instead of parsetime. // That way we can keep supporting all Node.js versions all the way back to 0.10. - importESM = new Function('id', 'return import(id);'); + importESM = new Function("id", "return import(id);"); } catch (e) { /* istanbul ignore next */ importESM = null; @@ -24,17 +24,25 @@ function requireOrImport(path, callback) { // Because e.code is undefined on nyc process. /* istanbul ignore else */ // Check 'ERR_REQUIRE_ASYNC_MODULE' if on node v22.12.0 or later to allow importing from files using top level await. - if (e.code === 'ERR_REQUIRE_ESM' || process.env.NYC_CONFIG || e.code === 'ERR_REQUIRE_ASYNC_MODULE') { + if ( + e.code === "ERR_REQUIRE_ESM" || + process.env.NYC_CONFIG || + e.code === "ERR_REQUIRE_ASYNC_MODULE" + ) { // This is needed on Windows, because import() fails if providing a Windows file path. var url = pathToFileURL(path); - importESM(url).then(function(esm) { callback(null, esm); }, callback); + importESM(url).then(function (esm) { + callback(null, esm); + }, callback); return; } } /* istanbul ignore next */ err = e; } - process.nextTick(function() { callback(err, cjs); }); + process.nextTick(function () { + callback(err, cjs); + }); } module.exports = requireOrImport; diff --git a/lib/shared/tildify.js b/lib/shared/tildify.js index a9c61fce..15dd97f3 100644 --- a/lib/shared/tildify.js +++ b/lib/shared/tildify.js @@ -1,9 +1,9 @@ -'use strict'; +"use strict"; -var replaceHomedir = require('replace-homedir'); +var replaceHomedir = require("replace-homedir"); function tildify(filepath) { - return replaceHomedir(filepath, '~'); + return replaceHomedir(filepath, "~"); } module.exports = tildify; diff --git a/lib/shared/translate.js b/lib/shared/translate.js index 1c1939c8..655949a3 100644 --- a/lib/shared/translate.js +++ b/lib/shared/translate.js @@ -1,116 +1,162 @@ -'use strict'; +"use strict"; -var util = require('util'); +var util = require("util"); -var chalk = require('chalk'); -var messages = require('@gulpjs/messages'); +var chalk = require("chalk"); +var messages = require("@gulpjs/messages"); -var tildify = require('./tildify'); -var formatTime = require('./log/format-hrtime'); +var tildify = require("./tildify"); +var formatTime = require("./log/format-hrtime"); function Timestamp() { this.now = new Date(); } Timestamp.prototype[util.inspect.custom] = function (depth, opts) { - var timestamp = this.now.toLocaleTimeString('en', { hour12: false }); - return '[' + opts.stylize(timestamp, 'date') + ']'; + var timestamp = this.now.toLocaleTimeString("en", { hour12: false }); + return "[" + opts.stylize(timestamp, "date") + "]"; }; function getDefaultMessage(data) { switch (data.tag) { case messages.PRELOAD_BEFORE: { - return 'Preloading external module: ' + chalk.magenta(data.name); + return "Preloading external module: " + chalk.magenta(data.name); } case messages.PRELOAD_SUCCESS: { - return 'Preloaded external module: ' + chalk.magenta(data.name) + return "Preloaded external module: " + chalk.magenta(data.name); } case messages.PRELOAD_FAILURE: { - return chalk.yellow('Failed to preload external module: ') + chalk.magenta(data.name); + return ( + chalk.yellow("Failed to preload external module: ") + + chalk.magenta(data.name) + ); } case messages.PRELOAD_ERROR: { return chalk.yellow(data.error.toString()); } case messages.LOADER_SUCCESS: { - return 'Loaded external module: ' + chalk.magenta(data.name); + return "Loaded external module: " + chalk.magenta(data.name); } case messages.LOADER_FAILURE: { - return chalk.yellow('Failed to load external module: ') + chalk.magenta(data.name); + return ( + chalk.yellow("Failed to load external module: ") + + chalk.magenta(data.name) + ); } case messages.LOADER_ERROR: { return chalk.yellow(data.error.toString()); } case messages.NODE_FLAGS: { - var nodeFlags = chalk.magenta(data.flags.join(', ')); - return 'Node flags detected: ' + nodeFlags; + var nodeFlags = chalk.magenta(data.flags.join(", ")); + return "Node flags detected: " + nodeFlags; } case messages.RESPAWNED: { var pid = chalk.magenta(data.pid); - return 'Respawned to PID: ' + pid; + return "Respawned to PID: " + pid; } case messages.MISSING_GULPFILE: { - return chalk.red('No gulpfile found'); + return chalk.red("No gulpfile found"); } case messages.CWD_CHANGED: { - return 'Working directory changed to ' + chalk.magenta(tildify(data.cwd)); + return "Working directory changed to " + chalk.magenta(tildify(data.cwd)); } case messages.UNSUPPORTED_GULP_VERSION: { - return chalk.red('Unsupported gulp version', data.version) + return chalk.red("Unsupported gulp version", data.version); } case messages.DESCRIPTION: { - return 'Tasks for ' + chalk.magenta(tildify(data.path)); + return "Tasks for " + chalk.magenta(tildify(data.path)); } case messages.GULPFILE: { - return 'Using gulpfile ' + chalk.magenta(tildify(data.path)); + return "Using gulpfile " + chalk.magenta(tildify(data.path)); } case messages.TASK_START: { - return "Starting '" + chalk.cyan(data.task) + "'..." + return "Starting '" + chalk.cyan(data.task) + "'..."; } case messages.TASK_STOP: { - return "Finished '" + chalk.cyan(data.task) + "' after " + chalk.magenta(formatTime(data.duration)); + return ( + "Finished '" + + chalk.cyan(data.task) + + "' after " + + chalk.magenta(formatTime(data.duration)) + ); } case messages.TASK_FAILURE: { - return "'" + chalk.cyan(data.task) + "' " + chalk.red('errored after') + ' ' + chalk.magenta(formatTime(data.duration)); + return ( + "'" + + chalk.cyan(data.task) + + "' " + + chalk.red("errored after") + + " " + + chalk.magenta(formatTime(data.duration)) + ); } case messages.TASK_MISSING: { if (data.similar) { - return chalk.red('Task never defined: ' + data.task + ' - did you mean? ' + data.similar.join(', ')) - + '\nTo list available tasks, try running: gulp --tasks'; + return ( + chalk.red( + "Task never defined: " + + data.task + + " - did you mean? " + + data.similar.join(", "), + ) + "\nTo list available tasks, try running: gulp --tasks" + ); } else { - return chalk.red('Task never defined: ' + data.task) + - '\nTo list available tasks, try running: gulp --tasks'; + return ( + chalk.red("Task never defined: " + data.task) + + "\nTo list available tasks, try running: gulp --tasks" + ); } } case messages.TASK_SYNC: { - return chalk.red('The following tasks did not complete: ') + chalk.cyan(data.tasks) + "\n" - + chalk.red('Did you forget to signal async completion?'); + return ( + chalk.red("The following tasks did not complete: ") + + chalk.cyan(data.tasks) + + "\n" + + chalk.red("Did you forget to signal async completion?") + ); } case messages.MISSING_NODE_MODULES: { - return chalk.red('Local modules not found in') + ' ' + chalk.magenta(tildify(data.cwd)); + return ( + chalk.red("Local modules not found in") + + " " + + chalk.magenta(tildify(data.cwd)) + ); } case messages.MISSING_GULP: { - return chalk.red('Local gulp not found in') + ' ' + chalk.magenta(tildify(data.cwd)); + return ( + chalk.red("Local gulp not found in") + + " " + + chalk.magenta(tildify(data.cwd)) + ); } case messages.YARN_INSTALL: { - return chalk.red('Try running: yarn install'); + return chalk.red("Try running: yarn install"); } case messages.NPM_INSTALL: { - return chalk.red('Try running: npm install'); + return chalk.red("Try running: npm install"); } case messages.YARN_INSTALL_GULP: { - return chalk.red('Try running: yarn add gulp'); + return chalk.red("Try running: yarn add gulp"); } case messages.NPM_INSTALL_GULP: { - return chalk.red('Try running: npm install gulp'); + return chalk.red("Try running: npm install gulp"); } case messages.GULPLOG_DEPRECATED: { - return chalk.yellow("gulplog v1 is deprecated. Please help your plugins update!"); + return chalk.yellow( + "gulplog v1 is deprecated. Please help your plugins update!", + ); } case messages.COMPLETION_TYPE_MISSING: { - return 'Missing completion type'; + return "Missing completion type"; } case messages.COMPLETION_TYPE_UNKNOWN: { - return 'echo "gulp autocompletion rules for' + " '" + data.name + "' " + 'not found"' + return ( + 'echo "gulp autocompletion rules for' + + " '" + + data.name + + "' " + + 'not found"' + ); } case messages.ARGV_ERROR: { return data.message; @@ -122,81 +168,93 @@ function getDefaultMessage(data) { return data.message; } case messages.USAGE: { - return '\n' + chalk.bold('Usage:') + ' gulp ' + chalk.blue('[options]') + ' tasks'; + return ( + "\n" + + chalk.bold("Usage:") + + " gulp " + + chalk.blue("[options]") + + " tasks" + ); } case messages.FLAG_HELP: { - return chalk.gray('Show this help.'); + return chalk.gray("Show this help."); } case messages.FLAG_VERSION: { - return chalk.gray('Print the global and local gulp versions.'); + return chalk.gray("Print the global and local gulp versions."); } case messages.FLAG_PRELOAD: { return chalk.gray( - 'Will preload a module before running the gulpfile. ' + - 'This is useful for transpilers but also has other applications.' + "Will preload a module before running the gulpfile. " + + "This is useful for transpilers but also has other applications.", ); } case messages.FLAG_GULPFILE: { return chalk.gray( - 'Manually set path of gulpfile. Useful if you have multiple gulpfiles. ' + - 'This will set the CWD to the gulpfile directory as well.' - ) + "Manually set path of gulpfile. Useful if you have multiple gulpfiles. " + + "This will set the CWD to the gulpfile directory as well.", + ); } case messages.FLAG_CWD: { return chalk.gray( - 'Manually set the CWD. The search for the gulpfile, ' + - 'as well as the relativity of all requires will be from here.' + "Manually set the CWD. The search for the gulpfile, " + + "as well as the relativity of all requires will be from here.", ); } case messages.FLAG_TASKS: { - return chalk.gray('Print the task dependency tree for the loaded gulpfile.'); + return chalk.gray( + "Print the task dependency tree for the loaded gulpfile.", + ); } case messages.FLAG_TASKS_SIMPLE: { - return chalk.gray('Print a plaintext list of tasks for the loaded gulpfile.'); + return chalk.gray( + "Print a plaintext list of tasks for the loaded gulpfile.", + ); } case messages.FLAG_TASKS_JSON: { return chalk.gray( - 'Print the task dependency tree, ' + - 'in JSON format, for the loaded gulpfile.' + "Print the task dependency tree, " + + "in JSON format, for the loaded gulpfile.", ); } case messages.FLAG_TASKS_DEPTH: { - return chalk.gray('Specify the depth of the task dependency tree.'); + return chalk.gray("Specify the depth of the task dependency tree."); } case messages.FLAG_COMPACT_TASKS: { return chalk.gray( - 'Reduce the output of task dependency tree by printing ' + - 'only top tasks and their child tasks.' + "Reduce the output of task dependency tree by printing " + + "only top tasks and their child tasks.", ); } case messages.FLAG_SORT_TASKS: { - return chalk.gray('Will sort top tasks of task dependency tree.'); + return chalk.gray("Will sort top tasks of task dependency tree."); } case messages.FLAG_COLOR: { return chalk.gray( - 'Will force gulp and gulp plugins to display colors, ' + - 'even when no color support is detected.' + "Will force gulp and gulp plugins to display colors, " + + "even when no color support is detected.", ); } case messages.FLAG_NO_COLOR: { return chalk.gray( - 'Will force gulp and gulp plugins to not display colors, ' + - 'even when color support is detected.' + "Will force gulp and gulp plugins to not display colors, " + + "even when color support is detected.", ); } case messages.FLAG_SILENT: { - return chalk.gray('Suppress all gulp logging.'); + return chalk.gray("Suppress all gulp logging."); } case messages.FLAG_CONTINUE: { - return chalk.gray('Continue execution of tasks upon failure.'); + return chalk.gray("Continue execution of tasks upon failure."); } case messages.FLAG_SERIES: { - return chalk.gray('Run tasks given on the CLI in series (the default is parallel).'); + return chalk.gray( + "Run tasks given on the CLI in series (the default is parallel).", + ); } case messages.FLAG_LOG_LEVEL: { return chalk.gray( - 'Set the loglevel. -L for least verbose and -LLLL for most verbose. ' + - '-LLL is default.' + "Set the loglevel. -L for least verbose and -LLLL for most verbose. " + + "-LLL is default.", ); } case messages.TASK_NAME: { @@ -209,22 +267,22 @@ function getDefaultMessage(data) { return chalk.magenta(data.flag); } case messages.TASK_FLAG_DESCRIPTION: { - return chalk.white('…' + data.description); + return chalk.white("…" + data.description); } case messages.BOX_DRAWINGS_LIGHT_UP_AND_RIGHT: { - return chalk.white('└'); + return chalk.white("└"); } case messages.BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT: { - return chalk.white('├'); + return chalk.white("├"); } case messages.BOX_DRAWINGS_LIGHT_HORIZONTAL: { - return chalk.white('─'); + return chalk.white("─"); } case messages.BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL: { - return chalk.white('┬'); + return chalk.white("┬"); } case messages.BOX_DRAWINGS_LIGHT_VERTICAL: { - return chalk.white('│'); + return chalk.white("│"); } default: { return data; @@ -242,17 +300,19 @@ function buildTranslations(cfg) { return { message: function (data) { // Don't allow an `undefined` message through - if (typeof data === 'undefined') { + if (typeof data === "undefined") { data = Object.create(null); } var message; - if (typeof cfg.message === 'function') { + if (typeof cfg.message === "function") { try { message = cfg.message(data); } catch (err) { - console.error('A problem occurred with the user-defined `message()` function.'); - console.error('Please correct your `.gulp.*` config file.'); + console.error( + "A problem occurred with the user-defined `message()` function.", + ); + console.error("Please correct your `.gulp.*` config file."); } } @@ -263,7 +323,7 @@ function buildTranslations(cfg) { // Users can filter messages by explicitly returning `false` if (message === false) { - return ''; + return ""; } // If the user hasn't returned a message or silenced it with `false` @@ -273,17 +333,19 @@ function buildTranslations(cfg) { }, timestamp: function (data) { // Don't allow an `undefined` message through - if (typeof data === 'undefined') { + if (typeof data === "undefined") { data = Object.create(null); } var time; - if (typeof cfg.timestamp === 'function') { + if (typeof cfg.timestamp === "function") { try { time = cfg.timestamp(data); } catch (err) { - console.error('A problem occurred with the user-defined `timestamp()` function.'); - console.error('Please correct your `.gulp.*` config file.'); + console.error( + "A problem occurred with the user-defined `timestamp()` function.", + ); + console.error("Please correct your `.gulp.*` config file."); } } @@ -294,12 +356,12 @@ function buildTranslations(cfg) { // Users can filter timestamps by explicitly returning `false` if (time === false) { - return ''; + return ""; } return getDefaultTimestamp(); - } - } + }, + }; } module.exports = buildTranslations; diff --git a/lib/versioned/^3.7.0/format-error.js b/lib/versioned/^3.7.0/format-error.js index 705e0bf0..0036b1c5 100644 --- a/lib/versioned/^3.7.0/format-error.js +++ b/lib/versioned/^3.7.0/format-error.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; // Format orchestrator errors function formatError(e) { @@ -7,7 +7,7 @@ function formatError(e) { } // PluginError - if (typeof e.err.showStack === 'boolean') { + if (typeof e.err.showStack === "boolean") { return e.err.toString(); } diff --git a/lib/versioned/^3.7.0/index.js b/lib/versioned/^3.7.0/index.js index bce66146..07091d52 100644 --- a/lib/versioned/^3.7.0/index.js +++ b/lib/versioned/^3.7.0/index.js @@ -1,24 +1,24 @@ -'use strict'; +"use strict"; -var fs = require('fs'); +var fs = require("fs"); -var log = require('gulplog'); -var stdout = require('mute-stdout'); -var messages = require('@gulpjs/messages'); +var log = require("gulplog"); +var stdout = require("mute-stdout"); +var messages = require("@gulpjs/messages"); -var taskTree = require('./task-tree'); -var copyTree = require('../../shared/log/copy-tree'); +var taskTree = require("./task-tree"); +var copyTree = require("../../shared/log/copy-tree"); -var logTasks = require('../../shared/log/tasks'); -var exit = require('../../shared/exit'); -var logEvents = require('./log/events'); -var logTasksSimple = require('./log/tasks-simple'); -var registerExports = require('../../shared/register-exports'); -var requireOrImport = require('../../shared/require-or-import'); +var logTasks = require("../../shared/log/tasks"); +var exit = require("../../shared/exit"); +var logEvents = require("./log/events"); +var logTasksSimple = require("./log/tasks-simple"); +var registerExports = require("../../shared/register-exports"); +var requireOrImport = require("../../shared/require-or-import"); function execute(env, opts, translate) { var tasks = opts._; - var toRun = tasks.length ? tasks : ['default']; + var toRun = tasks.length ? tasks : ["default"]; if (opts.tasksSimple || opts.tasks || opts.tasksJson) { // Mute stdout if we are listing tasks @@ -26,7 +26,7 @@ function execute(env, opts, translate) { } // This is what actually loads up the gulpfile - requireOrImport(env.configPath, function(err, exported) { + requireOrImport(env.configPath, function (err, exported) { // Before import(), if require() failed we got an unhandled exception on the module level. // So console.error() & exit() were added here to mimic the old behavior as close as possible. if (err) { @@ -50,22 +50,33 @@ function execute(env, opts, translate) { } if (opts.tasks) { tree = taskTree(gulpInst.tasks); - tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); - return logTasks(tree, opts, function(task) { - return gulpInst.tasks[task].fn; - }, translate); + tree.label = translate.message({ + tag: messages.DESCRIPTION, + path: env.configPath, + }); + return logTasks( + tree, + opts, + function (task) { + return gulpInst.tasks[task].fn; + }, + translate, + ); } if (opts.tasksJson) { tree = taskTree(gulpInst.tasks); - tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); + tree.label = translate.message({ + tag: messages.DESCRIPTION, + path: env.configPath, + }); var output = JSON.stringify(copyTree(tree, opts)); - if (typeof opts.tasksJson === 'boolean') { + if (typeof opts.tasksJson === "boolean") { return console.log(output); } - return fs.writeFileSync(opts.tasksJson, output, 'utf-8'); + return fs.writeFileSync(opts.tasksJson, output, "utf-8"); } gulpInst.start.apply(gulpInst, toRun); }); diff --git a/lib/versioned/^3.7.0/log/events.js b/lib/versioned/^3.7.0/log/events.js index 3fb63398..8067e422 100644 --- a/lib/versioned/^3.7.0/log/events.js +++ b/lib/versioned/^3.7.0/log/events.js @@ -1,43 +1,46 @@ -'use strict'; +"use strict"; -var log = require('gulplog'); -var messages = require('@gulpjs/messages'); +var log = require("gulplog"); +var messages = require("@gulpjs/messages"); -var exit = require('../../../shared/exit'); -var formatError = require('../format-error'); +var exit = require("../../../shared/exit"); +var formatError = require("../format-error"); // Wire up logging events function logEvents(gulpInst) { - // Exit with 0 or 1 var failed = false; - process.once('exit', function(code) { + process.once("exit", function (code) { if (code === 0 && failed) { exit(1); } }); // Total hack due to poor error management in orchestrator - gulpInst.on('err', function() { + gulpInst.on("err", function () { failed = true; }); - gulpInst.on('task_start', function(e) { + gulpInst.on("task_start", function (e) { // TODO: batch these // so when 5 tasks start at once it only logs one time with all 5 log.info({ tag: messages.TASK_START, task: e.task }); }); - gulpInst.on('task_stop', function(e) { + gulpInst.on("task_stop", function (e) { log.info({ tag: messages.TASK_STOP, task: e.task, duration: e.hrDuration }); }); - gulpInst.on('task_err', function(e) { - log.error({ tag: messages.TASK_FAILURE, task: e.task, duration: e.hrDuration }); + gulpInst.on("task_err", function (e) { + log.error({ + tag: messages.TASK_FAILURE, + task: e.task, + duration: e.hrDuration, + }); log.error({ tag: messages.TASK_ERROR, message: formatError(e) }); }); - gulpInst.on('task_not_found', function(err) { + gulpInst.on("task_not_found", function (err) { log.error({ tag: messages.TASK_MISSING, task: err.task }); exit(1); }); diff --git a/lib/versioned/^3.7.0/log/tasks-simple.js b/lib/versioned/^3.7.0/log/tasks-simple.js index dca2fdf6..a390cf59 100644 --- a/lib/versioned/^3.7.0/log/tasks-simple.js +++ b/lib/versioned/^3.7.0/log/tasks-simple.js @@ -1,9 +1,7 @@ -'use strict'; +"use strict"; function logTasksSimple(env, localGulp) { - console.log(Object.keys(localGulp.tasks) - .join('\n') - .trim()); + console.log(Object.keys(localGulp.tasks).join("\n").trim()); } module.exports = logTasksSimple; diff --git a/lib/versioned/^3.7.0/task-tree.js b/lib/versioned/^3.7.0/task-tree.js index 8d689801..e077ff9c 100644 --- a/lib/versioned/^3.7.0/task-tree.js +++ b/lib/versioned/^3.7.0/task-tree.js @@ -1,27 +1,27 @@ -'use strict'; +"use strict"; -module.exports = function(tasks) { +module.exports = function (tasks) { var map = {}; var arr = []; - Object.keys(tasks).forEach(function(taskname) { + Object.keys(tasks).forEach(function (taskname) { var task = { label: taskname, - type: 'task', + type: "task", nodes: [], }; map[taskname] = task; arr.push(task); }); - Object.keys(tasks).forEach(function(taskname) { + Object.keys(tasks).forEach(function (taskname) { var task = map[taskname]; - tasks[taskname].dep.forEach(function(childname) { + tasks[taskname].dep.forEach(function (childname) { var child = map[childname] || { label: childname, - type: 'task', + type: "task", nodes: [], }; task.nodes.push(child); }); }); - return { label: 'Tasks', nodes: arr }; + return { label: "Tasks", nodes: arr }; }; diff --git a/lib/versioned/^4.0.0/format-error.js b/lib/versioned/^4.0.0/format-error.js index 3d8a7718..8b5dc827 100644 --- a/lib/versioned/^4.0.0/format-error.js +++ b/lib/versioned/^4.0.0/format-error.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; // Format orchestrator errors /* istanbul ignore next */ @@ -8,7 +8,7 @@ function formatError(e) { } // PluginError - if (typeof e.error.showStack === 'boolean') { + if (typeof e.error.showStack === "boolean") { return e.error.toString(); } diff --git a/lib/versioned/^4.0.0/index.js b/lib/versioned/^4.0.0/index.js index 4adb9164..47654323 100644 --- a/lib/versioned/^4.0.0/index.js +++ b/lib/versioned/^4.0.0/index.js @@ -1,27 +1,27 @@ -'use strict'; +"use strict"; -var fs = require('fs'); +var fs = require("fs"); -var log = require('gulplog'); -var stdout = require('mute-stdout'); -var messages = require('@gulpjs/messages'); +var log = require("gulplog"); +var stdout = require("mute-stdout"); +var messages = require("@gulpjs/messages"); -var exit = require('../../shared/exit'); +var exit = require("../../shared/exit"); -var logTasks = require('../../shared/log/tasks'); -var logEvents = require('./log/events'); -var logSyncTask = require('./log/sync-task'); -var normalizeError = require('./normalize-error'); -var logTasksSimple = require('./log/tasks-simple'); -var registerExports = require('../../shared/register-exports'); +var logTasks = require("../../shared/log/tasks"); +var logEvents = require("./log/events"); +var logSyncTask = require("./log/sync-task"); +var normalizeError = require("./normalize-error"); +var logTasksSimple = require("./log/tasks-simple"); +var registerExports = require("../../shared/register-exports"); -var copyTree = require('../../shared/log/copy-tree'); -var getTask = require('./log/get-task'); -var requireOrImport = require('../../shared/require-or-import'); +var copyTree = require("../../shared/log/copy-tree"); +var getTask = require("./log/get-task"); +var requireOrImport = require("../../shared/require-or-import"); function execute(env, opts, translate) { var tasks = opts._; - var toRun = tasks.length ? tasks : ['default']; + var toRun = tasks.length ? tasks : ["default"]; if (opts.tasksSimple || opts.tasks || opts.tasksJson) { // Mute stdout if we are listing tasks @@ -33,7 +33,7 @@ function execute(env, opts, translate) { logSyncTask(gulpInst, opts); // This is what actually loads up the gulpfile - requireOrImport(env.configPath, function(err, exported) { + requireOrImport(env.configPath, function (err, exported) { // Before import(), if require() failed we got an unhandled exception on the module level. // So console.error() & exit() were added here to mimic the old behavior as close as possible. if (err) { @@ -53,25 +53,31 @@ function execute(env, opts, translate) { } if (opts.tasks) { tree = gulpInst.tree({ deep: true }); - tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); + tree.label = translate.message({ + tag: messages.DESCRIPTION, + path: env.configPath, + }); return logTasks(tree, opts, getTask(gulpInst), translate); } if (opts.tasksJson) { tree = gulpInst.tree({ deep: true }); - tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); + tree.label = translate.message({ + tag: messages.DESCRIPTION, + path: env.configPath, + }); var output = JSON.stringify(copyTree(tree, opts)); - if (typeof opts.tasksJson === 'boolean' && opts.tasksJson) { + if (typeof opts.tasksJson === "boolean" && opts.tasksJson) { return console.log(output); } - return fs.writeFileSync(opts.tasksJson, output, 'utf-8'); + return fs.writeFileSync(opts.tasksJson, output, "utf-8"); } try { log.info({ tag: messages.GULPFILE, path: env.configPath }); - var runMethod = opts.series ? 'series' : 'parallel'; - gulpInst[runMethod](toRun)(function(err) { + var runMethod = opts.series ? "series" : "parallel"; + gulpInst[runMethod](toRun)(function (err) { if (err) { exit(1); } @@ -79,9 +85,17 @@ function execute(env, opts, translate) { } catch (err) { normalizeError(err); if (err.task) { - log.error({ tag: messages.TASK_MISSING, task: err.task, similar: err.similar }); + log.error({ + tag: messages.TASK_MISSING, + task: err.task, + similar: err.similar, + }); } else { - log.error({ tag: messages.EXEC_ERROR, message: err.message, error: err }); + log.error({ + tag: messages.EXEC_ERROR, + message: err.message, + error: err, + }); } exit(1); } diff --git a/lib/versioned/^4.0.0/log/events.js b/lib/versioned/^4.0.0/log/events.js index af20f656..7d9d4332 100644 --- a/lib/versioned/^4.0.0/log/events.js +++ b/lib/versioned/^4.0.0/log/events.js @@ -1,32 +1,39 @@ -'use strict'; +"use strict"; -var log = require('gulplog'); -var messages = require('@gulpjs/messages'); +var log = require("gulplog"); +var messages = require("@gulpjs/messages"); -var formatError = require('../format-error'); +var formatError = require("../format-error"); // Wire up logging events function logEvents(gulpInst) { - var loggedErrors = []; - gulpInst.on('start', function(evt) { + gulpInst.on("start", function (evt) { /* istanbul ignore next */ // TODO: batch these // so when 5 tasks start at once it only logs one time with all 5 - var level = evt.branch ? 'debug' : 'info'; + var level = evt.branch ? "debug" : "info"; log[level]({ tag: messages.TASK_START, task: evt.name }); }); - gulpInst.on('stop', function(evt) { + gulpInst.on("stop", function (evt) { /* istanbul ignore next */ - var level = evt.branch ? 'debug' : 'info'; - log[level]({ tag: messages.TASK_STOP, task: evt.name, duration: evt.duration }); + var level = evt.branch ? "debug" : "info"; + log[level]({ + tag: messages.TASK_STOP, + task: evt.name, + duration: evt.duration, + }); }); - gulpInst.on('error', function(evt) { - var level = evt.branch ? 'debug' : 'error'; - log[level]({ tag: messages.TASK_FAILURE, task: evt.name, duration: evt.duration }); + gulpInst.on("error", function (evt) { + var level = evt.branch ? "debug" : "error"; + log[level]({ + tag: messages.TASK_FAILURE, + task: evt.name, + duration: evt.duration, + }); // If we haven't logged this before, log it and add to list if (loggedErrors.indexOf(evt.error) === -1) { diff --git a/lib/versioned/^4.0.0/log/get-task.js b/lib/versioned/^4.0.0/log/get-task.js index 144acb47..09b70dbd 100644 --- a/lib/versioned/^4.0.0/log/get-task.js +++ b/lib/versioned/^4.0.0/log/get-task.js @@ -1,9 +1,9 @@ -'use strict'; +"use strict"; -var isObject = require('../../../shared/is-object'); +var isObject = require("../../../shared/is-object"); function getTask(gulpInst) { - return function(name) { + return function (name) { var task = gulpInst.task(name); return { description: getDescription(task), @@ -13,13 +13,13 @@ function getTask(gulpInst) { } function getDescription(task) { - if (typeof task.description === 'string') { + if (typeof task.description === "string") { return task.description; } /* istanbul ignore else */ - if (typeof task.unwrap === 'function') { + if (typeof task.unwrap === "function") { var origFn = task.unwrap(); - if (typeof origFn.description === 'string') { + if (typeof origFn.description === "string") { return origFn.description; } } @@ -31,7 +31,7 @@ function getFlags(task) { return task.flags; } /* istanbul ignore else */ - if (typeof task.unwrap === 'function') { + if (typeof task.unwrap === "function") { var origFn = task.unwrap(); if (isObject(origFn.flags)) { return origFn.flags; diff --git a/lib/versioned/^4.0.0/log/sync-task.js b/lib/versioned/^4.0.0/log/sync-task.js index 70c38a78..5d04e66b 100644 --- a/lib/versioned/^4.0.0/log/sync-task.js +++ b/lib/versioned/^4.0.0/log/sync-task.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; -var log = require('gulplog'); -var messages = require('@gulpjs/messages'); +var log = require("gulplog"); +var messages = require("@gulpjs/messages"); var tasks = {}; @@ -12,9 +12,11 @@ function warn() { return; } - var taskNames = taskKeys.map(function(key) { - return tasks[key]; - }).join(', '); + var taskNames = taskKeys + .map(function (key) { + return tasks[key]; + }) + .join(", "); process.exitCode = 1; @@ -34,13 +36,12 @@ function clearAll() { } function logSyncTask(gulpInst, opts) { - - process.once('exit', warn); - gulpInst.on('start', start); - gulpInst.on('stop', clear); + process.once("exit", warn); + gulpInst.on("start", start); + gulpInst.on("stop", clear); // When not running in --continue mode, we need to clear everything on error to avoid // false positives. - gulpInst.on('error', opts.continue ? clear : clearAll); + gulpInst.on("error", opts.continue ? clear : clearAll); } module.exports = logSyncTask; diff --git a/lib/versioned/^4.0.0/log/tasks-simple.js b/lib/versioned/^4.0.0/log/tasks-simple.js index 65cde515..b0b9a68c 100644 --- a/lib/versioned/^4.0.0/log/tasks-simple.js +++ b/lib/versioned/^4.0.0/log/tasks-simple.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; function logTasksSimple(nodes) { - console.log(nodes.join('\n').trim()); + console.log(nodes.join("\n").trim()); } module.exports = logTasksSimple; diff --git a/lib/versioned/^4.0.0/normalize-error.js b/lib/versioned/^4.0.0/normalize-error.js index 0f58d0c4..ca84391a 100644 --- a/lib/versioned/^4.0.0/normalize-error.js +++ b/lib/versioned/^4.0.0/normalize-error.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; // Normalize an undertaker v1 error like an undertaker v2 error function normalizeError(err) { @@ -7,18 +7,18 @@ function normalizeError(err) { return; } - var fixed0 = 'Task never defined: '; - var fixed1 = ' - did you mean? '; + var fixed0 = "Task never defined: "; + var fixed1 = " - did you mean? "; if (err.message.startsWith(fixed0)) { var task = err.message.slice(fixed0.length); var index = task.indexOf(fixed1); if (index >= 0) { - err.similar = task.slice(index + fixed1.length).split(', '); + err.similar = task.slice(index + fixed1.length).split(", "); err.task = task.slice(0, index); } else { - err.task = task + err.task = task; } } } diff --git a/lib/versioned/^5.0.0/format-error.js b/lib/versioned/^5.0.0/format-error.js index 3d8a7718..8b5dc827 100644 --- a/lib/versioned/^5.0.0/format-error.js +++ b/lib/versioned/^5.0.0/format-error.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; // Format orchestrator errors /* istanbul ignore next */ @@ -8,7 +8,7 @@ function formatError(e) { } // PluginError - if (typeof e.error.showStack === 'boolean') { + if (typeof e.error.showStack === "boolean") { return e.error.toString(); } diff --git a/lib/versioned/^5.0.0/index.js b/lib/versioned/^5.0.0/index.js index d3258b3b..1d709f32 100644 --- a/lib/versioned/^5.0.0/index.js +++ b/lib/versioned/^5.0.0/index.js @@ -1,26 +1,26 @@ -'use strict'; +"use strict"; -var fs = require('fs'); +var fs = require("fs"); -var log = require('gulplog'); -var stdout = require('mute-stdout'); -var messages = require('@gulpjs/messages'); +var log = require("gulplog"); +var stdout = require("mute-stdout"); +var messages = require("@gulpjs/messages"); -var exit = require('../../shared/exit'); +var exit = require("../../shared/exit"); -var logTasks = require('../../shared/log/tasks'); -var logEvents = require('./log/events'); -var logSyncTask = require('./log/sync-task'); -var logTasksSimple = require('./log/tasks-simple'); -var registerExports = require('../../shared/register-exports'); +var logTasks = require("../../shared/log/tasks"); +var logEvents = require("./log/events"); +var logSyncTask = require("./log/sync-task"); +var logTasksSimple = require("./log/tasks-simple"); +var registerExports = require("../../shared/register-exports"); -var copyTree = require('../../shared/log/copy-tree'); -var getTask = require('./log/get-task'); -var requireOrImport = require('../../shared/require-or-import'); +var copyTree = require("../../shared/log/copy-tree"); +var getTask = require("./log/get-task"); +var requireOrImport = require("../../shared/require-or-import"); function execute(env, opts, translate) { var tasks = opts._; - var toRun = tasks.length ? tasks : ['default']; + var toRun = tasks.length ? tasks : ["default"]; if (opts.tasksSimple || opts.tasks || opts.tasksJson) { // Mute stdout if we are listing tasks @@ -32,7 +32,7 @@ function execute(env, opts, translate) { logSyncTask(gulpInst, opts); // This is what actually loads up the gulpfile - requireOrImport(env.configPath, function(err, exported) { + requireOrImport(env.configPath, function (err, exported) { // Before import(), if require() failed we got an unhandled exception on the module level. // So console.error() & exit() were added here to mimic the old behavior as close as possible. if (err) { @@ -52,34 +52,48 @@ function execute(env, opts, translate) { } if (opts.tasks) { tree = gulpInst.tree({ deep: true }); - tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); + tree.label = translate.message({ + tag: messages.DESCRIPTION, + path: env.configPath, + }); return logTasks(tree, opts, getTask(gulpInst), translate); } if (opts.tasksJson) { tree = gulpInst.tree({ deep: true }); - tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); + tree.label = translate.message({ + tag: messages.DESCRIPTION, + path: env.configPath, + }); var output = JSON.stringify(copyTree(tree, opts)); - if (typeof opts.tasksJson === 'boolean' && opts.tasksJson) { + if (typeof opts.tasksJson === "boolean" && opts.tasksJson) { return console.log(output); } - return fs.writeFileSync(opts.tasksJson, output, 'utf-8'); + return fs.writeFileSync(opts.tasksJson, output, "utf-8"); } try { log.info({ tag: messages.GULPFILE, path: env.configPath }); - var runMethod = opts.series ? 'series' : 'parallel'; - gulpInst[runMethod](toRun)(function(err) { + var runMethod = opts.series ? "series" : "parallel"; + gulpInst[runMethod](toRun)(function (err) { if (err) { exit(1); } }); } catch (err) { if (err.task) { - log.error({ tag: messages.TASK_MISSING, task: err.task, similar: err.similar }); + log.error({ + tag: messages.TASK_MISSING, + task: err.task, + similar: err.similar, + }); } else { - log.error({ tag: messages.EXEC_ERROR, message: err.message, error: err }); + log.error({ + tag: messages.EXEC_ERROR, + message: err.message, + error: err, + }); } exit(1); } diff --git a/lib/versioned/^5.0.0/log/events.js b/lib/versioned/^5.0.0/log/events.js index af20f656..7d9d4332 100644 --- a/lib/versioned/^5.0.0/log/events.js +++ b/lib/versioned/^5.0.0/log/events.js @@ -1,32 +1,39 @@ -'use strict'; +"use strict"; -var log = require('gulplog'); -var messages = require('@gulpjs/messages'); +var log = require("gulplog"); +var messages = require("@gulpjs/messages"); -var formatError = require('../format-error'); +var formatError = require("../format-error"); // Wire up logging events function logEvents(gulpInst) { - var loggedErrors = []; - gulpInst.on('start', function(evt) { + gulpInst.on("start", function (evt) { /* istanbul ignore next */ // TODO: batch these // so when 5 tasks start at once it only logs one time with all 5 - var level = evt.branch ? 'debug' : 'info'; + var level = evt.branch ? "debug" : "info"; log[level]({ tag: messages.TASK_START, task: evt.name }); }); - gulpInst.on('stop', function(evt) { + gulpInst.on("stop", function (evt) { /* istanbul ignore next */ - var level = evt.branch ? 'debug' : 'info'; - log[level]({ tag: messages.TASK_STOP, task: evt.name, duration: evt.duration }); + var level = evt.branch ? "debug" : "info"; + log[level]({ + tag: messages.TASK_STOP, + task: evt.name, + duration: evt.duration, + }); }); - gulpInst.on('error', function(evt) { - var level = evt.branch ? 'debug' : 'error'; - log[level]({ tag: messages.TASK_FAILURE, task: evt.name, duration: evt.duration }); + gulpInst.on("error", function (evt) { + var level = evt.branch ? "debug" : "error"; + log[level]({ + tag: messages.TASK_FAILURE, + task: evt.name, + duration: evt.duration, + }); // If we haven't logged this before, log it and add to list if (loggedErrors.indexOf(evt.error) === -1) { diff --git a/lib/versioned/^5.0.0/log/get-task.js b/lib/versioned/^5.0.0/log/get-task.js index 144acb47..09b70dbd 100644 --- a/lib/versioned/^5.0.0/log/get-task.js +++ b/lib/versioned/^5.0.0/log/get-task.js @@ -1,9 +1,9 @@ -'use strict'; +"use strict"; -var isObject = require('../../../shared/is-object'); +var isObject = require("../../../shared/is-object"); function getTask(gulpInst) { - return function(name) { + return function (name) { var task = gulpInst.task(name); return { description: getDescription(task), @@ -13,13 +13,13 @@ function getTask(gulpInst) { } function getDescription(task) { - if (typeof task.description === 'string') { + if (typeof task.description === "string") { return task.description; } /* istanbul ignore else */ - if (typeof task.unwrap === 'function') { + if (typeof task.unwrap === "function") { var origFn = task.unwrap(); - if (typeof origFn.description === 'string') { + if (typeof origFn.description === "string") { return origFn.description; } } @@ -31,7 +31,7 @@ function getFlags(task) { return task.flags; } /* istanbul ignore else */ - if (typeof task.unwrap === 'function') { + if (typeof task.unwrap === "function") { var origFn = task.unwrap(); if (isObject(origFn.flags)) { return origFn.flags; diff --git a/lib/versioned/^5.0.0/log/sync-task.js b/lib/versioned/^5.0.0/log/sync-task.js index 70c38a78..5d04e66b 100644 --- a/lib/versioned/^5.0.0/log/sync-task.js +++ b/lib/versioned/^5.0.0/log/sync-task.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; -var log = require('gulplog'); -var messages = require('@gulpjs/messages'); +var log = require("gulplog"); +var messages = require("@gulpjs/messages"); var tasks = {}; @@ -12,9 +12,11 @@ function warn() { return; } - var taskNames = taskKeys.map(function(key) { - return tasks[key]; - }).join(', '); + var taskNames = taskKeys + .map(function (key) { + return tasks[key]; + }) + .join(", "); process.exitCode = 1; @@ -34,13 +36,12 @@ function clearAll() { } function logSyncTask(gulpInst, opts) { - - process.once('exit', warn); - gulpInst.on('start', start); - gulpInst.on('stop', clear); + process.once("exit", warn); + gulpInst.on("start", start); + gulpInst.on("stop", clear); // When not running in --continue mode, we need to clear everything on error to avoid // false positives. - gulpInst.on('error', opts.continue ? clear : clearAll); + gulpInst.on("error", opts.continue ? clear : clearAll); } module.exports = logSyncTask; diff --git a/lib/versioned/^5.0.0/log/tasks-simple.js b/lib/versioned/^5.0.0/log/tasks-simple.js index 65cde515..b0b9a68c 100644 --- a/lib/versioned/^5.0.0/log/tasks-simple.js +++ b/lib/versioned/^5.0.0/log/tasks-simple.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; function logTasksSimple(nodes) { - console.log(nodes.join('\n').trim()); + console.log(nodes.join("\n").trim()); } module.exports = logTasksSimple; diff --git a/test/completion.js b/test/completion.js index 3c30ad74..57dea388 100644 --- a/test/completion.js +++ b/test/completion.js @@ -1,52 +1,51 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); -var fs = require('fs'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); +var fs = require("fs"); -var gulp = require('./tool/gulp-cmd'); +var gulp = require("./tool/gulp-cmd"); -describe('flag: --completion', function() { +describe("flag: --completion", function () { + ["bash", "fish", "powershell", "zsh"].forEach(function (type) { + it("returns completion script for " + type, function (done) { + var file = path.resolve(__dirname, "../completion", type); + var expected = fs.readFileSync(file, "utf8") + "\n"; - ['bash', 'fish', 'powershell', 'zsh'].forEach(function(type) { - it('returns completion script for ' + type, function(done) { - var file = path.resolve(__dirname, '../completion', type); - var expected = fs.readFileSync(file, 'utf8') + '\n'; - - exec(gulp('--completion=' + type), cb); + exec(gulp("--completion=" + type), cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(expected); done(err); } }); }); - it('shows error message for unknown completion type', function(done) { - var expected = 'echo "gulp autocompletion rules for \'unknown\' not found"\n'; + it("shows error message for unknown completion type", function (done) { + var expected = + "echo \"gulp autocompletion rules for 'unknown' not found\"\n"; - exec(gulp('--completion=unknown'), cb); + exec(gulp("--completion=unknown"), cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(expected); done(); } }); - it('shows error message for missing completion type', function(done) { - exec(gulp('--completion'), cb); + it("shows error message for missing completion type", function (done) { + exec(gulp("--completion"), cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stderr).toMatch('Missing completion type'); - expect(stdout).toEqual(''); + expect(stderr).toMatch("Missing completion type"); + expect(stdout).toEqual(""); done(); } }); - }); diff --git a/test/config-flags-compact-tasks.js b/test/config-flags-compact-tasks.js index 57fd19a1..9cb77db9 100644 --- a/test/config-flags-compact-tasks.js +++ b/test/config-flags-compact-tasks.js @@ -1,74 +1,73 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); -var fs = require('fs'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); +var fs = require("fs"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/config/flags/compactTasks'); -var expectedDir = path.join(__dirname, 'expected'); +var baseDir = path.join(__dirname, "fixtures/config/flags/compactTasks"); +var expectedDir = path.join(__dirname, "expected"); -describe('config: flags.compactTasks', function() { - - it('Should compact task lists when `flags.compactTasks` is true in .gulp.*', function(done) { - var opts = { cwd: path.join(baseDir, 't') }; - exec(gulp('--tasks'), opts, cb); +describe("config: flags.compactTasks", function () { + it("Should compact task lists when `flags.compactTasks` is true in .gulp.*", function (done) { + var opts = { cwd: path.join(baseDir, "t") }; + exec(gulp("--tasks"), opts, cb); function cb(err, stdout, stderr) { - var filepath = path.join(expectedDir, 'flags-tasks-compact.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "flags-tasks-compact.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expected = sliceLines(expected, 2); stdout = sliceLines(stdout, 2); expect(stdout).toEqual(expected); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); done(err); } }); - it('Should not compact task lists when `flags.compactTasks` is false in .gulp.*', function(done) { - var opts = { cwd: path.join(baseDir, 'f') }; - exec(gulp('--tasks'), opts, cb); + it("Should not compact task lists when `flags.compactTasks` is false in .gulp.*", function (done) { + var opts = { cwd: path.join(baseDir, "f") }; + exec(gulp("--tasks"), opts, cb); function cb(err, stdout, stderr) { - var filepath = path.join(expectedDir, 'flags-tasks-unsorted.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "flags-tasks-unsorted.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expected = sliceLines(expected, 2); stdout = sliceLines(stdout, 2); expect(stdout).toEqual(expected); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); done(err); } }); - it('Should overridden by cli flag: --compact-tasks', function(done) { - var opts = { cwd: path.join(baseDir, 'f') }; - exec(gulp('--tasks', '--compact-tasks'), opts, cb); + it("Should overridden by cli flag: --compact-tasks", function (done) { + var opts = { cwd: path.join(baseDir, "f") }; + exec(gulp("--tasks", "--compact-tasks"), opts, cb); function cb(err, stdout, stderr) { - var filepath = path.join(expectedDir, 'flags-tasks-compact.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "flags-tasks-compact.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expected = sliceLines(expected, 2); stdout = sliceLines(stdout, 2); expect(stdout).toEqual(expected); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); done(err); } }); - it('Should overridden by cli flag: --no-compact-tasks', function(done) { - var opts = { cwd: path.join(baseDir, 't') }; - exec(gulp('--tasks', '--no-compact-tasks'), opts, cb); + it("Should overridden by cli flag: --no-compact-tasks", function (done) { + var opts = { cwd: path.join(baseDir, "t") }; + exec(gulp("--tasks", "--no-compact-tasks"), opts, cb); function cb(err, stdout, stderr) { - var filepath = path.join(expectedDir, 'flags-tasks-unsorted.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "flags-tasks-unsorted.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expected = sliceLines(expected, 2); stdout = sliceLines(stdout, 2); expect(stdout).toEqual(expected); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); done(err); } }); diff --git a/test/config-flags-continue.js b/test/config-flags-continue.js index 5764bfbb..c5bd716d 100644 --- a/test/config-flags-continue.js +++ b/test/config-flags-continue.js @@ -1,102 +1,84 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/config/flags/continue'); +var baseDir = path.join(__dirname, "fixtures/config/flags/continue"); -describe('config: flags.continue', function() { - - it('Should continue if `flags.continue` is true in .gulp.*', function(done) { - var opts = { cwd: path.join(baseDir, 't') }; +describe("config: flags.continue", function () { + it("Should continue if `flags.continue` is true in .gulp.*", function (done) { + var opts = { cwd: path.join(baseDir, "t") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); stdout = sliceLines(stdout, 1); expect(stdout).toEqual( - 'Starting \'default\'...\n' + - 'Starting \'err\'...\n' + - 'Starting \'next\'...\n' + - 'Finished \'next\' after ?\n' + - '' + "Starting 'default'...\n" + + "Starting 'err'...\n" + + "Starting 'next'...\n" + + "Finished 'next' after ?\n" + + "", ); stderr = sliceLines(stderr, 0, 2); - expect(stderr).toEqual( - '\'err\' errored after ?\n' + - 'Error: Error!' - ); + expect(stderr).toEqual("'err' errored after ?\n" + "Error: Error!"); done(); } }); - it('Should not continue if `flags.continue` is false in .gulp.*', function(done) { - var opts = { cwd: path.join(baseDir, 'f') }; + it("Should not continue if `flags.continue` is false in .gulp.*", function (done) { + var opts = { cwd: path.join(baseDir, "f") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); stdout = sliceLines(stdout, 1); expect(stdout).toEqual( - 'Starting \'default\'...\n' + - 'Starting \'err\'...\n' + - '' + "Starting 'default'...\n" + "Starting 'err'...\n" + "", ); stderr = sliceLines(stderr, 0, 2); - expect(stderr).toEqual( - '\'err\' errored after ?\n' + - 'Error: Error!' - ); + expect(stderr).toEqual("'err' errored after ?\n" + "Error: Error!"); done(); } }); - it('Should overridden by cli flag: --continue', function(done) { - var opts = { cwd: path.join(baseDir, 'f') }; - exec(gulp('--continue'), opts, cb); + it("Should overridden by cli flag: --continue", function (done) { + var opts = { cwd: path.join(baseDir, "f") }; + exec(gulp("--continue"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); stdout = sliceLines(stdout, 1); expect(stdout).toEqual( - 'Starting \'default\'...\n' + - 'Starting \'err\'...\n' + - 'Starting \'next\'...\n' + - 'Finished \'next\' after ?\n' + - '' + "Starting 'default'...\n" + + "Starting 'err'...\n" + + "Starting 'next'...\n" + + "Finished 'next' after ?\n" + + "", ); stderr = sliceLines(stderr, 0, 2); - expect(stderr).toEqual( - '\'err\' errored after ?\n' + - 'Error: Error!' - ); + expect(stderr).toEqual("'err' errored after ?\n" + "Error: Error!"); done(); } }); - it('Should overridden by cli flag: --no-continue', function(done) { - var opts = { cwd: path.join(baseDir, 't') }; - exec(gulp('--no-continue'), opts, cb); + it("Should overridden by cli flag: --no-continue", function (done) { + var opts = { cwd: path.join(baseDir, "t") }; + exec(gulp("--no-continue"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); stdout = sliceLines(stdout, 1); expect(stdout).toEqual( - 'Starting \'default\'...\n' + - 'Starting \'err\'...\n' + - '' + "Starting 'default'...\n" + "Starting 'err'...\n" + "", ); stderr = sliceLines(stderr, 0, 2); - expect(stderr).toEqual( - '\'err\' errored after ?\n' + - 'Error: Error!' - ); + expect(stderr).toEqual("'err' errored after ?\n" + "Error: Error!"); done(); } }); - }); diff --git a/test/config-flags-gulpfile.js b/test/config-flags-gulpfile.js index 4d62031c..0586e669 100644 --- a/test/config-flags-gulpfile.js +++ b/test/config-flags-gulpfile.js @@ -1,158 +1,183 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/config/flags/gulpfile'); -var prjDir = path.join(baseDir, 'prj'); +var baseDir = path.join(__dirname, "fixtures/config/flags/gulpfile"); +var prjDir = path.join(baseDir, "prj"); -describe('config: gulpfile', function() { - - it('Should configure with a .gulp.* file', function(done) { +describe("config: gulpfile", function () { + it("Should configure with a .gulp.* file", function (done) { var opts = { cwd: prjDir }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 3, 5)).toEqual( - 'This gulpfile : ' + path.join(baseDir, 'is/here/gulpfile-by-prj-cfg.js') + '\n' + - 'The current directory : ' + path.join(baseDir, 'is/here') + "This gulpfile : " + + path.join(baseDir, "is/here/gulpfile-by-prj-cfg.js") + + "\n" + + "The current directory : " + + path.join(baseDir, "is/here"), ); done(err); } }); - it('Should configure with a .gulp.* file in the directory specified by --cwd', function(done) { + it("Should configure with a .gulp.* file in the directory specified by --cwd", function (done) { var opts = { cwd: prjDir }; - exec(gulp('--cwd ../cwd'), opts, cb); + exec(gulp("--cwd ../cwd"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 3, 5)).toEqual( - 'This gulpfile : ' + path.join(baseDir, 'is/here/gulpfile-by-cwd-cfg.js') + '\n' + - 'The current directory : ' + path.join(baseDir, 'cwd') + "This gulpfile : " + + path.join(baseDir, "is/here/gulpfile-by-cwd-cfg.js") + + "\n" + + "The current directory : " + + path.join(baseDir, "cwd"), ); done(err); } }); - it('Should configure with a .gulp.* file found up', function(done) { - var opts = { cwd: path.join(prjDir, 'findup') }; + it("Should configure with a .gulp.* file found up", function (done) { + var opts = { cwd: path.join(prjDir, "findup") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 3, 5)).toEqual( - 'This gulpfile : ' + path.join(baseDir, 'is/here/gulpfile-by-prj-cfg.js') + '\n' + - 'The current directory : ' + path.join(baseDir, 'is/here') + "This gulpfile : " + + path.join(baseDir, "is/here/gulpfile-by-prj-cfg.js") + + "\n" + + "The current directory : " + + path.join(baseDir, "is/here"), ); done(err); } }); - it('Should configure with a .gulp.* file found up the directory specified by --cwd', function(done) { + it("Should configure with a .gulp.* file found up the directory specified by --cwd", function (done) { var opts = { cwd: prjDir }; - exec(gulp('--cwd ../cwd/findup'), opts, cb); + exec(gulp("--cwd ../cwd/findup"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 3, 5)).toEqual( - 'This gulpfile : ' + path.join(baseDir, 'is/here/gulpfile-by-cwd-cfg.js') + '\n' + - 'The current directory : ' + path.join(baseDir, 'cwd/findup') + "This gulpfile : " + + path.join(baseDir, "is/here/gulpfile-by-cwd-cfg.js") + + "\n" + + "The current directory : " + + path.join(baseDir, "cwd/findup"), ); done(err); } }); - it('Should ignore a ./gulp.* file if another directory is specified by --cwd', function(done) { + it("Should ignore a ./gulp.* file if another directory is specified by --cwd", function (done) { var opts = { cwd: prjDir }; - exec(gulp('--cwd ../is/here'), opts, cb); + exec(gulp("--cwd ../is/here"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 3, 5)).toEqual( - 'This gulpfile : ' + path.join(baseDir, 'is/here/gulpfile.js') + '\n' + - 'The current directory : ' + path.join(baseDir, 'is/here') + "This gulpfile : " + + path.join(baseDir, "is/here/gulpfile.js") + + "\n" + + "The current directory : " + + path.join(baseDir, "is/here"), ); done(err); } }); - it('Should ignore a ./.gulp.* file if another gulpfile is specified by --gulpfile', function(done) { + it("Should ignore a ./.gulp.* file if another gulpfile is specified by --gulpfile", function (done) { var opts = { cwd: prjDir }; - exec(gulp('--gulpfile ../is/here/gulpfile.js'), opts, cb); + exec(gulp("--gulpfile ../is/here/gulpfile.js"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 3, 5)).toEqual( - 'This gulpfile : ' + path.join(baseDir, 'is/here/gulpfile.js') + '\n' + - 'The current directory : ' + path.join(baseDir, 'is/here') + "This gulpfile : " + + path.join(baseDir, "is/here/gulpfile.js") + + "\n" + + "The current directory : " + + path.join(baseDir, "is/here"), ); done(err); } }); - it('Should overridden by cli flag: --gulpfile', function(done) { - var opts = { cwd: path.join(baseDir, 'override-by-cliflag') }; - exec(gulp('--gulpfile mygulpfile.js'), opts, cb); + it("Should overridden by cli flag: --gulpfile", function (done) { + var opts = { cwd: path.join(baseDir, "override-by-cliflag") }; + exec(gulp("--gulpfile mygulpfile.js"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 2, 3)).toEqual( - 'Gulpfile : ' + path.join(baseDir, 'override-by-cliflag/mygulpfile.js') + "Gulpfile : " + path.join(baseDir, "override-by-cliflag/mygulpfile.js"), ); done(err); } }); - it('Should autoload a module for loading a specified gulpfile', function(done) { + it("Should autoload a module for loading a specified gulpfile", function (done) { this.timeout(0); - var opts = { cwd: path.join(baseDir, 'autoload') }; - exec(gulp('dist'), opts, cb); + var opts = { cwd: path.join(baseDir, "autoload") }; + exec(gulp("dist"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Loaded external module: @babel/register'); - expect(sliceLines(stdout, 5, 6)).toEqual('clean!'); - expect(sliceLines(stdout, 8, 9)).toEqual('build!'); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Loaded external module: @babel/register", + ); + expect(sliceLines(stdout, 5, 6)).toEqual("clean!"); + expect(sliceLines(stdout, 8, 9)).toEqual("build!"); done(err); } }); - it('Should output error logs of autoload if fail to load module for a specified gulpfile', function(done) { - var opts = { cwd: path.join(baseDir, 'autoload-fail') }; - exec(gulp('dist'), opts, cb); + it("Should output error logs of autoload if fail to load module for a specified gulpfile", function (done) { + var opts = { cwd: path.join(baseDir, "autoload-fail") }; + exec(gulp("dist"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stderr).not.toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Failed to load external module: coffeescript/register'); - expect(sliceLines(stdout, 1, 2)).toMatch('Error: Cannot find module \'coffeescript/register\''); + expect(stderr).not.toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Failed to load external module: coffeescript/register", + ); + expect(sliceLines(stdout, 1, 2)).toMatch( + "Error: Cannot find module 'coffeescript/register'", + ); done(); } }); - it('Should not find up but use config file in current directory', function(done) { - var opts = { cwd: path.join(baseDir, 'use-current-cfg/current-dir') }; + it("Should not find up but use config file in current directory", function (done) { + var opts = { cwd: path.join(baseDir, "use-current-cfg/current-dir") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 2, 3)).toEqual(path.join(opts.cwd, 'gulpfile-2.js')); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 2, 3)).toEqual( + path.join(opts.cwd, "gulpfile-2.js"), + ); done(err); } }); diff --git a/test/config-flags-log-level.js b/test/config-flags-log-level.js index 8d187cf0..0f2fc00a 100644 --- a/test/config-flags-log-level.js +++ b/test/config-flags-log-level.js @@ -1,204 +1,204 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var eraseTime = require('./tool/erase-time'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var eraseTime = require("./tool/erase-time"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/config/flags/logLevel'); +var baseDir = path.join(__dirname, "fixtures/config/flags/logLevel"); -describe('config: flag.logLevel', function() { - - describe('log level 3 by default', function() { - - it('Should output error log', function(done) { +describe("config: flag.logLevel", function () { + describe("log level 3 by default", function () { + it("Should output error log", function (done) { var opts = { cwd: baseDir }; - exec(gulp('--gulpfile x'), opts, cb); + exec(gulp("--gulpfile x"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); - expect(eraseTime(stderr)).toEqual('No gulpfile found\n'); + expect(stdout).toEqual(""); + expect(eraseTime(stderr)).toEqual("No gulpfile found\n"); done(); } }); - it('Should output warn log', function(done) { + it("Should output warn log", function (done) { var opts = { cwd: baseDir }; - exec(gulp('--preload mymodule'), opts, cb); + exec(gulp("--preload mymodule"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 1, 3)).toMatch( - 'Failed to preload external module: mymodule\n' + - 'Error: Cannot find module \'mymodule\' from \''); + "Failed to preload external module: mymodule\n" + + "Error: Cannot find module 'mymodule' from '", + ); done(); } }); - it('Should output info log', function(done) { + it("Should output info log", function (done) { var opts = { cwd: baseDir }; - exec(gulp('--harmony'), opts, cb); + exec(gulp("--harmony"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 0, 2)).toMatch( - 'Node flags detected: --harmony\n' + - 'Respawned to PID: '); + "Node flags detected: --harmony\n" + "Respawned to PID: ", + ); done(err); } }); }); - describe('log level 1 by config `flags.logLevel`', function() { - - it('Should output error log', function(done) { + describe("log level 1 by config `flags.logLevel`", function () { + it("Should output error log", function (done) { var opts = { cwd: baseDir }; - exec(gulp('--gulpfile x'), opts, cb); + exec(gulp("--gulpfile x"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); - expect(eraseTime(stderr)).toEqual('No gulpfile found\n'); + expect(stdout).toEqual(""); + expect(eraseTime(stderr)).toEqual("No gulpfile found\n"); done(); } }); - it('Should output warn log', function(done) { - var opts = { cwd: path.join(baseDir, 'L') }; - exec(gulp('--preload mymodule'), opts, cb); + it("Should output warn log", function (done) { + var opts = { cwd: path.join(baseDir, "L") }; + exec(gulp("--preload mymodule"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); + expect(stderr).toEqual(""); done(); } }); - it('Should output info log', function(done) { - var opts = { cwd: path.join(baseDir, 'L') }; - exec(gulp('--harmony'), opts, cb); + it("Should output info log", function (done) { + var opts = { cwd: path.join(baseDir, "L") }; + exec(gulp("--harmony"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(stdout).toEqual(''); + expect(stderr).toEqual(""); + expect(stdout).toEqual(""); done(err); } }); }); - describe('log level 2 by config `flags.logLevel`', function() { - it('Should output error log', function(done) { - var opts = { cwd: path.join(baseDir, 'LL') }; - exec(gulp('--gulpfile x'), opts, cb); + describe("log level 2 by config `flags.logLevel`", function () { + it("Should output error log", function (done) { + var opts = { cwd: path.join(baseDir, "LL") }; + exec(gulp("--gulpfile x"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); - expect(eraseTime(stderr)).toEqual('No gulpfile found\n'); + expect(stdout).toEqual(""); + expect(eraseTime(stderr)).toEqual("No gulpfile found\n"); done(); } }); - it('Should output warn log', function(done) { - var opts = { cwd: path.join(baseDir, 'LL') }; - exec(gulp('--preload mymodule'), opts, cb); + it("Should output warn log", function (done) { + var opts = { cwd: path.join(baseDir, "LL") }; + exec(gulp("--preload mymodule"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseTime(stdout)).toMatch( - 'Failed to preload external module: mymodule\n' + - 'Error: Cannot find module \'mymodule\' from \''); + "Failed to preload external module: mymodule\n" + + "Error: Cannot find module 'mymodule' from '", + ); done(); } }); - it('Should output info log', function(done) { - var opts = { cwd: path.join(baseDir, 'LL') }; - exec(gulp('--harmony'), opts, cb); + it("Should output info log", function (done) { + var opts = { cwd: path.join(baseDir, "LL") }; + exec(gulp("--harmony"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(stdout).toEqual(''); + expect(stderr).toEqual(""); + expect(stdout).toEqual(""); done(err); } }); }); - describe('log level 3 by config `flags.logLevel`', function() { - it('Should output error log', function(done) { - var opts = { cwd: path.join(baseDir, 'LLL') }; - exec(gulp('--gulpfile x'), opts, cb); + describe("log level 3 by config `flags.logLevel`", function () { + it("Should output error log", function (done) { + var opts = { cwd: path.join(baseDir, "LLL") }; + exec(gulp("--gulpfile x"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); - expect(eraseTime(stderr)).toEqual('No gulpfile found\n'); + expect(stdout).toEqual(""); + expect(eraseTime(stderr)).toEqual("No gulpfile found\n"); done(); } }); - it('Should output warn log', function(done) { - var opts = { cwd: path.join(baseDir, 'LLL') }; - exec(gulp('--preload mymodule'), opts, cb); + it("Should output warn log", function (done) { + var opts = { cwd: path.join(baseDir, "LLL") }; + exec(gulp("--preload mymodule"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseTime(stdout)).toMatch( - 'Failed to preload external module: mymodule\n' + - 'Error: Cannot find module \'mymodule\' from \''); + "Failed to preload external module: mymodule\n" + + "Error: Cannot find module 'mymodule' from '", + ); done(); } }); - it('Should output info log', function(done) { - var opts = { cwd: path.join(baseDir, 'LLL') }; - exec(gulp('--harmony'), opts, cb); + it("Should output info log", function (done) { + var opts = { cwd: path.join(baseDir, "LLL") }; + exec(gulp("--harmony"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 0, 2)).toMatch( - 'Node flags detected: --harmony\n' + - 'Respawned to PID: '); + "Node flags detected: --harmony\n" + "Respawned to PID: ", + ); done(err); } }); }); - describe('Overridden by cli flag: -L/-LL/-LLL', function() { - it('Should not output info log by -L', function(done) { - var opts = { cwd: path.join(baseDir, 'LLL') }; - exec(gulp('-L', '--preload mymodule'), opts, cb); + describe("Overridden by cli flag: -L/-LL/-LLL", function () { + it("Should not output info log by -L", function (done) { + var opts = { cwd: path.join(baseDir, "LLL") }; + exec(gulp("-L", "--preload mymodule"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stdout).toEqual(''); - expect(stderr).toEqual(''); + expect(stdout).toEqual(""); + expect(stderr).toEqual(""); done(err); } }); - it('Should output info log by -LLL', function(done) { - var opts = { cwd: path.join(baseDir, 'L') }; - exec(gulp('-LLL', '--harmony'), opts, cb); + it("Should output info log by -LLL", function (done) { + var opts = { cwd: path.join(baseDir, "L") }; + exec(gulp("-LLL", "--harmony"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 0, 2)).toMatch( - 'Node flags detected: --harmony\n' + - 'Respawned to PID: '); + "Node flags detected: --harmony\n" + "Respawned to PID: ", + ); done(err); } }); diff --git a/test/config-flags-node-flags.js b/test/config-flags-node-flags.js index eb9c00cb..4f945f11 100644 --- a/test/config-flags-node-flags.js +++ b/test/config-flags-node-flags.js @@ -1,85 +1,90 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/config/flags/nodeFlags'); +var baseDir = path.join(__dirname, "fixtures/config/flags/nodeFlags"); -describe('config: nodeFlags', function() { - - it('Should respawn by a node flag: --lazy', function(done) { - var opts = { cwd: path.join(baseDir, 'string') }; +describe("config: nodeFlags", function () { + it("Should respawn by a node flag: --lazy", function (done) { + var opts = { cwd: path.join(baseDir, "string") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Node flags detected: --lazy'); - expect(sliceLines(stdout, 1, 3)).toMatch('Respawned to PID: '); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual("Node flags detected: --lazy"); + expect(sliceLines(stdout, 1, 3)).toMatch("Respawned to PID: "); done(err); } }); - it('Should respawn by a node flag: --lazy --trace-deprecation', function(done) { - var opts = { cwd: path.join(baseDir, 'array') }; + it("Should respawn by a node flag: --lazy --trace-deprecation", function (done) { + var opts = { cwd: path.join(baseDir, "array") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Node flags detected: --lazy, --trace-deprecation'); - expect(sliceLines(stdout, 1, 3)).toMatch('Respawned to PID: '); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Node flags detected: --lazy, --trace-deprecation", + ); + expect(sliceLines(stdout, 1, 3)).toMatch("Respawned to PID: "); done(err); } }); - it('Should respawn with flags in config file and command line', function(done) { - var opts = { cwd: path.join(baseDir, 'string') }; - exec(gulp('--harmony'), opts, cb); + it("Should respawn with flags in config file and command line", function (done) { + var opts = { cwd: path.join(baseDir, "string") }; + exec(gulp("--harmony"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Node flags detected: --lazy, --harmony'); - expect(sliceLines(stdout, 1, 3)).toMatch('Respawned to PID: '); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Node flags detected: --lazy, --harmony", + ); + expect(sliceLines(stdout, 1, 3)).toMatch("Respawned to PID: "); done(err); } }); - it('Should not respawn when a node flag is specified to undefined', function(done) { - var opts = { cwd: path.join(baseDir, 'undefined') }; + it("Should not respawn when a node flag is specified to undefined", function (done) { + var opts = { cwd: path.join(baseDir, "undefined") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toMatch('Using gulpfile '); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toMatch("Using gulpfile "); expect(sliceLines(stdout, 1)).toEqual( - 'Starting \'default\'...\n' + - 'Default\n' + - 'Finished \'default\' after ?\n' + - ''); + "Starting 'default'...\n" + + "Default\n" + + "Finished 'default' after ?\n" + + "", + ); done(err); } }); - it('Should not respawn when a node flag is specified to null', function(done) { - var opts = { cwd: path.join(baseDir, 'null') }; + it("Should not respawn when a node flag is specified to null", function (done) { + var opts = { cwd: path.join(baseDir, "null") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toMatch('Using gulpfile '); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toMatch("Using gulpfile "); expect(sliceLines(stdout, 1)).toEqual( - 'Starting \'default\'...\n' + - 'Default\n' + - 'Finished \'default\' after ?\n' + - ''); + "Starting 'default'...\n" + + "Default\n" + + "Finished 'default' after ?\n" + + "", + ); done(err); } }); diff --git a/test/config-flags-preload.js b/test/config-flags-preload.js index e406da09..d3708fe0 100644 --- a/test/config-flags-preload.js +++ b/test/config-flags-preload.js @@ -1,89 +1,119 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/config/flags/preload'); +var baseDir = path.join(__dirname, "fixtures/config/flags/preload"); -describe('config: preload', function() { - - it('Should configure with an array in a .gulp.* file', function(done) { - var opts = { cwd: path.join(baseDir, 'array') }; +describe("config: preload", function () { + it("Should configure with an array in a .gulp.* file", function (done) { + var opts = { cwd: path.join(baseDir, "array") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Preloading external module: ./preload_one'); - expect(sliceLines(stdout, 1, 2)).toEqual('Preloaded external module: ./preload_one'); - expect(sliceLines(stdout, 2, 3)).toEqual('Preloading external module: ./preload_two'); - expect(sliceLines(stdout, 3, 4)).toEqual('Preloaded external module: ./preload_two'); - expect(sliceLines(stdout, 6, 7)).toEqual('preload one!'); - expect(sliceLines(stdout, 7, 8)).toEqual('preload two!'); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Preloading external module: ./preload_one", + ); + expect(sliceLines(stdout, 1, 2)).toEqual( + "Preloaded external module: ./preload_one", + ); + expect(sliceLines(stdout, 2, 3)).toEqual( + "Preloading external module: ./preload_two", + ); + expect(sliceLines(stdout, 3, 4)).toEqual( + "Preloaded external module: ./preload_two", + ); + expect(sliceLines(stdout, 6, 7)).toEqual("preload one!"); + expect(sliceLines(stdout, 7, 8)).toEqual("preload two!"); done(err); } }); - it('Should configure with a string in a .gulp.* file', function(done) { - var opts = { cwd: path.join(baseDir, 'string') }; + it("Should configure with a string in a .gulp.* file", function (done) { + var opts = { cwd: path.join(baseDir, "string") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Preloading external module: ./preload'); - expect(sliceLines(stdout, 1, 2)).toEqual('Preloaded external module: ./preload'); - expect(sliceLines(stdout, 4, 5)).toEqual('hello preload!'); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Preloading external module: ./preload", + ); + expect(sliceLines(stdout, 1, 2)).toEqual( + "Preloaded external module: ./preload", + ); + expect(sliceLines(stdout, 4, 5)).toEqual("hello preload!"); done(err); } }); - it('Combines --preload flag with .gulp.* file flags.preload', function(done) { - var opts = { cwd: path.join(baseDir, 'join-flags') }; - exec(gulp('--preload ./preload_one'), opts, cb); + it("Combines --preload flag with .gulp.* file flags.preload", function (done) { + var opts = { cwd: path.join(baseDir, "join-flags") }; + exec(gulp("--preload ./preload_one"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Preloading external module: ./preload_one'); - expect(sliceLines(stdout, 1, 2)).toEqual('Preloaded external module: ./preload_one'); - expect(sliceLines(stdout, 2, 3)).toEqual('Preloading external module: ./preload_two'); - expect(sliceLines(stdout, 3, 4)).toEqual('Preloaded external module: ./preload_two'); - expect(sliceLines(stdout, 6, 7)).toEqual('preload one!'); - expect(sliceLines(stdout, 7, 8)).toEqual('preload two!'); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Preloading external module: ./preload_one", + ); + expect(sliceLines(stdout, 1, 2)).toEqual( + "Preloaded external module: ./preload_one", + ); + expect(sliceLines(stdout, 2, 3)).toEqual( + "Preloading external module: ./preload_two", + ); + expect(sliceLines(stdout, 3, 4)).toEqual( + "Preloaded external module: ./preload_two", + ); + expect(sliceLines(stdout, 6, 7)).toEqual("preload one!"); + expect(sliceLines(stdout, 7, 8)).toEqual("preload two!"); done(err); } }); - it('resolves relative requires against cwd', function(done) { - var opts = { cwd: path.join(__dirname, 'fixtures/config') }; - exec(gulp('--cwd flags/preload/with-cwd'), opts, cb); + it("resolves relative requires against cwd", function (done) { + var opts = { cwd: path.join(__dirname, "fixtures/config") }; + exec(gulp("--cwd flags/preload/with-cwd"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Preloading external module: ../preload'); - expect(sliceLines(stdout, 1, 2)).toEqual('Preloaded external module: ../preload'); - expect(sliceLines(stdout, 5, 6)).toEqual('hello preload!'); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Preloading external module: ../preload", + ); + expect(sliceLines(stdout, 1, 2)).toEqual( + "Preloaded external module: ../preload", + ); + expect(sliceLines(stdout, 5, 6)).toEqual("hello preload!"); done(err); } }); - it('works with absolute paths, ignoring cwd', function(done) { - var opts = { cwd: path.join(__dirname, 'fixtures/config') }; - exec(gulp('--cwd flags/preload/with-absolute'), opts, cb); + it("works with absolute paths, ignoring cwd", function (done) { + var opts = { cwd: path.join(__dirname, "fixtures/config") }; + exec(gulp("--cwd flags/preload/with-absolute"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var absolute = path.join(__dirname, './fixtures/config/flags/preload/preload'); - expect(sliceLines(stdout, 0, 1)).toEqual('Preloading external module: ' + absolute); - expect(sliceLines(stdout, 1, 2)).toEqual('Preloaded external module: ' + absolute); - expect(sliceLines(stdout, 5, 6)).toEqual('hello preload!'); + expect(stderr).toEqual(""); + var absolute = path.join( + __dirname, + "./fixtures/config/flags/preload/preload", + ); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Preloading external module: " + absolute, + ); + expect(sliceLines(stdout, 1, 2)).toEqual( + "Preloaded external module: " + absolute, + ); + expect(sliceLines(stdout, 5, 6)).toEqual("hello preload!"); done(err); } }); diff --git a/test/config-flags-series.js b/test/config-flags-series.js index b298322a..e456e9f5 100644 --- a/test/config-flags-series.js +++ b/test/config-flags-series.js @@ -1,83 +1,82 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/config/flags/series'); +var baseDir = path.join(__dirname, "fixtures/config/flags/series"); -describe('config: flags.series', function() { - - it('Should run in series if `flags.series` is true in .gulp.*', function(done) { - var opts = { cwd: path.join(baseDir, 't') }; - exec(gulp('task1', 'task2'), opts, cb); +describe("config: flags.series", function () { + it("Should run in series if `flags.series` is true in .gulp.*", function (done) { + var opts = { cwd: path.join(baseDir, "t") }; + exec(gulp("task1", "task2"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 1)).toEqual( - 'Starting \'task1\'...\n' + - 'Finished \'task1\' after ?\n' + - 'Starting \'task2\'...\n' + - 'Finished \'task2\' after ?\n' + - '' + "Starting 'task1'...\n" + + "Finished 'task1' after ?\n" + + "Starting 'task2'...\n" + + "Finished 'task2' after ?\n" + + "", ); done(); } }); - it('Should run in parallel if `flags.series` is false in .gulp.*', function(done) { - var opts = { cwd: path.join(baseDir, 'f') }; - exec(gulp('task1', 'task2'), opts, cb); + it("Should run in parallel if `flags.series` is false in .gulp.*", function (done) { + var opts = { cwd: path.join(baseDir, "f") }; + exec(gulp("task1", "task2"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 1)).toEqual( - 'Starting \'task1\'...\n' + - 'Starting \'task2\'...\n' + - 'Finished \'task2\' after ?\n' + - 'Finished \'task1\' after ?\n' + - '' + "Starting 'task1'...\n" + + "Starting 'task2'...\n" + + "Finished 'task2' after ?\n" + + "Finished 'task1' after ?\n" + + "", ); done(); } }); - it('Should overridden by cli flag: --series', function(done) { - var opts = { cwd: path.join(baseDir, 'f') }; - exec(gulp('--series', 'task1', 'task2'), opts, cb); + it("Should overridden by cli flag: --series", function (done) { + var opts = { cwd: path.join(baseDir, "f") }; + exec(gulp("--series", "task1", "task2"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 1)).toEqual( - 'Starting \'task1\'...\n' + - 'Finished \'task1\' after ?\n' + - 'Starting \'task2\'...\n' + - 'Finished \'task2\' after ?\n' + - '' + "Starting 'task1'...\n" + + "Finished 'task1' after ?\n" + + "Starting 'task2'...\n" + + "Finished 'task2' after ?\n" + + "", ); done(); } }); - it('Should overridden by cli flag: --no-series', function(done) { - var opts = { cwd: path.join(baseDir, 't') }; - exec(gulp('--no-series', 'task1', 'task2'), opts, cb); + it("Should overridden by cli flag: --no-series", function (done) { + var opts = { cwd: path.join(baseDir, "t") }; + exec(gulp("--no-series", "task1", "task2"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 1)).toEqual( - 'Starting \'task1\'...\n' + - 'Starting \'task2\'...\n' + - 'Finished \'task2\' after ?\n' + - 'Finished \'task1\' after ?\n' + - '' + "Starting 'task1'...\n" + + "Starting 'task2'...\n" + + "Finished 'task2' after ?\n" + + "Finished 'task1' after ?\n" + + "", ); done(); } diff --git a/test/config-flags-silent.js b/test/config-flags-silent.js index 527bbc8f..d2f8b240 100644 --- a/test/config-flags-silent.js +++ b/test/config-flags-silent.js @@ -1,70 +1,64 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/config/flags/silent'); +var baseDir = path.join(__dirname, "fixtures/config/flags/silent"); -describe('config: flags.silent', function() { - - it('Should be silent if `flags.silent` is true in .gulp.*', function(done) { - var opts = { cwd: path.join(baseDir, 't') }; +describe("config: flags.silent", function () { + it("Should be silent if `flags.silent` is true in .gulp.*", function (done) { + var opts = { cwd: path.join(baseDir, "t") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(stdout).toEqual(''); + expect(stderr).toEqual(""); + expect(stdout).toEqual(""); done(err); } }); - it('Should not be silent if `flags.silent` is false in .gulp.*', function(done) { - var opts = { cwd: path.join(baseDir, 'f') }; + it("Should not be silent if `flags.silent` is false in .gulp.*", function (done) { + var opts = { cwd: path.join(baseDir, "f") }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 1)).toEqual( - 'Starting \'default\'...\n' + - 'Finished \'default\' after ?\n' + - '' + "Starting 'default'...\n" + "Finished 'default' after ?\n" + "", ); done(err); } }); - it('Should overridden by cli flag: --silent', function(done) { - var opts = { cwd: path.join(baseDir, 'f') }; - exec(gulp('--silent'), opts, cb); + it("Should overridden by cli flag: --silent", function (done) { + var opts = { cwd: path.join(baseDir, "f") }; + exec(gulp("--silent"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(stdout).toEqual(''); + expect(stderr).toEqual(""); + expect(stdout).toEqual(""); done(err); } }); - it('Should overridden by cli flag: --no-silent', function(done) { - var opts = { cwd: path.join(baseDir, 't') }; - exec(gulp('--no-silent'), opts, cb); + it("Should overridden by cli flag: --no-silent", function (done) { + var opts = { cwd: path.join(baseDir, "t") }; + exec(gulp("--no-silent"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 1)).toEqual( - 'Starting \'default\'...\n' + - 'Finished \'default\' after ?\n' + - '' + "Starting 'default'...\n" + "Finished 'default' after ?\n" + "", ); done(err); } }); - }); diff --git a/test/config-flags-sort-tasks.js b/test/config-flags-sort-tasks.js index 197f8d39..217726a0 100644 --- a/test/config-flags-sort-tasks.js +++ b/test/config-flags-sort-tasks.js @@ -1,68 +1,66 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); -var fs = require('fs'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); +var fs = require("fs"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/config/flags/sortTasks'); -var expectedDir = path.join(__dirname, 'expected'); +var baseDir = path.join(__dirname, "fixtures/config/flags/sortTasks"); +var expectedDir = path.join(__dirname, "expected"); -describe('config: flags.sortTasks', function() { - - it('Should sort top tasks in task list when `flags.sortTasks` is true in .gulp.*', function(done) { - var opts = { cwd: path.join(baseDir, 't') }; - exec(gulp('--tasks'), opts, cb); +describe("config: flags.sortTasks", function () { + it("Should sort top tasks in task list when `flags.sortTasks` is true in .gulp.*", function (done) { + var opts = { cwd: path.join(baseDir, "t") }; + exec(gulp("--tasks"), opts, cb); function cb(err, stdout, stderr) { - var filepath = path.join(expectedDir, 'flags-tasks-sorted.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "flags-tasks-sorted.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 2)).toEqual(sliceLines(expected, 2)); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); done(err); } }); - it('Should sort top tasks in task list when `flags.sortTasks` is false in .gulp.*', function(done) { - var opts = { cwd: path.join(baseDir, 'f') }; - exec(gulp('--tasks'), opts, cb); + it("Should sort top tasks in task list when `flags.sortTasks` is false in .gulp.*", function (done) { + var opts = { cwd: path.join(baseDir, "f") }; + exec(gulp("--tasks"), opts, cb); function cb(err, stdout, stderr) { - var filepath = path.join(expectedDir, 'flags-tasks-unsorted.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "flags-tasks-unsorted.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 2)).toEqual(sliceLines(expected, 2)); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); done(err); } }); - it('Should overridden by cli flag: --sort-tasks', function(done) { - var opts = { cwd: path.join(baseDir, 'f') }; - exec(gulp('--tasks', '--sort-tasks'), opts, cb); + it("Should overridden by cli flag: --sort-tasks", function (done) { + var opts = { cwd: path.join(baseDir, "f") }; + exec(gulp("--tasks", "--sort-tasks"), opts, cb); function cb(err, stdout, stderr) { - var filepath = path.join(expectedDir, 'flags-tasks-sorted.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "flags-tasks-sorted.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 2)).toEqual(sliceLines(expected, 2)); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); done(err); } }); - it('Should overridden by cli flag: --no-sort-tasks', function(done) { - var opts = { cwd: path.join(baseDir, 't') }; - exec(gulp('--tasks', '--no-sort-tasks'), opts, cb); + it("Should overridden by cli flag: --no-sort-tasks", function (done) { + var opts = { cwd: path.join(baseDir, "t") }; + exec(gulp("--tasks", "--no-sort-tasks"), opts, cb); function cb(err, stdout, stderr) { - var filepath = path.join(expectedDir, 'flags-tasks-unsorted.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "flags-tasks-unsorted.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 2)).toEqual(sliceLines(expected, 2)); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); done(err); } }); - }); diff --git a/test/config-flags-tasks-depth.js b/test/config-flags-tasks-depth.js index 68a09037..a5136eed 100644 --- a/test/config-flags-tasks-depth.js +++ b/test/config-flags-tasks-depth.js @@ -1,40 +1,39 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); -var fs = require('fs'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); +var fs = require("fs"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/config/flags/tasksDepth'); -var expectedDir = path.join(__dirname, 'expected'); +var baseDir = path.join(__dirname, "fixtures/config/flags/tasksDepth"); +var expectedDir = path.join(__dirname, "expected"); -describe('config: flags.tasksDepth', function() { - - it('Should limit depth of task list when `flags.tasksDepth` is specified', function(done) { +describe("config: flags.tasksDepth", function () { + it("Should limit depth of task list when `flags.tasksDepth` is specified", function (done) { var opts = { cwd: baseDir }; - exec(gulp('--tasks'), opts, cb); + exec(gulp("--tasks"), opts, cb); function cb(err, stdout, stderr) { - var filepath = path.join(expectedDir, 'flags-tasks-depth4.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "flags-tasks-depth4.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 2)).toEqual(sliceLines(expected, 2)); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); done(err); } }); - it('Should overridden by cli flag: --tasks-depth', function(done) { + it("Should overridden by cli flag: --tasks-depth", function (done) { var opts = { cwd: baseDir }; - exec(gulp('--tasks', '--tasks-depth', '2'), opts, cb); + exec(gulp("--tasks", "--tasks-depth", "2"), opts, cb); function cb(err, stdout, stderr) { - var filepath = path.join(expectedDir, 'flags-tasks-depth2.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "flags-tasks-depth2.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 2)).toEqual(sliceLines(expected, 2)); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); done(err); } }); diff --git a/test/config-message-function.js b/test/config-message-function.js index 3a6eae5a..cdf40905 100644 --- a/test/config-message-function.js +++ b/test/config-message-function.js @@ -1,423 +1,433 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); -var fs = require('fs'); -var os = require('os'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); +var fs = require("fs"); +var os = require("os"); -var tildify = require('../lib/shared/tildify'); +var tildify = require("../lib/shared/tildify"); -var baseDir = path.join(__dirname, 'fixtures/config/theming'); -var expectedDir = path.join(__dirname, 'expected/config/theming'); +var baseDir = path.join(__dirname, "fixtures/config/theming"); +var expectedDir = path.join(__dirname, "expected/config/theming"); -var eraseTime = require('./tool/erase-time'); -var eraseLapse = require('./tool/erase-lapse'); -var gulp = require('./tool/gulp-cmd'); +var eraseTime = require("./tool/erase-time"); +var eraseLapse = require("./tool/erase-lapse"); +var gulp = require("./tool/gulp-cmd"); -describe('config: message function', function() { - - it('can change USAGE with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'USAGE'); - var expected = fs.readFileSync(path.join(expectedDir, 'usage.txt'), 'utf8'); +describe("config: message function", function () { + it("can change USAGE with .gulp.*", function (done) { + var cwd = path.join(baseDir, "USAGE"); + var expected = fs.readFileSync(path.join(expectedDir, "usage.txt"), "utf8"); var opts = { cwd: cwd }; - exec(gulp('--help'), opts, cb); + exec(gulp("--help"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(expected); done(err); } }); - it('can change flag descriptions with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'flags'); - var expected = fs.readFileSync(path.join(expectedDir, 'flags.txt'), 'utf8'); + it("can change flag descriptions with .gulp.*", function (done) { + var cwd = path.join(baseDir, "flags"); + var expected = fs.readFileSync(path.join(expectedDir, "flags.txt"), "utf8"); var opts = { cwd: cwd }; - exec(gulp('--help'), opts, cb); + exec(gulp("--help"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(expected); done(err); } }); - it('can change DESCRIPTION with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'DESCRIPTION'); - var expected = '**DESCRIPTION**\n' + - '└── default\n'; + it("can change DESCRIPTION with .gulp.*", function (done) { + var cwd = path.join(baseDir, "DESCRIPTION"); + var expected = "**DESCRIPTION**\n" + "└── default\n"; var opts = { cwd: cwd }; - exec(gulp('--tasks'), opts, cb); + exec(gulp("--tasks"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(expected); done(err); } }); - it('can remove DESCRIPTION line output with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'DESCRIPTION/remove'); - var expected = '└── default\n'; + it("can remove DESCRIPTION line output with .gulp.*", function (done) { + var cwd = path.join(baseDir, "DESCRIPTION/remove"); + var expected = "└── default\n"; var opts = { cwd: cwd }; - exec(gulp('--tasks'), opts, cb); + exec(gulp("--tasks"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(expected); done(err); } }); - it('can change DESCRIPTION for tasks-json with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'DESCRIPTION'); - var expected = JSON.stringify({ - label: '**DESCRIPTION**', - nodes: [{ - label: 'default', - type: 'task', - nodes: [], - }], - }) + '\n'; + it("can change DESCRIPTION for tasks-json with .gulp.*", function (done) { + var cwd = path.join(baseDir, "DESCRIPTION"); + var expected = + JSON.stringify({ + label: "**DESCRIPTION**", + nodes: [ + { + label: "default", + type: "task", + nodes: [], + }, + ], + }) + "\n"; var opts = { cwd: cwd }; - exec(gulp('--tasks-json'), opts, cb); + exec(gulp("--tasks-json"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(expected); done(err); } }); - it('can change PRELOAD_BEFORE with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'PRELOAD_BEFORE'); - var expected = 'PRELOADING **./preload**!\n'; + it("can change PRELOAD_BEFORE with .gulp.*", function (done) { + var cwd = path.join(baseDir, "PRELOAD_BEFORE"); + var expected = "PRELOADING **./preload**!\n"; var opts = { cwd: cwd }; - exec(gulp('--preload ./preload'), opts, cb); + exec(gulp("--preload ./preload"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseLapse(eraseTime(stdout))).toEqual(expected); done(err); } }); - it('can change PRELOAD_SUCCESS with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'PRELOAD_SUCCESS'); - var expected = 'PRELOADED **./preload**!\n'; + it("can change PRELOAD_SUCCESS with .gulp.*", function (done) { + var cwd = path.join(baseDir, "PRELOAD_SUCCESS"); + var expected = "PRELOADED **./preload**!\n"; var opts = { cwd: cwd }; - exec(gulp('--preload ./preload'), opts, cb); + exec(gulp("--preload ./preload"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseLapse(eraseTime(stdout))).toEqual(expected); done(err); } }); - it('can change LOADER_SUCCESS with .gulp.*', function(done) { + it("can change LOADER_SUCCESS with .gulp.*", function (done) { this.timeout(0); - var cwd = path.join(baseDir, 'LOADER_SUCCESS'); - var expected = 'LOADED **@babel/register**!\n'; + var cwd = path.join(baseDir, "LOADER_SUCCESS"); + var expected = "LOADED **@babel/register**!\n"; var opts = { cwd: cwd }; - exec(gulp('-f gulpfile.babel.js'), opts, cb); + exec(gulp("-f gulpfile.babel.js"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseLapse(eraseTime(stdout))).toEqual(expected); done(err); } }); - it('can change NODE_FLAGS with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'NODE_FLAGS'); - var expected = 'RESPAWNED BY **--lazy**!\n'; + it("can change NODE_FLAGS with .gulp.*", function (done) { + var cwd = path.join(baseDir, "NODE_FLAGS"); + var expected = "RESPAWNED BY **--lazy**!\n"; var opts = { cwd: cwd }; - exec(gulp('--lazy'), opts, cb); + exec(gulp("--lazy"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseLapse(eraseTime(stdout))).toEqual(expected); done(err); } }); - it('can change RESPAWNED with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'RESPAWNED'); - var expected = 'RESPAWN!\n'; + it("can change RESPAWNED with .gulp.*", function (done) { + var cwd = path.join(baseDir, "RESPAWNED"); + var expected = "RESPAWN!\n"; var opts = { cwd: cwd }; - exec(gulp('--lazy'), opts, cb); + exec(gulp("--lazy"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseLapse(eraseTime(stdout))).toEqual(expected); done(err); } }); - it('can change CWD_CHANGED with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'CWD_CHANGED'); - var expected = 'CHANGE CWD TO **' + cwd + '**\n'; + it("can change CWD_CHANGED with .gulp.*", function (done) { + var cwd = path.join(baseDir, "CWD_CHANGED"); + var expected = "CHANGE CWD TO **" + cwd + "**\n"; var opts = { cwd: baseDir }; - exec(gulp('--cwd ' + cwd), opts, cb); + exec(gulp("--cwd " + cwd), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseLapse(eraseTime(stdout))).toEqual(expected); done(err); } }); - it('can change GULPFILE with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'GULPFILE'); - var expected = 'USING GULPFILE **abcxyz**\n'; + it("can change GULPFILE with .gulp.*", function (done) { + var cwd = path.join(baseDir, "GULPFILE"); + var expected = "USING GULPFILE **abcxyz**\n"; var opts = { cwd: cwd }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseLapse(eraseTime(stdout))).toEqual(expected); done(err); } }); - it('can change TASK_START with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'TASK_START'); - var expected = 'START **default**\n'; + it("can change TASK_START with .gulp.*", function (done) { + var cwd = path.join(baseDir, "TASK_START"); + var expected = "START **default**\n"; var opts = { cwd: cwd }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseLapse(eraseTime(stdout))).toEqual(expected); done(err); } }); - it('can change TASK_STOP with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'TASK_STOP'); - var expected = 'STOP **default**\n'; + it("can change TASK_STOP with .gulp.*", function (done) { + var cwd = path.join(baseDir, "TASK_STOP"); + var expected = "STOP **default**\n"; var opts = { cwd: cwd }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseTime(stdout)).toEqual(expected); done(err); } }); - it('can change PRELOAD_FAILURE with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'PRELOAD_FAILURE'); - var expected = 'FAILED TO PRELOAD **null-module**\n' + it("can change PRELOAD_FAILURE with .gulp.*", function (done) { + var cwd = path.join(baseDir, "PRELOAD_FAILURE"); + var expected = "FAILED TO PRELOAD **null-module**\n"; var opts = { cwd: cwd }; - exec(gulp('--preload null-module'), opts, cb); + exec(gulp("--preload null-module"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseLapse(eraseTime(stdout))).toEqual(expected); done(err); } }); - it('can change LOADER_FAILURE with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'LOADER_FAILURE'); - var expected = 'FAIL TO LOAD **coffeescript/register**\n'; + it("can change LOADER_FAILURE with .gulp.*", function (done) { + var cwd = path.join(baseDir, "LOADER_FAILURE"); + var expected = "FAIL TO LOAD **coffeescript/register**\n"; var opts = { cwd: cwd }; - exec(gulp('-f gulpfile.coffee'), opts, cb); + exec(gulp("-f gulpfile.coffee"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stderr).not.toEqual(''); + expect(stderr).not.toEqual(""); expect(eraseTime(stdout)).toEqual(expected); done(); } }); - it('can change TASK_SYNC with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'TASK_SYNC'); - var gulpfile = tildify(path.join(cwd, 'gulpfile.js')); - var expected = 'Using gulpfile ' + gulpfile + '\n' + - 'Starting \'default\'...\n' + - 'TASK **default** DID NOT COMPLETE\n'; + it("can change TASK_SYNC with .gulp.*", function (done) { + var cwd = path.join(baseDir, "TASK_SYNC"); + var gulpfile = tildify(path.join(cwd, "gulpfile.js")); + var expected = + "Using gulpfile " + + gulpfile + + "\n" + + "Starting 'default'...\n" + + "TASK **default** DID NOT COMPLETE\n"; var opts = { cwd: cwd }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(eraseTime(stdout)).toEqual(expected); done(); } }); - it('can change ARGV_ERROR with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'ARGV_ERROR'); - var expected = fs.readFileSync(path.join(expectedDir, 'bad-flag.txt'), 'utf8'); + it("can change ARGV_ERROR with .gulp.*", function (done) { + var cwd = path.join(baseDir, "ARGV_ERROR"); + var expected = fs.readFileSync( + path.join(expectedDir, "bad-flag.txt"), + "utf8", + ); var opts = { cwd: cwd }; - exec(gulp('-f'), opts, cb); + exec(gulp("-f"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); + expect(stdout).toEqual(""); expect(stderr).toEqual(expected); done(); } }); - it('can change MISSING_GULP with .gulp.*', function(done) { - var dir = path.join(baseDir, 'MISSING_GULP'); + it("can change MISSING_GULP with .gulp.*", function (done) { + var dir = path.join(baseDir, "MISSING_GULP"); var cwd = os.tmpdir(); - fs.copyFileSync(path.join(dir, '.gulp.js'), path.join(cwd, '.gulp.js')); + fs.copyFileSync(path.join(dir, ".gulp.js"), path.join(cwd, ".gulp.js")); var opts = { cwd: cwd }; exec(gulp(), opts, cb); - if (os.platform() === 'darwin') { - cwd = path.join('/private', cwd); + if (os.platform() === "darwin") { + cwd = path.join("/private", cwd); } - var expected = 'GULP NOT FOUND IN **' + cwd + '**\n'; + var expected = "GULP NOT FOUND IN **" + cwd + "**\n"; function cb(err, stdout, stderr) { try { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); + expect(stdout).toEqual(""); expect(stderr).toEqual(expected); done(); } finally { - fs.unlinkSync(path.join(cwd, '.gulp.js')); + fs.unlinkSync(path.join(cwd, ".gulp.js")); } } }); - it('can change MISSING_NODE_MODULES with .gulp.*', function(done) { - var dir = path.join(baseDir, 'MISSING_NODE_MODULES'); + it("can change MISSING_NODE_MODULES with .gulp.*", function (done) { + var dir = path.join(baseDir, "MISSING_NODE_MODULES"); var cwd = os.tmpdir(); - fs.copyFileSync(path.join(dir, '.gulp.js'), path.join(cwd, '.gulp.js')); - fs.copyFileSync(path.join(dir, 'package.json'), path.join(cwd, 'package.json')); + fs.copyFileSync(path.join(dir, ".gulp.js"), path.join(cwd, ".gulp.js")); + fs.copyFileSync( + path.join(dir, "package.json"), + path.join(cwd, "package.json"), + ); var opts = { cwd: cwd }; exec(gulp(), opts, cb); - if (os.platform() === 'darwin') { - cwd = path.join('/private', cwd); + if (os.platform() === "darwin") { + cwd = path.join("/private", cwd); } - var expected = 'LOCAL MODULE NOT FOUND **' + cwd + '**\n'; + var expected = "LOCAL MODULE NOT FOUND **" + cwd + "**\n"; function cb(err, stdout, stderr) { try { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); + expect(stdout).toEqual(""); expect(eraseTime(stderr)).toEqual(expected); done(); } finally { - fs.unlinkSync(path.join(cwd, '.gulp.js')); - fs.unlinkSync(path.join(cwd, 'package.json')); + fs.unlinkSync(path.join(cwd, ".gulp.js")); + fs.unlinkSync(path.join(cwd, "package.json")); } } }); - it('can change MISSING_GULPFILE with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'MISSING_GULPFILE'); - var expected = 'NO GULPFILE\n'; + it("can change MISSING_GULPFILE with .gulp.*", function (done) { + var cwd = path.join(baseDir, "MISSING_GULPFILE"); + var expected = "NO GULPFILE\n"; var opts = { cwd: cwd }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); + expect(stdout).toEqual(""); expect(eraseTime(stderr)).toEqual(expected); done(); } }); - it('can change UNSUPPORTED_GULP_VERSION with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'UNSUPPORTED_GULP_VERSION'); - var expected = 'BAD GULP VERSION **1.2.3**\n'; + it("can change UNSUPPORTED_GULP_VERSION with .gulp.*", function (done) { + var cwd = path.join(baseDir, "UNSUPPORTED_GULP_VERSION"); + var expected = "BAD GULP VERSION **1.2.3**\n"; var opts = { cwd: cwd }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); + expect(stdout).toEqual(""); expect(eraseTime(stderr)).toEqual(expected); done(); } }); - it('can change TASK_FAILURE with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'TASK_FAILURE'); - var expectedStderr = 'TASK FAILURE: **default**\n'; + it("can change TASK_FAILURE with .gulp.*", function (done) { + var cwd = path.join(baseDir, "TASK_FAILURE"); + var expectedStderr = "TASK FAILURE: **default**\n"; var opts = { cwd: cwd }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); + expect(stdout).toEqual(""); expect(stderr).toEqual(expectedStderr); done(); } }); - it('can change TASK_ERROR with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'TASK_ERROR'); - var expectedStderr = '**TASK ERROR**\n'; + it("can change TASK_ERROR with .gulp.*", function (done) { + var cwd = path.join(baseDir, "TASK_ERROR"); + var expectedStderr = "**TASK ERROR**\n"; var opts = { cwd: cwd }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); + expect(stdout).toEqual(""); expect(stderr).toEqual(expectedStderr); done(); } }); - it('can change TASK_MISSING with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'TASK_MISSING'); - var expectedStdout = 'Using gulpfile!\n'; - var expectedStderr = 'TASK IS NOT FOUND: **defaults** SIMILAR ##default##'; + it("can change TASK_MISSING with .gulp.*", function (done) { + var cwd = path.join(baseDir, "TASK_MISSING"); + var expectedStdout = "Using gulpfile!\n"; + var expectedStderr = "TASK IS NOT FOUND: **defaults** SIMILAR ##default##"; var opts = { cwd: cwd }; - exec(gulp('defaults'), opts, cb); + exec(gulp("defaults"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); @@ -428,9 +438,9 @@ describe('config: message function', function() { }); // Would need to hook gulp to test this - it.skip('can change EXEC_ERROR with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'EXEC_ERROR'); - var expected = 'FAIL TO RUN\n'; + it.skip("can change EXEC_ERROR with .gulp.*", function (done) { + var cwd = path.join(baseDir, "EXEC_ERROR"); + var expected = "FAIL TO RUN\n"; var opts = { cwd: cwd }; exec(gulp(), opts, cb); @@ -438,51 +448,51 @@ describe('config: message function', function() { function cb(err, stdout, stderr) { expect(err).not.toBeNull(); expect(eraseTime(stderr)).toEqual(expected); - expect(stdout).toEqual(''); + expect(stdout).toEqual(""); done(); } }); - it('can change COMPLETION_TYPE_MISSING with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'COMPLETION_TYPE_MISSING'); - var expected = 'NO COMPLETION TYPE'; + it("can change COMPLETION_TYPE_MISSING with .gulp.*", function (done) { + var cwd = path.join(baseDir, "COMPLETION_TYPE_MISSING"); + var expected = "NO COMPLETION TYPE"; var opts = { cwd: cwd }; - exec(gulp('--completion'), opts, cb); + exec(gulp("--completion"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); expect(stderr).toMatch(expected); - expect(stdout).toEqual(''); + expect(stdout).toEqual(""); done(); } }); - it('can change COMPLETION_TYPE_UNKNOWN with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'COMPLETION_TYPE_UNKNOWN'); - var expected = 'GULP COMPLETION TYPE **xxx** IS NOT FOUND\n'; + it("can change COMPLETION_TYPE_UNKNOWN with .gulp.*", function (done) { + var cwd = path.join(baseDir, "COMPLETION_TYPE_UNKNOWN"); + var expected = "GULP COMPLETION TYPE **xxx** IS NOT FOUND\n"; var opts = { cwd: cwd }; - exec(gulp('--completion=xxx'), opts, cb); + exec(gulp("--completion=xxx"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(expected); done(); } }); - it('can change GULPLOG_DEPRECATED with .gulp.*', function(done) { - var cwd = path.join(baseDir, 'GULPLOG_DEPRECATED'); - var expected = 'GULPLOG V1 IS DEPRECATED\n'; + it("can change GULPLOG_DEPRECATED with .gulp.*", function (done) { + var cwd = path.join(baseDir, "GULPLOG_DEPRECATED"); + var expected = "GULPLOG V1 IS DEPRECATED\n"; var opts = { cwd: cwd }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stdout).toEqual(''); + expect(stdout).toEqual(""); expect(stderr).toEqual(expected); done(); } diff --git a/test/esm.js b/test/esm.js index 784a4036..cef67c65 100644 --- a/test/esm.js +++ b/test/esm.js @@ -1,45 +1,50 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var fs = require('fs'); -var path = require('path'); -var semver = require('semver'); -var os = require('os'); +var expect = require("expect"); +var exec = require("child_process").exec; +var fs = require("fs"); +var path = require("path"); +var semver = require("semver"); +var os = require("os"); -var baseDir = path.join(__dirname, '..'); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var baseDir = path.join(__dirname, ".."); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var expectedDir = path.join(__dirname, 'expected'); +var expectedDir = path.join(__dirname, "expected"); function shouldSkip() { switch (os.platform()) { - case 'win32': { - return semver.satisfies(process.version, '^11.2.0') || - (process.env.CI && semver.satisfies(process.version, '10.x.x')); + case "win32": { + return ( + semver.satisfies(process.version, "^11.2.0") || + (process.env.CI && semver.satisfies(process.version, "10.x.x")) + ); } - case 'darwin': { - return semver.satisfies(process.version, '>=11.0.0 <11.11.0'); + case "darwin": { + return semver.satisfies(process.version, ">=11.0.0 <11.11.0"); } - case 'linux': { - return semver.satisfies(process.version, '>=11.2.0 <11.4.0'); + case "linux": { + return semver.satisfies(process.version, ">=11.2.0 <11.4.0"); } } - return semver.satisfies(process.version, '12.8.x || >=12.11.0 <12.18.0 || >=13.0.0 <13.8.0'); + return semver.satisfies( + process.version, + "12.8.x || >=12.11.0 <12.18.0 || >=13.0.0 <13.8.0", + ); } -describe('ESM', function() { - - it('prints the task list', function(done) { +describe("ESM", function () { + it("prints the task list", function (done) { if (shouldSkip()) { this.skip(); } - var options = '--tasks --sort-tasks --gulpfile ./test/fixtures/gulpfiles/gulpfile.mjs'; + var options = + "--tasks --sort-tasks --gulpfile ./test/fixtures/gulpfiles/gulpfile.mjs"; var trailingLines = 1; - if (!semver.satisfies(process.version, '^12.17.0 || >=13.2.0')) { - options += ' --experimental-modules'; + if (!semver.satisfies(process.version, "^12.17.0 || >=13.2.0")) { + options += " --experimental-modules"; trailingLines += 2; } @@ -48,28 +53,31 @@ describe('ESM', function() { function cb(err, stdout, stderr) { expect(err).toBeNull(); - if (!semver.satisfies(process.version, '^12.20.0 || >=13.14.0')) { - expect(stderr).toMatch('ExperimentalWarning: The ESM module loader is experimental.\n'); + if (!semver.satisfies(process.version, "^12.20.0 || >=13.14.0")) { + expect(stderr).toMatch( + "ExperimentalWarning: The ESM module loader is experimental.\n", + ); } else { - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); } - var filepath = path.join(expectedDir, 'esm.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + var filepath = path.join(expectedDir, "esm.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, trailingLines)).toEqual(expected); done(err); } }); - it('prints the task list (top-level await)', function(done) { + it("prints the task list (top-level await)", function (done) { if (shouldSkip()) { this.skip(); } - if (semver.satisfies(process.version, '10 || 12')) { + if (semver.satisfies(process.version, "10 || 12")) { this.skip(); } - var options = '--tasks --sort-tasks --gulpfile ./test/fixtures/gulpfiles/gulpfile-tla.mjs'; + var options = + "--tasks --sort-tasks --gulpfile ./test/fixtures/gulpfiles/gulpfile-tla.mjs"; var trailingLines = 1; var opts = { cwd: baseDir }; @@ -77,12 +85,11 @@ describe('ESM', function() { function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'esm.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "esm.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, trailingLines)).toEqual(expected); done(err); } }); - }); diff --git a/test/execution-errors.js b/test/execution-errors.js index 7b2fd1ec..5cadb145 100644 --- a/test/execution-errors.js +++ b/test/execution-errors.js @@ -1,80 +1,83 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); -var os = require('os'); -var fs = require('fs'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); +var os = require("os"); +var fs = require("fs"); -var tildify = require('../lib/shared/tildify'); +var tildify = require("../lib/shared/tildify"); -var eraseTime = require('./tool/erase-time'); -var eraseLapse = require('./tool/erase-lapse'); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var eraseTime = require("./tool/erase-time"); +var eraseLapse = require("./tool/erase-lapse"); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -describe('execution error', function() { - - it('should output an error if a task is not defined', function(done) { - var opts = { cwd: path.join(__dirname, './fixtures/gulpfiles') }; - exec(gulp('a'), opts, cb); +describe("execution error", function () { + it("should output an error if a task is not defined", function (done) { + var opts = { cwd: path.join(__dirname, "./fixtures/gulpfiles") }; + exec(gulp("a"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); expect(err.code).toEqual(1); - expect(eraseTime(stdout)).toMatch('Using gulpfile '); + expect(eraseTime(stdout)).toMatch("Using gulpfile "); expect(eraseTime(stderr)).toEqual( - 'Task never defined: a\n' + - 'To list available tasks, try running: gulp --tasks\n'); + "Task never defined: a\n" + + "To list available tasks, try running: gulp --tasks\n", + ); done(); } }); - it('should output an error if a task is not defined but a similar task is found', function(done) { - var opts = { cwd: path.join(__dirname, './fixtures/gulpfiles') }; - exec(gulp('test0'), opts, cb); + it("should output an error if a task is not defined but a similar task is found", function (done) { + var opts = { cwd: path.join(__dirname, "./fixtures/gulpfiles") }; + exec(gulp("test0"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); expect(err.code).toEqual(1); - expect(eraseTime(stdout)).toMatch('Using gulpfile '); + expect(eraseTime(stdout)).toMatch("Using gulpfile "); expect(eraseTime(stderr)).toEqual( - 'Task never defined: test0 - did you mean? test1, test2, test3, test4, test5, test6, test7, test8\n' + - 'To list available tasks, try running: gulp --tasks\n'); + "Task never defined: test0 - did you mean? test1, test2, test3, test4, test5, test6, test7, test8\n" + + "To list available tasks, try running: gulp --tasks\n", + ); done(); } }); - it('should output an error if gulp version is unsupported', function(done) { - var opts = { cwd: path.join(__dirname, './fixtures/errors/bad-gulp-version') }; + it("should output an error if gulp version is unsupported", function (done) { + var opts = { + cwd: path.join(__dirname, "./fixtures/errors/bad-gulp-version"), + }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); expect(err.code).toEqual(1); - expect(eraseTime(stdout)).toEqual(''); - expect(eraseTime(stderr)).toEqual('Unsupported gulp version 1.2.3\n'); + expect(eraseTime(stdout)).toEqual(""); + expect(eraseTime(stderr)).toEqual("Unsupported gulp version 1.2.3\n"); done(); } }); - it('should output an error if gulp is not found (npm)', function(done) { + it("should output an error if gulp is not found (npm)", function (done) { var opts = { cwd: os.tmpdir() }; exec(gulp(), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); expect(err.code).toEqual(1); - expect(sliceLines(stderr, 0, 1)).toMatch('Local gulp not found in '); - expect(sliceLines(stderr, 1, 2)).toEqual('Try running: npm install gulp'); + expect(sliceLines(stderr, 0, 1)).toMatch("Local gulp not found in "); + expect(sliceLines(stderr, 1, 2)).toEqual("Try running: npm install gulp"); done(); } }); - it('should output an error if gulp is not found (yarn)', function(done) { + it("should output an error if gulp is not found (yarn)", function (done) { var cwd = os.tmpdir(); - var yarnOrig= path.join(__dirname, 'fixtures/errors/yarn/yarn.lock'); - var yarnLock = path.join(cwd, 'yarn.lock'); + var yarnOrig = path.join(__dirname, "fixtures/errors/yarn/yarn.lock"); + var yarnLock = path.join(cwd, "yarn.lock"); fs.copyFileSync(yarnOrig, yarnLock); @@ -85,8 +88,8 @@ describe('execution error', function() { try { expect(err).not.toBeNull(); expect(err.code).toEqual(1); - expect(sliceLines(stderr, 0, 1)).toMatch('Local gulp not found in '); - expect(sliceLines(stderr, 1, 2)).toEqual('Try running: yarn add gulp'); + expect(sliceLines(stderr, 0, 1)).toMatch("Local gulp not found in "); + expect(sliceLines(stderr, 1, 2)).toEqual("Try running: yarn add gulp"); done(); } finally { fs.unlinkSync(yarnLock); @@ -94,10 +97,10 @@ describe('execution error', function() { } }); - it('should output an error if local modules are not found (npm)', function(done) { + it("should output an error if local modules are not found (npm)", function (done) { var cwd = os.tmpdir(); - var pkgOrig = path.join(__dirname, 'fixtures/errors/package.json'); - var pkgJson = path.join(cwd, 'package.json'); + var pkgOrig = path.join(__dirname, "fixtures/errors/package.json"); + var pkgJson = path.join(cwd, "package.json"); fs.copyFileSync(pkgOrig, pkgJson); @@ -108,8 +111,8 @@ describe('execution error', function() { try { expect(err).not.toBeNull(); expect(err.code).toEqual(1); - expect(sliceLines(stderr, 0, 1)).toMatch('Local modules not found in '); - expect(sliceLines(stderr, 1, 2)).toEqual('Try running: npm install'); + expect(sliceLines(stderr, 0, 1)).toMatch("Local modules not found in "); + expect(sliceLines(stderr, 1, 2)).toEqual("Try running: npm install"); done(); } finally { fs.unlinkSync(pkgJson); @@ -117,12 +120,12 @@ describe('execution error', function() { } }); - it('should output an error if local modules are not found (yarn)', function(done) { + it("should output an error if local modules are not found (yarn)", function (done) { var cwd = os.tmpdir(); - var pkgOrig = path.join(__dirname, 'fixtures/errors/package.json'); - var pkgJson = path.join(cwd, 'package.json'); - var yarnOrig= path.join(__dirname, 'fixtures/errors/yarn/yarn.lock'); - var yarnLock = path.join(cwd, 'yarn.lock'); + var pkgOrig = path.join(__dirname, "fixtures/errors/package.json"); + var pkgJson = path.join(cwd, "package.json"); + var yarnOrig = path.join(__dirname, "fixtures/errors/yarn/yarn.lock"); + var yarnLock = path.join(cwd, "yarn.lock"); fs.copyFileSync(pkgOrig, pkgJson); fs.copyFileSync(yarnOrig, yarnLock); @@ -134,8 +137,8 @@ describe('execution error', function() { try { expect(err).not.toBeNull(); expect(err.code).toEqual(1); - expect(sliceLines(stderr, 0, 1)).toMatch('Local modules not found in '); - expect(sliceLines(stderr, 1, 2)).toEqual('Try running: yarn install'); + expect(sliceLines(stderr, 0, 1)).toMatch("Local modules not found in "); + expect(sliceLines(stderr, 1, 2)).toEqual("Try running: yarn install"); done(); } finally { fs.unlinkSync(pkgJson); @@ -144,30 +147,31 @@ describe('execution error', function() { } }); - it('should log a same error once', function(done) { - var dir = path.join(__dirname, 'fixtures/gulpfiles'); - var gulpfileName = 'gulpfile-dedup-errorlog.js'; + it("should log a same error once", function (done) { + var dir = path.join(__dirname, "fixtures/gulpfiles"); + var gulpfileName = "gulpfile-dedup-errorlog.js"; - exec(gulp( - '--gulpfile', gulpfileName - ), { cwd: dir }, cb); + exec(gulp("--gulpfile", gulpfileName), { cwd: dir }, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); expect(err.code).toEqual(1); expect(sliceLines(stdout)).toEqual( - 'Using gulpfile ' + tildify(path.join(dir, gulpfileName)) + '\n' + - 'Starting \'default\'...\n' + - 'Starting \'b\'...\n' + - 'Starting \'a\'...\n' + - ''); + "Using gulpfile " + + tildify(path.join(dir, gulpfileName)) + + "\n" + + "Starting 'default'...\n" + + "Starting 'b'...\n" + + "Starting 'a'...\n" + + "", + ); stderr = eraseLapse(eraseTime(stderr)).split(/[\r\n]+/); var n = stderr.length; - expect(stderr[0]).toEqual('\'a\' errored after ?'); - expect(stderr[1]).toEqual('Error: Task \'a\' failed!'); - expect(stderr[n - 3]).toEqual('\'b\' errored after ?'); - expect(stderr[n - 2]).toEqual('\'default\' errored after ?'); - expect(stderr[n - 1]).toEqual(''); + expect(stderr[0]).toEqual("'a' errored after ?"); + expect(stderr[1]).toEqual("Error: Task 'a' failed!"); + expect(stderr[n - 3]).toEqual("'b' errored after ?"); + expect(stderr[n - 2]).toEqual("'default' errored after ?"); + expect(stderr[n - 1]).toEqual(""); done(); } }); diff --git a/test/expected/flags-tasks-json.json b/test/expected/flags-tasks-json.json index 2bbe3f2c..33473668 100644 --- a/test/expected/flags-tasks-json.json +++ b/test/expected/flags-tasks-json.json @@ -1 +1,118 @@ -{"label":"gulp-cli/test/fixtures/gulpfiles","nodes":[{"label":"test1","type":"task","nodes":[{"label":"","type":"function","branch":true,"nodes":[{"label":"noop","type":"function","nodes":[]}]}]},{"label":"test2","type":"task","nodes":[{"label":"","type":"function","branch":true,"nodes":[{"label":"test1","type":"task","nodes":[{"label":"","type":"function","branch":true,"nodes":[{"label":"noop","type":"function","nodes":[]}]}]},{"label":"noop","type":"function","nodes":[]}]}]},{"label":"test3","type":"task","nodes":[{"label":"","type":"function","branch":true,"nodes":[{"label":"described","type":"function","nodes":[]}]}]},{"label":"test4","type":"task","nodes":[{"label":"","type":"function","branch":true,"nodes":[{"label":"errorFunction","type":"function","nodes":[]},{"label":"anon","type":"function","nodes":[]}]}]},{"label":"test5","nodes":[],"type":"task"},{"label":"test6","nodes":[],"type":"task"},{"label":"test7","nodes":[],"type":"task"},{"label":"test8","nodes":[],"type":"task"},{"label":"default","type":"task","nodes":[{"label":"","type":"function","branch":true,"nodes":[{"label":"test1","type":"task","nodes":[{"label":"","type":"function","branch":true,"nodes":[{"label":"noop","type":"function","nodes":[]}]}]},{"label":"test3","type":"task","nodes":[{"label":"","type":"function","branch":true,"nodes":[{"label":"described","type":"function","nodes":[]}]}]},{"label":"noop","type":"function","nodes":[]}]}]}]} +{ + "label": "gulp-cli/test/fixtures/gulpfiles", + "nodes": [ + { + "label": "test1", + "type": "task", + "nodes": [ + { + "label": "", + "type": "function", + "branch": true, + "nodes": [{ "label": "noop", "type": "function", "nodes": [] }] + } + ] + }, + { + "label": "test2", + "type": "task", + "nodes": [ + { + "label": "", + "type": "function", + "branch": true, + "nodes": [ + { + "label": "test1", + "type": "task", + "nodes": [ + { + "label": "", + "type": "function", + "branch": true, + "nodes": [ + { "label": "noop", "type": "function", "nodes": [] } + ] + } + ] + }, + { "label": "noop", "type": "function", "nodes": [] } + ] + } + ] + }, + { + "label": "test3", + "type": "task", + "nodes": [ + { + "label": "", + "type": "function", + "branch": true, + "nodes": [{ "label": "described", "type": "function", "nodes": [] }] + } + ] + }, + { + "label": "test4", + "type": "task", + "nodes": [ + { + "label": "", + "type": "function", + "branch": true, + "nodes": [ + { "label": "errorFunction", "type": "function", "nodes": [] }, + { "label": "anon", "type": "function", "nodes": [] } + ] + } + ] + }, + { "label": "test5", "nodes": [], "type": "task" }, + { "label": "test6", "nodes": [], "type": "task" }, + { "label": "test7", "nodes": [], "type": "task" }, + { "label": "test8", "nodes": [], "type": "task" }, + { + "label": "default", + "type": "task", + "nodes": [ + { + "label": "", + "type": "function", + "branch": true, + "nodes": [ + { + "label": "test1", + "type": "task", + "nodes": [ + { + "label": "", + "type": "function", + "branch": true, + "nodes": [ + { "label": "noop", "type": "function", "nodes": [] } + ] + } + ] + }, + { + "label": "test3", + "type": "task", + "nodes": [ + { + "label": "", + "type": "function", + "branch": true, + "nodes": [ + { "label": "described", "type": "function", "nodes": [] } + ] + } + ] + }, + { "label": "noop", "type": "function", "nodes": [] } + ] + } + ] + } + ] +} diff --git a/test/exports-as-tasks.js b/test/exports-as-tasks.js index 81bee75e..74affb58 100644 --- a/test/exports-as-tasks.js +++ b/test/exports-as-tasks.js @@ -1,37 +1,41 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var fs = require('fs'); -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var fs = require("fs"); +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, '..'); -var expectedDir = path.join(__dirname, 'expected'); +var baseDir = path.join(__dirname, ".."); +var expectedDir = path.join(__dirname, "expected"); // Long timeout is required because parse time is slow -describe('exports as tasks', function() { +describe("exports as tasks", function () { this.timeout(0); - it('prints the task list', function(done) { + it("prints the task list", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks', - '--sort-tasks', - '--gulpfile', './test/fixtures/gulpfiles/gulpfile-exports.babel.js' - ), opts, cb); + exec( + gulp( + "--tasks", + "--sort-tasks", + "--gulpfile", + "./test/fixtures/gulpfiles/gulpfile-exports.babel.js", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'tasks-as-exports.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "tasks-as-exports.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); // Remove babel/register lines expect(sliceLines(stdout, 2)).toEqual(expected); done(err); } }); - }); diff --git a/test/fixtures/.gulp.js b/test/fixtures/.gulp.js index c2ca66b9..2ef81392 100644 --- a/test/fixtures/.gulp.js +++ b/test/fixtures/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.DESCRIPTION) { return "gulp-cli/test/fixtures"; } - } + }, }; diff --git a/test/fixtures/config/flags/compactTasks/f/.gulp.js b/test/fixtures/config/flags/compactTasks/f/.gulp.js index 9fef64e2..2d810d30 100644 --- a/test/fixtures/config/flags/compactTasks/f/.gulp.js +++ b/test/fixtures/config/flags/compactTasks/f/.gulp.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; module.exports = { - gulpfile: '../../../../gulpfiles/gulpfile-4.js', + gulpfile: "../../../../gulpfiles/gulpfile-4.js", flags: { compactTasks: false, }, diff --git a/test/fixtures/config/flags/compactTasks/t/.gulp.js b/test/fixtures/config/flags/compactTasks/t/.gulp.js index 8ac27e43..f14875f8 100644 --- a/test/fixtures/config/flags/compactTasks/t/.gulp.js +++ b/test/fixtures/config/flags/compactTasks/t/.gulp.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; module.exports = { - gulpfile: '../../../../gulpfiles/gulpfile-4.js', + gulpfile: "../../../../gulpfiles/gulpfile-4.js", flags: { compactTasks: true, }, diff --git a/test/fixtures/config/flags/continue/f/.gulp.js b/test/fixtures/config/flags/continue/f/.gulp.js index 6edb0159..4deec852 100644 --- a/test/fixtures/config/flags/continue/f/.gulp.js +++ b/test/fixtures/config/flags/continue/f/.gulp.js @@ -1,5 +1,5 @@ module.exports = { flags: { - continue: false - } + continue: false, + }, }; diff --git a/test/fixtures/config/flags/continue/f/gulpfile.js b/test/fixtures/config/flags/continue/f/gulpfile.js index 1ea100cf..50c646e1 100644 --- a/test/fixtures/config/flags/continue/f/gulpfile.js +++ b/test/fixtures/config/flags/continue/f/gulpfile.js @@ -1,13 +1,13 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); function err(done) { - done(new Error('Error!')); + done(new Error("Error!")); } function next(done) { done(); } -gulp.task('default', gulp.series(err, next)); +gulp.task("default", gulp.series(err, next)); diff --git a/test/fixtures/config/flags/continue/t/.gulp.js b/test/fixtures/config/flags/continue/t/.gulp.js index ed371532..60a0f660 100644 --- a/test/fixtures/config/flags/continue/t/.gulp.js +++ b/test/fixtures/config/flags/continue/t/.gulp.js @@ -1,5 +1,5 @@ module.exports = { flags: { - continue: true - } + continue: true, + }, }; diff --git a/test/fixtures/config/flags/continue/t/gulpfile.js b/test/fixtures/config/flags/continue/t/gulpfile.js index 1ea100cf..50c646e1 100644 --- a/test/fixtures/config/flags/continue/t/gulpfile.js +++ b/test/fixtures/config/flags/continue/t/gulpfile.js @@ -1,13 +1,13 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); function err(done) { - done(new Error('Error!')); + done(new Error("Error!")); } function next(done) { done(); } -gulp.task('default', gulp.series(err, next)); +gulp.task("default", gulp.series(err, next)); diff --git a/test/fixtures/config/flags/gulpfile/autoload-fail/.gulp.js b/test/fixtures/config/flags/gulpfile/autoload-fail/.gulp.js index ecfc61d3..46258aaf 100644 --- a/test/fixtures/config/flags/gulpfile/autoload-fail/.gulp.js +++ b/test/fixtures/config/flags/gulpfile/autoload-fail/.gulp.js @@ -1,3 +1,3 @@ module.exports = { - gulpfile: "./other_dir/gulpfile.coffee" + gulpfile: "./other_dir/gulpfile.coffee", }; diff --git a/test/fixtures/config/flags/gulpfile/autoload/.gulp.js b/test/fixtures/config/flags/gulpfile/autoload/.gulp.js index b307baf1..755163ab 100644 --- a/test/fixtures/config/flags/gulpfile/autoload/.gulp.js +++ b/test/fixtures/config/flags/gulpfile/autoload/.gulp.js @@ -1,3 +1,3 @@ module.exports = { - gulpfile: "other_folder/gulpfile-exports.babel.js" + gulpfile: "other_folder/gulpfile-exports.babel.js", }; diff --git a/test/fixtures/config/flags/gulpfile/autoload/other_folder/gulpfile-exports.babel.js b/test/fixtures/config/flags/gulpfile/autoload/other_folder/gulpfile-exports.babel.js index 08520ff6..4a590ce7 100644 --- a/test/fixtures/config/flags/gulpfile/autoload/other_folder/gulpfile-exports.babel.js +++ b/test/fixtures/config/flags/gulpfile/autoload/other_folder/gulpfile-exports.babel.js @@ -1,8 +1,14 @@ -'use strict'; +"use strict"; -import gulp from 'gulp'; +import gulp from "gulp"; -export function clean(done) { console.log('clean!'); done(); }; -export function build(done) { console.log('build!'); done(); }; -export const string = 'no function'; +export function clean(done) { + console.log("clean!"); + done(); +} +export function build(done) { + console.log("build!"); + done(); +} +export const string = "no function"; export const dist = gulp.series(clean, build); diff --git a/test/fixtures/config/flags/gulpfile/cwd/.gulp.js b/test/fixtures/config/flags/gulpfile/cwd/.gulp.js index 3ff2eb25..03d9f87c 100644 --- a/test/fixtures/config/flags/gulpfile/cwd/.gulp.js +++ b/test/fixtures/config/flags/gulpfile/cwd/.gulp.js @@ -1,3 +1,3 @@ module.exports = { - gulpfile: "../is/here/gulpfile-by-cwd-cfg.js" + gulpfile: "../is/here/gulpfile-by-cwd-cfg.js", }; diff --git a/test/fixtures/config/flags/gulpfile/is/here/gulpfile-by-cwd-cfg.js b/test/fixtures/config/flags/gulpfile/is/here/gulpfile-by-cwd-cfg.js index 61b4199a..b7bea37e 100644 --- a/test/fixtures/config/flags/gulpfile/is/here/gulpfile-by-cwd-cfg.js +++ b/test/fixtures/config/flags/gulpfile/is/here/gulpfile-by-cwd-cfg.js @@ -1,9 +1,9 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { - console.log('This gulpfile : ' + __filename); - console.log('The current directory : ' + process.cwd()); +gulp.task("default", function (done) { + console.log("This gulpfile : " + __filename); + console.log("The current directory : " + process.cwd()); done(); }); diff --git a/test/fixtures/config/flags/gulpfile/is/here/gulpfile-by-prj-cfg.js b/test/fixtures/config/flags/gulpfile/is/here/gulpfile-by-prj-cfg.js index 61b4199a..b7bea37e 100644 --- a/test/fixtures/config/flags/gulpfile/is/here/gulpfile-by-prj-cfg.js +++ b/test/fixtures/config/flags/gulpfile/is/here/gulpfile-by-prj-cfg.js @@ -1,9 +1,9 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { - console.log('This gulpfile : ' + __filename); - console.log('The current directory : ' + process.cwd()); +gulp.task("default", function (done) { + console.log("This gulpfile : " + __filename); + console.log("The current directory : " + process.cwd()); done(); }); diff --git a/test/fixtures/config/flags/gulpfile/is/here/gulpfile.js b/test/fixtures/config/flags/gulpfile/is/here/gulpfile.js index 61b4199a..b7bea37e 100644 --- a/test/fixtures/config/flags/gulpfile/is/here/gulpfile.js +++ b/test/fixtures/config/flags/gulpfile/is/here/gulpfile.js @@ -1,9 +1,9 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { - console.log('This gulpfile : ' + __filename); - console.log('The current directory : ' + process.cwd()); +gulp.task("default", function (done) { + console.log("This gulpfile : " + __filename); + console.log("The current directory : " + process.cwd()); done(); }); diff --git a/test/fixtures/config/flags/gulpfile/override-by-cliflag/.gulp.js b/test/fixtures/config/flags/gulpfile/override-by-cliflag/.gulp.js index 3aa3b2db..10702cbf 100644 --- a/test/fixtures/config/flags/gulpfile/override-by-cliflag/.gulp.js +++ b/test/fixtures/config/flags/gulpfile/override-by-cliflag/.gulp.js @@ -1,3 +1,3 @@ module.exports = { - gulpfile: "../cwd/gulpfile.js" + gulpfile: "../cwd/gulpfile.js", }; diff --git a/test/fixtures/config/flags/gulpfile/override-by-cliflag/mygulpfile.js b/test/fixtures/config/flags/gulpfile/override-by-cliflag/mygulpfile.js index 9dc9c041..b962013f 100644 --- a/test/fixtures/config/flags/gulpfile/override-by-cliflag/mygulpfile.js +++ b/test/fixtures/config/flags/gulpfile/override-by-cliflag/mygulpfile.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { - console.log('Gulpfile : ' + __filename); +gulp.task("default", function (done) { + console.log("Gulpfile : " + __filename); done(); }); diff --git a/test/fixtures/config/flags/gulpfile/prj/.gulp.js b/test/fixtures/config/flags/gulpfile/prj/.gulp.js index 321e3bdf..23e40c8c 100644 --- a/test/fixtures/config/flags/gulpfile/prj/.gulp.js +++ b/test/fixtures/config/flags/gulpfile/prj/.gulp.js @@ -1,3 +1,3 @@ module.exports = { - gulpfile: "../is/here/gulpfile-by-prj-cfg.js" + gulpfile: "../is/here/gulpfile-by-prj-cfg.js", }; diff --git a/test/fixtures/config/flags/gulpfile/use-current-cfg/current-dir/.gulp.js b/test/fixtures/config/flags/gulpfile/use-current-cfg/current-dir/.gulp.js index 8e905bea..d30a205c 100644 --- a/test/fixtures/config/flags/gulpfile/use-current-cfg/current-dir/.gulp.js +++ b/test/fixtures/config/flags/gulpfile/use-current-cfg/current-dir/.gulp.js @@ -1,3 +1,3 @@ module.exports = { - gulpfile: './gulpfile-2.js', + gulpfile: "./gulpfile-2.js", }; diff --git a/test/fixtures/config/flags/gulpfile/use-current-cfg/current-dir/gulpfile-2.js b/test/fixtures/config/flags/gulpfile/use-current-cfg/current-dir/gulpfile-2.js index a2e5369a..09208207 100644 --- a/test/fixtures/config/flags/gulpfile/use-current-cfg/current-dir/gulpfile-2.js +++ b/test/fixtures/config/flags/gulpfile/use-current-cfg/current-dir/gulpfile-2.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { console.log(__filename); done(); }); diff --git a/test/fixtures/config/flags/gulpfile/use-current-cfg/gulpfile.js b/test/fixtures/config/flags/gulpfile/use-current-cfg/gulpfile.js index a2e5369a..09208207 100644 --- a/test/fixtures/config/flags/gulpfile/use-current-cfg/gulpfile.js +++ b/test/fixtures/config/flags/gulpfile/use-current-cfg/gulpfile.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { console.log(__filename); done(); }); diff --git a/test/fixtures/config/flags/logLevel/L/.gulp.js b/test/fixtures/config/flags/logLevel/L/.gulp.js index fca4e6b7..39fdbbce 100644 --- a/test/fixtures/config/flags/logLevel/L/.gulp.js +++ b/test/fixtures/config/flags/logLevel/L/.gulp.js @@ -1,5 +1,5 @@ module.exports = { flags: { - logLevel: 1 - } -} + logLevel: 1, + }, +}; diff --git a/test/fixtures/config/flags/logLevel/L/gulpfile.js b/test/fixtures/config/flags/logLevel/L/gulpfile.js index 42466b03..b9a82922 100644 --- a/test/fixtures/config/flags/logLevel/L/gulpfile.js +++ b/test/fixtures/config/flags/logLevel/L/gulpfile.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { done(); }); diff --git a/test/fixtures/config/flags/logLevel/LL/.gulp.js b/test/fixtures/config/flags/logLevel/LL/.gulp.js index 033e74d7..0eb38013 100644 --- a/test/fixtures/config/flags/logLevel/LL/.gulp.js +++ b/test/fixtures/config/flags/logLevel/LL/.gulp.js @@ -1,5 +1,5 @@ module.exports = { flags: { - logLevel: 2 - } + logLevel: 2, + }, }; diff --git a/test/fixtures/config/flags/logLevel/LL/gulpfile.js b/test/fixtures/config/flags/logLevel/LL/gulpfile.js index 42466b03..b9a82922 100644 --- a/test/fixtures/config/flags/logLevel/LL/gulpfile.js +++ b/test/fixtures/config/flags/logLevel/LL/gulpfile.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { done(); }); diff --git a/test/fixtures/config/flags/logLevel/LLL/.gulp.js b/test/fixtures/config/flags/logLevel/LLL/.gulp.js index 5120f6f1..19663ded 100644 --- a/test/fixtures/config/flags/logLevel/LLL/.gulp.js +++ b/test/fixtures/config/flags/logLevel/LLL/.gulp.js @@ -1,5 +1,5 @@ module.exports = { flags: { - logLevel: 3 - } + logLevel: 3, + }, }; diff --git a/test/fixtures/config/flags/logLevel/LLL/gulpfile.js b/test/fixtures/config/flags/logLevel/LLL/gulpfile.js index 42466b03..b9a82922 100644 --- a/test/fixtures/config/flags/logLevel/LLL/gulpfile.js +++ b/test/fixtures/config/flags/logLevel/LLL/gulpfile.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { done(); }); diff --git a/test/fixtures/config/flags/logLevel/gulpfile.js b/test/fixtures/config/flags/logLevel/gulpfile.js index 42466b03..b9a82922 100644 --- a/test/fixtures/config/flags/logLevel/gulpfile.js +++ b/test/fixtures/config/flags/logLevel/gulpfile.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { done(); }); diff --git a/test/fixtures/config/flags/nodeFlags/array/.gulp.js b/test/fixtures/config/flags/nodeFlags/array/.gulp.js index 29053b1a..026bfadb 100644 --- a/test/fixtures/config/flags/nodeFlags/array/.gulp.js +++ b/test/fixtures/config/flags/nodeFlags/array/.gulp.js @@ -1,3 +1,3 @@ module.exports = { - nodeFlags: ["--lazy", "--trace-deprecation"] -} + nodeFlags: ["--lazy", "--trace-deprecation"], +}; diff --git a/test/fixtures/config/flags/nodeFlags/array/gulpfile.js b/test/fixtures/config/flags/nodeFlags/array/gulpfile.js index b1e4e02a..4db206d4 100644 --- a/test/fixtures/config/flags/nodeFlags/array/gulpfile.js +++ b/test/fixtures/config/flags/nodeFlags/array/gulpfile.js @@ -1,6 +1,6 @@ -'use strict'; +"use strict"; -exports.default = function(done) { - console.log('Default'); +exports.default = function (done) { + console.log("Default"); done(); }; diff --git a/test/fixtures/config/flags/nodeFlags/null/.gulp.js b/test/fixtures/config/flags/nodeFlags/null/.gulp.js index 4f613ce0..41d01ded 100644 --- a/test/fixtures/config/flags/nodeFlags/null/.gulp.js +++ b/test/fixtures/config/flags/nodeFlags/null/.gulp.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; module.exports = { nodeFlags: null, diff --git a/test/fixtures/config/flags/nodeFlags/null/gulpfile.js b/test/fixtures/config/flags/nodeFlags/null/gulpfile.js index b1e4e02a..4db206d4 100644 --- a/test/fixtures/config/flags/nodeFlags/null/gulpfile.js +++ b/test/fixtures/config/flags/nodeFlags/null/gulpfile.js @@ -1,6 +1,6 @@ -'use strict'; +"use strict"; -exports.default = function(done) { - console.log('Default'); +exports.default = function (done) { + console.log("Default"); done(); }; diff --git a/test/fixtures/config/flags/nodeFlags/string/.gulp.js b/test/fixtures/config/flags/nodeFlags/string/.gulp.js index f14523e4..d5fca2dd 100644 --- a/test/fixtures/config/flags/nodeFlags/string/.gulp.js +++ b/test/fixtures/config/flags/nodeFlags/string/.gulp.js @@ -1,5 +1,5 @@ -'use strict'; +"use strict"; module.exports = { - nodeFlags: '--lazy', + nodeFlags: "--lazy", }; diff --git a/test/fixtures/config/flags/nodeFlags/string/gulpfile.js b/test/fixtures/config/flags/nodeFlags/string/gulpfile.js index b1e4e02a..4db206d4 100644 --- a/test/fixtures/config/flags/nodeFlags/string/gulpfile.js +++ b/test/fixtures/config/flags/nodeFlags/string/gulpfile.js @@ -1,6 +1,6 @@ -'use strict'; +"use strict"; -exports.default = function(done) { - console.log('Default'); +exports.default = function (done) { + console.log("Default"); done(); }; diff --git a/test/fixtures/config/flags/nodeFlags/undefined/.gulp.js b/test/fixtures/config/flags/nodeFlags/undefined/.gulp.js index 78532965..b4ff16a7 100644 --- a/test/fixtures/config/flags/nodeFlags/undefined/.gulp.js +++ b/test/fixtures/config/flags/nodeFlags/undefined/.gulp.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; module.exports = { nodeFlags: undefined, diff --git a/test/fixtures/config/flags/nodeFlags/undefined/gulpfile.js b/test/fixtures/config/flags/nodeFlags/undefined/gulpfile.js index b1e4e02a..4db206d4 100644 --- a/test/fixtures/config/flags/nodeFlags/undefined/gulpfile.js +++ b/test/fixtures/config/flags/nodeFlags/undefined/gulpfile.js @@ -1,6 +1,6 @@ -'use strict'; +"use strict"; -exports.default = function(done) { - console.log('Default'); +exports.default = function (done) { + console.log("Default"); done(); }; diff --git a/test/fixtures/config/flags/preload/array/.gulp.js b/test/fixtures/config/flags/preload/array/.gulp.js index da5c398f..3804a7f3 100644 --- a/test/fixtures/config/flags/preload/array/.gulp.js +++ b/test/fixtures/config/flags/preload/array/.gulp.js @@ -1,6 +1,3 @@ module.exports = { - preload: [ - "./preload_one", - "./preload_two" - ] + preload: ["./preload_one", "./preload_two"], }; diff --git a/test/fixtures/config/flags/preload/array/gulpfile.js b/test/fixtures/config/flags/preload/array/gulpfile.js index 496e068c..ec445eab 100644 --- a/test/fixtures/config/flags/preload/array/gulpfile.js +++ b/test/fixtures/config/flags/preload/array/gulpfile.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { console.log(global.preload_one); console.log(global.preload_two); done(); diff --git a/test/fixtures/config/flags/preload/array/preload_one.js b/test/fixtures/config/flags/preload/array/preload_one.js index f9a04a11..5b24ed81 100644 --- a/test/fixtures/config/flags/preload/array/preload_one.js +++ b/test/fixtures/config/flags/preload/array/preload_one.js @@ -1 +1 @@ -global.preload_one = 'preload one!'; +global.preload_one = "preload one!"; diff --git a/test/fixtures/config/flags/preload/array/preload_two.js b/test/fixtures/config/flags/preload/array/preload_two.js index e9014b3e..b7e34207 100644 --- a/test/fixtures/config/flags/preload/array/preload_two.js +++ b/test/fixtures/config/flags/preload/array/preload_two.js @@ -1 +1 @@ -global.preload_two = 'preload two!'; +global.preload_two = "preload two!"; diff --git a/test/fixtures/config/flags/preload/join-flags/.gulp.js b/test/fixtures/config/flags/preload/join-flags/.gulp.js index fe2a9b08..6378884b 100644 --- a/test/fixtures/config/flags/preload/join-flags/.gulp.js +++ b/test/fixtures/config/flags/preload/join-flags/.gulp.js @@ -1,5 +1,3 @@ module.exports = { - preload: [ - "./preload_two" - ] + preload: ["./preload_two"], }; diff --git a/test/fixtures/config/flags/preload/join-flags/gulpfile.js b/test/fixtures/config/flags/preload/join-flags/gulpfile.js index 496e068c..ec445eab 100644 --- a/test/fixtures/config/flags/preload/join-flags/gulpfile.js +++ b/test/fixtures/config/flags/preload/join-flags/gulpfile.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { console.log(global.preload_one); console.log(global.preload_two); done(); diff --git a/test/fixtures/config/flags/preload/join-flags/preload_one.js b/test/fixtures/config/flags/preload/join-flags/preload_one.js index f9a04a11..5b24ed81 100644 --- a/test/fixtures/config/flags/preload/join-flags/preload_one.js +++ b/test/fixtures/config/flags/preload/join-flags/preload_one.js @@ -1 +1 @@ -global.preload_one = 'preload one!'; +global.preload_one = "preload one!"; diff --git a/test/fixtures/config/flags/preload/join-flags/preload_two.js b/test/fixtures/config/flags/preload/join-flags/preload_two.js index e9014b3e..b7e34207 100644 --- a/test/fixtures/config/flags/preload/join-flags/preload_two.js +++ b/test/fixtures/config/flags/preload/join-flags/preload_two.js @@ -1 +1 @@ -global.preload_two = 'preload two!'; +global.preload_two = "preload two!"; diff --git a/test/fixtures/config/flags/preload/preload.js b/test/fixtures/config/flags/preload/preload.js index 3b5d0c74..c9c3fa7f 100644 --- a/test/fixtures/config/flags/preload/preload.js +++ b/test/fixtures/config/flags/preload/preload.js @@ -1 +1 @@ -global.preload = 'hello preload!'; +global.preload = "hello preload!"; diff --git a/test/fixtures/config/flags/preload/string/.gulp.js b/test/fixtures/config/flags/preload/string/.gulp.js index cb913254..c6a10c72 100644 --- a/test/fixtures/config/flags/preload/string/.gulp.js +++ b/test/fixtures/config/flags/preload/string/.gulp.js @@ -1,3 +1,3 @@ module.exports = { - preload: "./preload" + preload: "./preload", }; diff --git a/test/fixtures/config/flags/preload/string/gulpfile.js b/test/fixtures/config/flags/preload/string/gulpfile.js index 91fc5801..f2125741 100644 --- a/test/fixtures/config/flags/preload/string/gulpfile.js +++ b/test/fixtures/config/flags/preload/string/gulpfile.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { console.log(global.preload); done(); }); diff --git a/test/fixtures/config/flags/preload/string/preload.js b/test/fixtures/config/flags/preload/string/preload.js index 3b5d0c74..c9c3fa7f 100644 --- a/test/fixtures/config/flags/preload/string/preload.js +++ b/test/fixtures/config/flags/preload/string/preload.js @@ -1 +1 @@ -global.preload = 'hello preload!'; +global.preload = "hello preload!"; diff --git a/test/fixtures/config/flags/preload/with-absolute/.gulp.js b/test/fixtures/config/flags/preload/with-absolute/.gulp.js index 1e7872b2..3bb0696c 100644 --- a/test/fixtures/config/flags/preload/with-absolute/.gulp.js +++ b/test/fixtures/config/flags/preload/with-absolute/.gulp.js @@ -1,5 +1,5 @@ -var path = require('path'); +var path = require("path"); module.exports = { - preload: path.join(__dirname, '../preload'), + preload: path.join(__dirname, "../preload"), }; diff --git a/test/fixtures/config/flags/preload/with-absolute/gulpfile.js b/test/fixtures/config/flags/preload/with-absolute/gulpfile.js index 91fc5801..f2125741 100644 --- a/test/fixtures/config/flags/preload/with-absolute/gulpfile.js +++ b/test/fixtures/config/flags/preload/with-absolute/gulpfile.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { console.log(global.preload); done(); }); diff --git a/test/fixtures/config/flags/preload/with-cwd/.gulp.js b/test/fixtures/config/flags/preload/with-cwd/.gulp.js index e51966f4..8ef335e3 100644 --- a/test/fixtures/config/flags/preload/with-cwd/.gulp.js +++ b/test/fixtures/config/flags/preload/with-cwd/.gulp.js @@ -1,3 +1,3 @@ module.exports = { - preload: "../preload" + preload: "../preload", }; diff --git a/test/fixtures/config/flags/preload/with-cwd/gulpfile.js b/test/fixtures/config/flags/preload/with-cwd/gulpfile.js index 91fc5801..f2125741 100644 --- a/test/fixtures/config/flags/preload/with-cwd/gulpfile.js +++ b/test/fixtures/config/flags/preload/with-cwd/gulpfile.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { console.log(global.preload); done(); }); diff --git a/test/fixtures/config/flags/series/f/.gulp.js b/test/fixtures/config/flags/series/f/.gulp.js index 6605aca5..9fa4caa4 100644 --- a/test/fixtures/config/flags/series/f/.gulp.js +++ b/test/fixtures/config/flags/series/f/.gulp.js @@ -1,5 +1,5 @@ module.exports = { flags: { - series: false - } + series: false, + }, }; diff --git a/test/fixtures/config/flags/series/f/gulpfile.js b/test/fixtures/config/flags/series/f/gulpfile.js index 803710da..43427046 100644 --- a/test/fixtures/config/flags/series/f/gulpfile.js +++ b/test/fixtures/config/flags/series/f/gulpfile.js @@ -1,6 +1,6 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); function noop(cb) { cb(); @@ -10,5 +10,5 @@ function delayed(cb) { setTimeout(cb, 100); } -gulp.task('task1', delayed); -gulp.task('task2', noop); +gulp.task("task1", delayed); +gulp.task("task2", noop); diff --git a/test/fixtures/config/flags/series/t/.gulp.js b/test/fixtures/config/flags/series/t/.gulp.js index f21fe066..2002667a 100644 --- a/test/fixtures/config/flags/series/t/.gulp.js +++ b/test/fixtures/config/flags/series/t/.gulp.js @@ -1,5 +1,5 @@ module.exports = { flags: { - series: true - } + series: true, + }, }; diff --git a/test/fixtures/config/flags/series/t/gulpfile.js b/test/fixtures/config/flags/series/t/gulpfile.js index 803710da..43427046 100644 --- a/test/fixtures/config/flags/series/t/gulpfile.js +++ b/test/fixtures/config/flags/series/t/gulpfile.js @@ -1,6 +1,6 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); function noop(cb) { cb(); @@ -10,5 +10,5 @@ function delayed(cb) { setTimeout(cb, 100); } -gulp.task('task1', delayed); -gulp.task('task2', noop); +gulp.task("task1", delayed); +gulp.task("task2", noop); diff --git a/test/fixtures/config/flags/silent/f/.gulp.js b/test/fixtures/config/flags/silent/f/.gulp.js index 4630a77a..0075fda4 100644 --- a/test/fixtures/config/flags/silent/f/.gulp.js +++ b/test/fixtures/config/flags/silent/f/.gulp.js @@ -1,5 +1,5 @@ module.exports = { flags: { - silent: false - } + silent: false, + }, }; diff --git a/test/fixtures/config/flags/silent/f/gulpfile.js b/test/fixtures/config/flags/silent/f/gulpfile.js index 42466b03..b9a82922 100644 --- a/test/fixtures/config/flags/silent/f/gulpfile.js +++ b/test/fixtures/config/flags/silent/f/gulpfile.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { done(); }); diff --git a/test/fixtures/config/flags/silent/t/.gulp.js b/test/fixtures/config/flags/silent/t/.gulp.js index 22486fd8..08e93664 100644 --- a/test/fixtures/config/flags/silent/t/.gulp.js +++ b/test/fixtures/config/flags/silent/t/.gulp.js @@ -1,5 +1,5 @@ module.exports = { flags: { - silent: true - } + silent: true, + }, }; diff --git a/test/fixtures/config/flags/silent/t/gulpfile.js b/test/fixtures/config/flags/silent/t/gulpfile.js index 42466b03..b9a82922 100644 --- a/test/fixtures/config/flags/silent/t/gulpfile.js +++ b/test/fixtures/config/flags/silent/t/gulpfile.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { done(); }); diff --git a/test/fixtures/config/flags/sortTasks/f/.gulp.js b/test/fixtures/config/flags/sortTasks/f/.gulp.js index e4640d82..d5113066 100644 --- a/test/fixtures/config/flags/sortTasks/f/.gulp.js +++ b/test/fixtures/config/flags/sortTasks/f/.gulp.js @@ -1,6 +1,6 @@ module.exports = { gulpfile: "../../../../gulpfiles/gulpfile-4.js", flags: { - sortTasks: false - } + sortTasks: false, + }, }; diff --git a/test/fixtures/config/flags/sortTasks/t/.gulp.js b/test/fixtures/config/flags/sortTasks/t/.gulp.js index aae6877b..e65d4029 100644 --- a/test/fixtures/config/flags/sortTasks/t/.gulp.js +++ b/test/fixtures/config/flags/sortTasks/t/.gulp.js @@ -1,6 +1,6 @@ module.exports = { gulpfile: "../../../../gulpfiles/gulpfile-4.js", flags: { - sortTasks: true - } + sortTasks: true, + }, }; diff --git a/test/fixtures/config/flags/tasksDepth/.gulp.js b/test/fixtures/config/flags/tasksDepth/.gulp.js index 6960b163..b87fb285 100644 --- a/test/fixtures/config/flags/tasksDepth/.gulp.js +++ b/test/fixtures/config/flags/tasksDepth/.gulp.js @@ -1,6 +1,6 @@ module.exports = { gulpfile: "../../../gulpfiles/gulpfile-4.js", flags: { - tasksDepth: 4 - } + tasksDepth: 4, + }, }; diff --git a/test/fixtures/config/foo/bar/.gulp.js b/test/fixtures/config/foo/bar/.gulp.js index 4c3e35e7..d997d89d 100644 --- a/test/fixtures/config/foo/bar/.gulp.js +++ b/test/fixtures/config/foo/bar/.gulp.js @@ -1,3 +1,3 @@ module.exports = { - description: "Description by .gulp.json in directory foo/bar" + description: "Description by .gulp.json in directory foo/bar", }; diff --git a/test/fixtures/config/foo/bar/gulpfile.js b/test/fixtures/config/foo/bar/gulpfile.js index 42466b03..b9a82922 100644 --- a/test/fixtures/config/foo/bar/gulpfile.js +++ b/test/fixtures/config/foo/bar/gulpfile.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); -gulp.task('default', function(done) { +gulp.task("default", function (done) { done(); }); diff --git a/test/fixtures/config/foo/bar/quux/.gulp.babel.js b/test/fixtures/config/foo/bar/quux/.gulp.babel.js index 92986942..6cf6f06c 100644 --- a/test/fixtures/config/foo/bar/quux/.gulp.babel.js +++ b/test/fixtures/config/foo/bar/quux/.gulp.babel.js @@ -1 +1 @@ -exports.description = 'DESCRIPTION BY .gulp.babel.js in directory foo/bar/quux' +exports.description = "DESCRIPTION BY .gulp.babel.js in directory foo/bar/quux"; diff --git a/test/fixtures/config/qux/.gulp.js b/test/fixtures/config/qux/.gulp.js index 5af0785a..d232a367 100644 --- a/test/fixtures/config/qux/.gulp.js +++ b/test/fixtures/config/qux/.gulp.js @@ -1,5 +1,5 @@ -'use strict'; +"use strict"; module.exports = { - description: 'description by .gulp.js in directory qux', + description: "description by .gulp.js in directory qux", }; diff --git a/test/fixtures/config/theming/ARGV_ERROR/.gulp.js b/test/fixtures/config/theming/ARGV_ERROR/.gulp.js index 674530d6..00ba78b8 100644 --- a/test/fixtures/config/theming/ARGV_ERROR/.gulp.js +++ b/test/fixtures/config/theming/ARGV_ERROR/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.ARGV_ERROR) { - return '**' + data.message + '**'; + return "**" + data.message + "**"; } - } + }, }; diff --git a/test/fixtures/config/theming/ARGV_ERROR/gulpfile.js b/test/fixtures/config/theming/ARGV_ERROR/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/ARGV_ERROR/gulpfile.js +++ b/test/fixtures/config/theming/ARGV_ERROR/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/COMPLETION_TYPE_MISSING/.gulp.js b/test/fixtures/config/theming/COMPLETION_TYPE_MISSING/.gulp.js index 0d1b6b4d..bc6e41ba 100644 --- a/test/fixtures/config/theming/COMPLETION_TYPE_MISSING/.gulp.js +++ b/test/fixtures/config/theming/COMPLETION_TYPE_MISSING/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.COMPLETION_TYPE_MISSING) { - return 'NO COMPLETION TYPE'; + return "NO COMPLETION TYPE"; } - } + }, }; diff --git a/test/fixtures/config/theming/COMPLETION_TYPE_MISSING/gulpfile.js b/test/fixtures/config/theming/COMPLETION_TYPE_MISSING/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/COMPLETION_TYPE_MISSING/gulpfile.js +++ b/test/fixtures/config/theming/COMPLETION_TYPE_MISSING/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/COMPLETION_TYPE_UNKNOWN/.gulp.js b/test/fixtures/config/theming/COMPLETION_TYPE_UNKNOWN/.gulp.js index 5db07839..22e2f8a7 100644 --- a/test/fixtures/config/theming/COMPLETION_TYPE_UNKNOWN/.gulp.js +++ b/test/fixtures/config/theming/COMPLETION_TYPE_UNKNOWN/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.COMPLETION_TYPE_UNKNOWN) { - return 'GULP COMPLETION TYPE **' + data.name + '** IS NOT FOUND'; + return "GULP COMPLETION TYPE **" + data.name + "** IS NOT FOUND"; } - } + }, }; diff --git a/test/fixtures/config/theming/COMPLETION_TYPE_UNKNOWN/gulpfile.js b/test/fixtures/config/theming/COMPLETION_TYPE_UNKNOWN/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/COMPLETION_TYPE_UNKNOWN/gulpfile.js +++ b/test/fixtures/config/theming/COMPLETION_TYPE_UNKNOWN/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/CWD_CHANGED/.gulp.js b/test/fixtures/config/theming/CWD_CHANGED/.gulp.js index abdb16ba..2cef513a 100644 --- a/test/fixtures/config/theming/CWD_CHANGED/.gulp.js +++ b/test/fixtures/config/theming/CWD_CHANGED/.gulp.js @@ -1,12 +1,12 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.CWD_CHANGED) { - return 'CHANGE CWD TO **' + data.cwd + '**'; + return "CHANGE CWD TO **" + data.cwd + "**"; } // Silence all other messages for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/CWD_CHANGED/gulpfile.js b/test/fixtures/config/theming/CWD_CHANGED/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/CWD_CHANGED/gulpfile.js +++ b/test/fixtures/config/theming/CWD_CHANGED/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/DESCRIPTION/.gulp.js b/test/fixtures/config/theming/DESCRIPTION/.gulp.js index 6bfacc09..bf9bc954 100644 --- a/test/fixtures/config/theming/DESCRIPTION/.gulp.js +++ b/test/fixtures/config/theming/DESCRIPTION/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.DESCRIPTION) { - return '**DESCRIPTION**'; + return "**DESCRIPTION**"; } - } + }, }; diff --git a/test/fixtures/config/theming/DESCRIPTION/gulpfile.js b/test/fixtures/config/theming/DESCRIPTION/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/DESCRIPTION/gulpfile.js +++ b/test/fixtures/config/theming/DESCRIPTION/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/DESCRIPTION/remove/.gulp.js b/test/fixtures/config/theming/DESCRIPTION/remove/.gulp.js index 8031c96d..9f98cb0b 100644 --- a/test/fixtures/config/theming/DESCRIPTION/remove/.gulp.js +++ b/test/fixtures/config/theming/DESCRIPTION/remove/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.DESCRIPTION) { return false; } - } + }, }; diff --git a/test/fixtures/config/theming/DESCRIPTION/remove/gulpfile.js b/test/fixtures/config/theming/DESCRIPTION/remove/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/DESCRIPTION/remove/gulpfile.js +++ b/test/fixtures/config/theming/DESCRIPTION/remove/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/EXEC_ERROR/.gulp.js b/test/fixtures/config/theming/EXEC_ERROR/.gulp.js index 853d150c..b67de4e3 100644 --- a/test/fixtures/config/theming/EXEC_ERROR/.gulp.js +++ b/test/fixtures/config/theming/EXEC_ERROR/.gulp.js @@ -1,13 +1,13 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.EXEC_ERROR) { - return 'FAIL TO RUN'; + return "FAIL TO RUN"; } if (data.tag === messages.GULPFILE) { - throw new Error('Crash before task execution'); + throw new Error("Crash before task execution"); } - } + }, }; diff --git a/test/fixtures/config/theming/EXEC_ERROR/gulpfile.js b/test/fixtures/config/theming/EXEC_ERROR/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/EXEC_ERROR/gulpfile.js +++ b/test/fixtures/config/theming/EXEC_ERROR/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/GULPFILE/.gulp.js b/test/fixtures/config/theming/GULPFILE/.gulp.js index cbc5684f..b670c6f8 100644 --- a/test/fixtures/config/theming/GULPFILE/.gulp.js +++ b/test/fixtures/config/theming/GULPFILE/.gulp.js @@ -1,13 +1,12 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.GULPFILE) { - return 'USING GULPFILE **abcxyz**'; + return "USING GULPFILE **abcxyz**"; } // Silence all other messages for test return false; - } + }, }; - diff --git a/test/fixtures/config/theming/GULPFILE/gulpfile.js b/test/fixtures/config/theming/GULPFILE/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/GULPFILE/gulpfile.js +++ b/test/fixtures/config/theming/GULPFILE/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/GULPLOG_DEPRECATED/.gulp.js b/test/fixtures/config/theming/GULPLOG_DEPRECATED/.gulp.js index 413c704b..5e8fa923 100644 --- a/test/fixtures/config/theming/GULPLOG_DEPRECATED/.gulp.js +++ b/test/fixtures/config/theming/GULPLOG_DEPRECATED/.gulp.js @@ -1,14 +1,14 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.GULPLOG_DEPRECATED) { - return 'GULPLOG V1 IS DEPRECATED'; + return "GULPLOG V1 IS DEPRECATED"; } return false; }, timestamp: function () { return false; - } + }, }; diff --git a/test/fixtures/config/theming/GULPLOG_DEPRECATED/gulpfile.js b/test/fixtures/config/theming/GULPLOG_DEPRECATED/gulpfile.js index aa34f0c8..3bc4630b 100644 --- a/test/fixtures/config/theming/GULPLOG_DEPRECATED/gulpfile.js +++ b/test/fixtures/config/theming/GULPLOG_DEPRECATED/gulpfile.js @@ -1,6 +1,6 @@ -var gulplog = require('@gulpjs/gulplog-v1'); +var gulplog = require("@gulpjs/gulplog-v1"); -exports.default = function(done) { - gulplog.error('Some error here'); +exports.default = function (done) { + gulplog.error("Some error here"); done(); -} +}; diff --git a/test/fixtures/config/theming/LOADER_FAILURE/.gulp.js b/test/fixtures/config/theming/LOADER_FAILURE/.gulp.js index 6ae4c154..1b94d290 100644 --- a/test/fixtures/config/theming/LOADER_FAILURE/.gulp.js +++ b/test/fixtures/config/theming/LOADER_FAILURE/.gulp.js @@ -1,14 +1,14 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.LOADER_FAILURE) { - return 'FAIL TO LOAD **' + data.name + '**'; + return "FAIL TO LOAD **" + data.name + "**"; } if (data.tag === messages.LOADER_ERROR) { // Silence for test return false; } - } + }, }; diff --git a/test/fixtures/config/theming/LOADER_SUCCESS/.gulp.js b/test/fixtures/config/theming/LOADER_SUCCESS/.gulp.js index 2079b8ac..c7a95f95 100644 --- a/test/fixtures/config/theming/LOADER_SUCCESS/.gulp.js +++ b/test/fixtures/config/theming/LOADER_SUCCESS/.gulp.js @@ -1,12 +1,12 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.LOADER_SUCCESS) { - return 'LOADED **' + data.name + '**!'; + return "LOADED **" + data.name + "**!"; } // Silence all other messages for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/LOADER_SUCCESS/gulpfile.babel.js b/test/fixtures/config/theming/LOADER_SUCCESS/gulpfile.babel.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/LOADER_SUCCESS/gulpfile.babel.js +++ b/test/fixtures/config/theming/LOADER_SUCCESS/gulpfile.babel.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/MISSING_GULP/.gulp.js b/test/fixtures/config/theming/MISSING_GULP/.gulp.js index a01c5ca4..c80eff60 100644 --- a/test/fixtures/config/theming/MISSING_GULP/.gulp.js +++ b/test/fixtures/config/theming/MISSING_GULP/.gulp.js @@ -1,16 +1,16 @@ module.exports = { message: function (data) { // Using `Symbol.for()` to avoid node_modules - if (data.tag === Symbol.for('GULP_CLI_MISSING_GULP')) { - return 'GULP NOT FOUND IN **' + data.cwd + '**'; + if (data.tag === Symbol.for("GULP_CLI_MISSING_GULP")) { + return "GULP NOT FOUND IN **" + data.cwd + "**"; } - if (data.tag === Symbol.for('GULP_CLI_NPM_INSTALL_GULP')) { + if (data.tag === Symbol.for("GULP_CLI_NPM_INSTALL_GULP")) { // Silence for test return false; } }, timestamp: function () { return false; - } + }, }; diff --git a/test/fixtures/config/theming/MISSING_GULPFILE/.gulp.js b/test/fixtures/config/theming/MISSING_GULPFILE/.gulp.js index f5c441a7..a2f57d97 100644 --- a/test/fixtures/config/theming/MISSING_GULPFILE/.gulp.js +++ b/test/fixtures/config/theming/MISSING_GULPFILE/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.MISSING_GULPFILE) { - return 'NO GULPFILE'; + return "NO GULPFILE"; } - } + }, }; diff --git a/test/fixtures/config/theming/MISSING_NODE_MODULES/.gulp.js b/test/fixtures/config/theming/MISSING_NODE_MODULES/.gulp.js index 80cca25d..e25c511b 100644 --- a/test/fixtures/config/theming/MISSING_NODE_MODULES/.gulp.js +++ b/test/fixtures/config/theming/MISSING_NODE_MODULES/.gulp.js @@ -1,14 +1,13 @@ module.exports = { message: function (data) { // Using `Symbol.for()` to avoid node_modules - if (data.tag === Symbol.for('GULP_CLI_MISSING_NODE_MODULES')) { - return 'LOCAL MODULE NOT FOUND **' + data.cwd + '**'; + if (data.tag === Symbol.for("GULP_CLI_MISSING_NODE_MODULES")) { + return "LOCAL MODULE NOT FOUND **" + data.cwd + "**"; } - if (data.tag === Symbol.for('GULP_CLI_NPM_INSTALL')) { + if (data.tag === Symbol.for("GULP_CLI_NPM_INSTALL")) { // Silence for test return false; } - } + }, }; - diff --git a/test/fixtures/config/theming/NODE_FLAGS/.gulp.js b/test/fixtures/config/theming/NODE_FLAGS/.gulp.js index 33127d58..c965e57e 100644 --- a/test/fixtures/config/theming/NODE_FLAGS/.gulp.js +++ b/test/fixtures/config/theming/NODE_FLAGS/.gulp.js @@ -1,12 +1,12 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.NODE_FLAGS) { - return 'RESPAWNED BY **' + data.flags + '**!'; + return "RESPAWNED BY **" + data.flags + "**!"; } // Silence all other messages for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/NODE_FLAGS/gulpfile.js b/test/fixtures/config/theming/NODE_FLAGS/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/NODE_FLAGS/gulpfile.js +++ b/test/fixtures/config/theming/NODE_FLAGS/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/PRELOAD_BEFORE/.gulp.js b/test/fixtures/config/theming/PRELOAD_BEFORE/.gulp.js index a9ccf495..43e0503d 100644 --- a/test/fixtures/config/theming/PRELOAD_BEFORE/.gulp.js +++ b/test/fixtures/config/theming/PRELOAD_BEFORE/.gulp.js @@ -1,12 +1,12 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.PRELOAD_BEFORE) { - return 'PRELOADING **' + data.name + '**!'; + return "PRELOADING **" + data.name + "**!"; } // Silence all other messages for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/PRELOAD_BEFORE/gulpfile.js b/test/fixtures/config/theming/PRELOAD_BEFORE/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/PRELOAD_BEFORE/gulpfile.js +++ b/test/fixtures/config/theming/PRELOAD_BEFORE/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/PRELOAD_BEFORE/preload.js b/test/fixtures/config/theming/PRELOAD_BEFORE/preload.js index 3b5d0c74..c9c3fa7f 100644 --- a/test/fixtures/config/theming/PRELOAD_BEFORE/preload.js +++ b/test/fixtures/config/theming/PRELOAD_BEFORE/preload.js @@ -1 +1 @@ -global.preload = 'hello preload!'; +global.preload = "hello preload!"; diff --git a/test/fixtures/config/theming/PRELOAD_FAILURE/.gulp.js b/test/fixtures/config/theming/PRELOAD_FAILURE/.gulp.js index fc2a1570..ac7c9c81 100644 --- a/test/fixtures/config/theming/PRELOAD_FAILURE/.gulp.js +++ b/test/fixtures/config/theming/PRELOAD_FAILURE/.gulp.js @@ -1,12 +1,12 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.PRELOAD_FAILURE) { - return 'FAILED TO PRELOAD **' + data.name + '**'; + return "FAILED TO PRELOAD **" + data.name + "**"; } // Silence everything else for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/PRELOAD_FAILURE/gulpfile.js b/test/fixtures/config/theming/PRELOAD_FAILURE/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/PRELOAD_FAILURE/gulpfile.js +++ b/test/fixtures/config/theming/PRELOAD_FAILURE/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/PRELOAD_SUCCESS/.gulp.js b/test/fixtures/config/theming/PRELOAD_SUCCESS/.gulp.js index 177818cc..b7f3294c 100644 --- a/test/fixtures/config/theming/PRELOAD_SUCCESS/.gulp.js +++ b/test/fixtures/config/theming/PRELOAD_SUCCESS/.gulp.js @@ -1,12 +1,12 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.PRELOAD_SUCCESS) { - return 'PRELOADED **' + data.name + '**!'; + return "PRELOADED **" + data.name + "**!"; } // Silence all other messages for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/PRELOAD_SUCCESS/gulpfile.js b/test/fixtures/config/theming/PRELOAD_SUCCESS/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/PRELOAD_SUCCESS/gulpfile.js +++ b/test/fixtures/config/theming/PRELOAD_SUCCESS/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/PRELOAD_SUCCESS/preload.js b/test/fixtures/config/theming/PRELOAD_SUCCESS/preload.js index 3b5d0c74..c9c3fa7f 100644 --- a/test/fixtures/config/theming/PRELOAD_SUCCESS/preload.js +++ b/test/fixtures/config/theming/PRELOAD_SUCCESS/preload.js @@ -1 +1 @@ -global.preload = 'hello preload!'; +global.preload = "hello preload!"; diff --git a/test/fixtures/config/theming/RESPAWNED/.gulp.js b/test/fixtures/config/theming/RESPAWNED/.gulp.js index 1b79a3c7..383264ef 100644 --- a/test/fixtures/config/theming/RESPAWNED/.gulp.js +++ b/test/fixtures/config/theming/RESPAWNED/.gulp.js @@ -1,12 +1,12 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.RESPAWNED) { - return 'RESPAWN!'; + return "RESPAWN!"; } // Silence all other messages for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/RESPAWNED/gulpfile.js b/test/fixtures/config/theming/RESPAWNED/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/RESPAWNED/gulpfile.js +++ b/test/fixtures/config/theming/RESPAWNED/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/TASK_ERROR/.gulp.js b/test/fixtures/config/theming/TASK_ERROR/.gulp.js index 77f9004a..76766631 100644 --- a/test/fixtures/config/theming/TASK_ERROR/.gulp.js +++ b/test/fixtures/config/theming/TASK_ERROR/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.TASK_ERROR) { - return '**TASK ERROR**'; + return "**TASK ERROR**"; } // Silence everything else for test @@ -12,5 +12,5 @@ module.exports = { timestamp: function () { // Silence timestamps for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/TASK_ERROR/gulpfile.js b/test/fixtures/config/theming/TASK_ERROR/gulpfile.js index eeb90fd6..b9880847 100644 --- a/test/fixtures/config/theming/TASK_ERROR/gulpfile.js +++ b/test/fixtures/config/theming/TASK_ERROR/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { - throw new Error('FAIL!'); -} +exports.default = function (done) { + throw new Error("FAIL!"); +}; diff --git a/test/fixtures/config/theming/TASK_FAILURE/.gulp.js b/test/fixtures/config/theming/TASK_FAILURE/.gulp.js index af699b5e..fdb6d5e3 100644 --- a/test/fixtures/config/theming/TASK_FAILURE/.gulp.js +++ b/test/fixtures/config/theming/TASK_FAILURE/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.TASK_FAILURE) { - return 'TASK FAILURE: **' + data.task + '**'; + return "TASK FAILURE: **" + data.task + "**"; } // Silence everything else for test @@ -12,5 +12,5 @@ module.exports = { timestamp: function () { // Silence timestamps for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/TASK_FAILURE/gulpfile.js b/test/fixtures/config/theming/TASK_FAILURE/gulpfile.js index eeb90fd6..b9880847 100644 --- a/test/fixtures/config/theming/TASK_FAILURE/gulpfile.js +++ b/test/fixtures/config/theming/TASK_FAILURE/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { - throw new Error('FAIL!'); -} +exports.default = function (done) { + throw new Error("FAIL!"); +}; diff --git a/test/fixtures/config/theming/TASK_MISSING/.gulp.js b/test/fixtures/config/theming/TASK_MISSING/.gulp.js index 153f09fa..f1c0f183 100644 --- a/test/fixtures/config/theming/TASK_MISSING/.gulp.js +++ b/test/fixtures/config/theming/TASK_MISSING/.gulp.js @@ -1,13 +1,19 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.GULPFILE) { - return 'Using gulpfile!'; + return "Using gulpfile!"; } if (data.tag === messages.TASK_MISSING) { - return 'TASK IS NOT FOUND: **' + data.task + '** SIMILAR ##' + data.similar.join('') + '##'; + return ( + "TASK IS NOT FOUND: **" + + data.task + + "** SIMILAR ##" + + data.similar.join("") + + "##" + ); } - } + }, }; diff --git a/test/fixtures/config/theming/TASK_MISSING/gulpfile.js b/test/fixtures/config/theming/TASK_MISSING/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/TASK_MISSING/gulpfile.js +++ b/test/fixtures/config/theming/TASK_MISSING/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/TASK_START/.gulp.js b/test/fixtures/config/theming/TASK_START/.gulp.js index 671c2c5c..65cdb877 100644 --- a/test/fixtures/config/theming/TASK_START/.gulp.js +++ b/test/fixtures/config/theming/TASK_START/.gulp.js @@ -1,12 +1,12 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.TASK_START) { - return 'START **' + data.task + '**'; + return "START **" + data.task + "**"; } // Silence all other messages for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/TASK_START/gulpfile.js b/test/fixtures/config/theming/TASK_START/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/TASK_START/gulpfile.js +++ b/test/fixtures/config/theming/TASK_START/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/TASK_STOP/.gulp.js b/test/fixtures/config/theming/TASK_STOP/.gulp.js index 23eee49b..bfbd00ef 100644 --- a/test/fixtures/config/theming/TASK_STOP/.gulp.js +++ b/test/fixtures/config/theming/TASK_STOP/.gulp.js @@ -1,12 +1,12 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.TASK_STOP) { - return 'STOP **' + data.task + '**'; + return "STOP **" + data.task + "**"; } // Silence all other messages for test return false; - } + }, }; diff --git a/test/fixtures/config/theming/TASK_STOP/gulpfile.js b/test/fixtures/config/theming/TASK_STOP/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/TASK_STOP/gulpfile.js +++ b/test/fixtures/config/theming/TASK_STOP/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/TASK_SYNC/.gulp.js b/test/fixtures/config/theming/TASK_SYNC/.gulp.js index a4911fe5..470e5408 100644 --- a/test/fixtures/config/theming/TASK_SYNC/.gulp.js +++ b/test/fixtures/config/theming/TASK_SYNC/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.TASK_SYNC) { - return 'TASK **' + data.tasks + '** DID NOT COMPLETE'; + return "TASK **" + data.tasks + "** DID NOT COMPLETE"; } - } + }, }; diff --git a/test/fixtures/config/theming/TASK_SYNC/gulpfile.js b/test/fixtures/config/theming/TASK_SYNC/gulpfile.js index 1e950f9a..787666d8 100644 --- a/test/fixtures/config/theming/TASK_SYNC/gulpfile.js +++ b/test/fixtures/config/theming/TASK_SYNC/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { //done(); -} +}; diff --git a/test/fixtures/config/theming/UNSUPPORTED_GULP_VERSION/.gulp.js b/test/fixtures/config/theming/UNSUPPORTED_GULP_VERSION/.gulp.js index 47159f8f..71541cee 100644 --- a/test/fixtures/config/theming/UNSUPPORTED_GULP_VERSION/.gulp.js +++ b/test/fixtures/config/theming/UNSUPPORTED_GULP_VERSION/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.UNSUPPORTED_GULP_VERSION) { - return 'BAD GULP VERSION **' + data.version + '**'; + return "BAD GULP VERSION **" + data.version + "**"; } - } + }, }; diff --git a/test/fixtures/config/theming/UNSUPPORTED_GULP_VERSION/gulpfile.js b/test/fixtures/config/theming/UNSUPPORTED_GULP_VERSION/gulpfile.js index db73dd16..3003c29b 100644 --- a/test/fixtures/config/theming/UNSUPPORTED_GULP_VERSION/gulpfile.js +++ b/test/fixtures/config/theming/UNSUPPORTED_GULP_VERSION/gulpfile.js @@ -1,3 +1,3 @@ -exports.default = function(done) { +exports.default = function (done) { done(); -} +}; diff --git a/test/fixtures/config/theming/USAGE/.gulp.js b/test/fixtures/config/theming/USAGE/.gulp.js index 0c064d41..2f4a7877 100644 --- a/test/fixtures/config/theming/USAGE/.gulp.js +++ b/test/fixtures/config/theming/USAGE/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.USAGE) { - return 'GULP USAGE'; + return "GULP USAGE"; } - } + }, }; diff --git a/test/fixtures/config/theming/flags/.gulp.js b/test/fixtures/config/theming/flags/.gulp.js index 72020819..efdcb9c0 100644 --- a/test/fixtures/config/theming/flags/.gulp.js +++ b/test/fixtures/config/theming/flags/.gulp.js @@ -1,76 +1,76 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.FLAG_HELP) { - return '**HELP**'; + return "**HELP**"; } if (data.tag === messages.FLAG_VERSION) { - return '**VERSION**'; + return "**VERSION**"; } if (data.tag === messages.FLAG_PRELOAD) { - return '**PRELOAD**'; + return "**PRELOAD**"; } if (data.tag === messages.FLAG_GULPFILE) { - return '**GULPFILE**'; + return "**GULPFILE**"; } if (data.tag === messages.FLAG_CWD) { - return '**CWD**'; + return "**CWD**"; } if (data.tag === messages.FLAG_TASKS) { - return '**TASKS**'; + return "**TASKS**"; } if (data.tag === messages.FLAG_TASKS_SIMPLE) { - return '**TASKS SIMPLE**'; + return "**TASKS SIMPLE**"; } if (data.tag === messages.FLAG_TASKS_JSON) { - return '**TASKS JSON**'; + return "**TASKS JSON**"; } if (data.tag === messages.FLAG_TASKS_DEPTH) { - return '**TASKS DEPTH**'; + return "**TASKS DEPTH**"; } if (data.tag === messages.FLAG_COMPACT_TASKS) { - return '**COMPACT TASKS**'; + return "**COMPACT TASKS**"; } if (data.tag === messages.FLAG_SORT_TASKS) { - return '**SORT_TASKS**'; + return "**SORT_TASKS**"; } if (data.tag === messages.FLAG_COLOR) { - return '**COLOR**'; + return "**COLOR**"; } if (data.tag === messages.FLAG_NO_COLOR) { - return '**NO COLOR**'; + return "**NO COLOR**"; } if (data.tag === messages.FLAG_SILENT) { - return '**SILENT**'; + return "**SILENT**"; } if (data.tag === messages.FLAG_CONTINUE) { - return '**CONTINUE**'; + return "**CONTINUE**"; } if (data.tag === messages.FLAG_SERIES) { - return '**SERIES**'; + return "**SERIES**"; } if (data.tag === messages.FLAG_LOG_LEVEL) { - return '**LOG LEVEL**'; + return "**LOG LEVEL**"; } // Silence all other messages for test return false; - } + }, }; diff --git a/test/fixtures/errors/package.json b/test/fixtures/errors/package.json index dbe8ece4..109c443c 100644 --- a/test/fixtures/errors/package.json +++ b/test/fixtures/errors/package.json @@ -2,10 +2,8 @@ "name": "gulp", "description": "Test Package for Testing!", "version": "1.2.3", - "tags": [ - ], - "files": [ - ], + "tags": [], + "files": [], "licenses": [ { "type": "MIT", diff --git a/test/fixtures/gulpfiles/.gulp.js b/test/fixtures/gulpfiles/.gulp.js index 33b2e061..658f88f4 100644 --- a/test/fixtures/gulpfiles/.gulp.js +++ b/test/fixtures/gulpfiles/.gulp.js @@ -1,9 +1,9 @@ -var messages = require('@gulpjs/messages'); +var messages = require("@gulpjs/messages"); module.exports = { message: function (data) { if (data.tag === messages.DESCRIPTION) { return "gulp-cli/test/fixtures/gulpfiles"; } - } + }, }; diff --git a/test/fixtures/gulpfiles/by-unwrap-and-not-by-unwrap.js b/test/fixtures/gulpfiles/by-unwrap-and-not-by-unwrap.js index 03c34931..01c8f545 100644 --- a/test/fixtures/gulpfiles/by-unwrap-and-not-by-unwrap.js +++ b/test/fixtures/gulpfiles/by-unwrap-and-not-by-unwrap.js @@ -1,57 +1,55 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); // Test case when description and flags are gotten by gulp.task(name) -gulp.task('task1', function() {}); -gulp.task('task1').description = 'Description for gulp.task("task1")'; -gulp.task('task1').flags = { - '--flag-of-task1': 'Description for flag of task1', +gulp.task("task1", function () {}); +gulp.task("task1").description = 'Description for gulp.task("task1")'; +gulp.task("task1").flags = { + "--flag-of-task1": "Description for flag of task1", }; // Test case when description and flags are gotten by gulp.task(name).unwrap() -gulp.task('task2', function() {}); -if (!gulp.task('task2').unwrap) { - var fn2 = function() {}; - gulp.task('task2').unwrap = function() { +gulp.task("task2", function () {}); +if (!gulp.task("task2").unwrap) { + var fn2 = function () {}; + gulp.task("task2").unwrap = function () { return fn2; }; } -gulp.task('task2').unwrap().description = +gulp.task("task2").unwrap().description = 'Description for gulp.task("task2").unwrap()'; -gulp.task('task2').unwrap().flags = { - '--flag-of-task2': 'Description for flag of task2', +gulp.task("task2").unwrap().flags = { + "--flag-of-task2": "Description for flag of task2", }; // Test case when description and flags are gotten by both gulp.task(name) and // gulp.task(name).unwrap() => Use things by gulp.task(name) preferentially. -gulp.task('task3', function() {}); -if (!gulp.task('task3').unwrap) { - var fn3 = function() {}; - gulp.task('task3').unwrap = function() { +gulp.task("task3", function () {}); +if (!gulp.task("task3").unwrap) { + var fn3 = function () {}; + gulp.task("task3").unwrap = function () { return fn3; }; } -gulp.task('task3').description = +gulp.task("task3").description = 'Use gulp.task("task3").description preferentially'; -gulp.task('task3').flags = { - '--flag0-of-task3': 'Description for flag0 of task3', - '--flag1-of-task3': 'Use gulp.task("task3").flags preferentially', +gulp.task("task3").flags = { + "--flag0-of-task3": "Description for flag0 of task3", + "--flag1-of-task3": 'Use gulp.task("task3").flags preferentially', }; -gulp.task('task3').unwrap().description = - 'This description should not output'; -gulp.task('task3').unwrap().flags = { - '--flag1-of-task3': 'This description should not output', - '--flag2-of-task3': 'This description should not output', +gulp.task("task3").unwrap().description = "This description should not output"; +gulp.task("task3").unwrap().flags = { + "--flag1-of-task3": "This description should not output", + "--flag2-of-task3": "This description should not output", }; -gulp.task('no-desc', function() {}); -if (!gulp.task('no-desc').unwrap) { - var fn4 = function() {}; - gulp.task('no-desc').unwrap = function() { +gulp.task("no-desc", function () {}); +if (!gulp.task("no-desc").unwrap) { + var fn4 = function () {}; + gulp.task("no-desc").unwrap = function () { return fn4; }; } -gulp.task('default', gulp.series('task1', gulp.parallel('task2', 'task3'))); - +gulp.task("default", gulp.series("task1", gulp.parallel("task2", "task3"))); diff --git a/test/fixtures/gulpfiles/gulpfile-2.js b/test/fixtures/gulpfiles/gulpfile-2.js index 42ccfb6e..4bf0f39d 100644 --- a/test/fixtures/gulpfiles/gulpfile-2.js +++ b/test/fixtures/gulpfiles/gulpfile-2.js @@ -1,9 +1,9 @@ -'use strict'; -var gulp = require('gulp'); +"use strict"; +var gulp = require("gulp"); function logGulpfilePath(cb) { console.log(__filename); return cb(); } -gulp.task('default', gulp.series(logGulpfilePath)); +gulp.task("default", gulp.series(logGulpfilePath)); diff --git a/test/fixtures/gulpfiles/gulpfile-3.8.10.js b/test/fixtures/gulpfiles/gulpfile-3.8.10.js index 9b408f25..3a6d507b 100644 --- a/test/fixtures/gulpfiles/gulpfile-3.8.10.js +++ b/test/fixtures/gulpfiles/gulpfile-3.8.10.js @@ -1,12 +1,12 @@ -'use strict'; -var gulp = require('gulp'); +"use strict"; +var gulp = require("gulp"); function noop() {} function described() {} -described.description = 'description'; +described.description = "description"; -gulp.task('test1', noop); -gulp.task('test2', ['test1'], noop); -gulp.task('test3', described); +gulp.task("test1", noop); +gulp.task("test2", ["test1"], noop); +gulp.task("test3", described); -gulp.task('default', ['test1', 'test3'], noop); +gulp.task("default", ["test1", "test3"], noop); diff --git a/test/fixtures/gulpfiles/gulpfile-4.js b/test/fixtures/gulpfiles/gulpfile-4.js index 79ab3653..24d9a1e1 100644 --- a/test/fixtures/gulpfiles/gulpfile-4.js +++ b/test/fixtures/gulpfiles/gulpfile-4.js @@ -1,6 +1,6 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); function func1(done) { done(); @@ -18,9 +18,8 @@ function func4(done) { done(); } -gulp.task('taskC', gulp.series(func1, func2)); +gulp.task("taskC", gulp.series(func1, func2)); -gulp.task('taskB', gulp.parallel(func3, 'taskC')); - -gulp.task('default', gulp.parallel('taskC', gulp.series('taskB', func4))); +gulp.task("taskB", gulp.parallel(func3, "taskC")); +gulp.task("default", gulp.parallel("taskC", gulp.series("taskB", func4))); diff --git a/test/fixtures/gulpfiles/gulpfile-babel.babel.js b/test/fixtures/gulpfiles/gulpfile-babel.babel.js index 24cbbd5b..b5df70b9 100644 --- a/test/fixtures/gulpfiles/gulpfile-babel.babel.js +++ b/test/fixtures/gulpfiles/gulpfile-babel.babel.js @@ -1,6 +1,6 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); function noop(cb) { cb(); @@ -15,7 +15,7 @@ function delayed(cb) { } function errorFunction() { - throw new Error('Error!'); + throw new Error("Error!"); } function anon(cb) { cb(); @@ -29,15 +29,15 @@ function notCompleting2() { // Callback is not called } -described.description = 'description'; +described.description = "description"; -gulp.task('test1', gulp.series(noop)); -gulp.task('test2', gulp.series('test1', noop)); -gulp.task('test3', gulp.series(described)); -gulp.task('test4', gulp.series(errorFunction, anon)); -gulp.task('test5', delayed); -gulp.task('test6', noop); -gulp.task('test7', notCompleting1); -gulp.task('test8', notCompleting2); +gulp.task("test1", gulp.series(noop)); +gulp.task("test2", gulp.series("test1", noop)); +gulp.task("test3", gulp.series(described)); +gulp.task("test4", gulp.series(errorFunction, anon)); +gulp.task("test5", delayed); +gulp.task("test6", noop); +gulp.task("test7", notCompleting1); +gulp.task("test8", notCompleting2); -gulp.task('default', gulp.series('test1', 'test3', noop)); +gulp.task("default", gulp.series("test1", "test3", noop)); diff --git a/test/fixtures/gulpfiles/gulpfile-dedup-errorlog.js b/test/fixtures/gulpfiles/gulpfile-dedup-errorlog.js index a9066b64..6a28020d 100644 --- a/test/fixtures/gulpfiles/gulpfile-dedup-errorlog.js +++ b/test/fixtures/gulpfiles/gulpfile-dedup-errorlog.js @@ -1,7 +1,7 @@ -'use strict'; -var gulp = require('gulp'); -gulp.task('a', function() { - throw new Error('Task \'a\' failed!'); +"use strict"; +var gulp = require("gulp"); +gulp.task("a", function () { + throw new Error("Task 'a' failed!"); }); -gulp.task('b', gulp.parallel('a')); -gulp.task('default', gulp.series(gulp.parallel('b'))); +gulp.task("b", gulp.parallel("a")); +gulp.task("default", gulp.series(gulp.parallel("b"))); diff --git a/test/fixtures/gulpfiles/gulpfile-exports.babel.js b/test/fixtures/gulpfiles/gulpfile-exports.babel.js index f27b370c..10005e24 100644 --- a/test/fixtures/gulpfiles/gulpfile-exports.babel.js +++ b/test/fixtures/gulpfiles/gulpfile-exports.babel.js @@ -1,22 +1,22 @@ // jscs:disable -'use strict'; +"use strict"; -import gulp from 'gulp'; +import gulp from "gulp"; -export function clean(){}; -export function build(){}; -export const string = 'no function'; +export function clean() {} +export function build() {} +export const string = "no function"; export const dist = gulp.series(clean, build); -function p1(){} -function p2(){} +function p1() {} +function p2() {} export const p = gulp.parallel(p1, p2); export const sTest = gulp.series(clean, build); -sTest.displayName = 's-test'; +sTest.displayName = "s-test"; export const pTest = gulp.parallel(p1, p2); -pTest.displayName = 'p-test'; +pTest.displayName = "p-test"; -export function fTest(){}; -fTest.displayName = 'f-test'; +export function fTest() {} +fTest.displayName = "f-test"; diff --git a/test/fixtures/gulpfiles/gulpfile-parallel-failure.js b/test/fixtures/gulpfiles/gulpfile-parallel-failure.js index c5c2079c..9317bdcd 100644 --- a/test/fixtures/gulpfiles/gulpfile-parallel-failure.js +++ b/test/fixtures/gulpfiles/gulpfile-parallel-failure.js @@ -1,18 +1,18 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); function noop(cb) { cb(); } function errorFunction(cb) { - cb(new Error('Error!')); + cb(new Error("Error!")); } function notCompleting1() { // Callback is not called } -gulp.task('default', gulp.parallel(errorFunction, noop)); -gulp.task('broken', gulp.parallel(errorFunction, noop, notCompleting1)); +gulp.task("default", gulp.parallel(errorFunction, noop)); +gulp.task("broken", gulp.parallel(errorFunction, noop, notCompleting1)); diff --git a/test/fixtures/gulpfiles/gulpfile-tla.mjs b/test/fixtures/gulpfiles/gulpfile-tla.mjs index c6a97a4d..bf46367d 100644 --- a/test/fixtures/gulpfiles/gulpfile-tla.mjs +++ b/test/fixtures/gulpfiles/gulpfile-tla.mjs @@ -3,5 +3,5 @@ const dynamicNoop = await Promise.resolve(function noop(cb) { }); export const registered = dynamicNoop; -export function exported(){}; -export const string = 'no function'; +export function exported() {} +export const string = "no function"; diff --git a/test/fixtures/gulpfiles/gulpfile.js b/test/fixtures/gulpfiles/gulpfile.js index 24cbbd5b..b5df70b9 100644 --- a/test/fixtures/gulpfiles/gulpfile.js +++ b/test/fixtures/gulpfiles/gulpfile.js @@ -1,6 +1,6 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); function noop(cb) { cb(); @@ -15,7 +15,7 @@ function delayed(cb) { } function errorFunction() { - throw new Error('Error!'); + throw new Error("Error!"); } function anon(cb) { cb(); @@ -29,15 +29,15 @@ function notCompleting2() { // Callback is not called } -described.description = 'description'; +described.description = "description"; -gulp.task('test1', gulp.series(noop)); -gulp.task('test2', gulp.series('test1', noop)); -gulp.task('test3', gulp.series(described)); -gulp.task('test4', gulp.series(errorFunction, anon)); -gulp.task('test5', delayed); -gulp.task('test6', noop); -gulp.task('test7', notCompleting1); -gulp.task('test8', notCompleting2); +gulp.task("test1", gulp.series(noop)); +gulp.task("test2", gulp.series("test1", noop)); +gulp.task("test3", gulp.series(described)); +gulp.task("test4", gulp.series(errorFunction, anon)); +gulp.task("test5", delayed); +gulp.task("test6", noop); +gulp.task("test7", notCompleting1); +gulp.task("test8", notCompleting2); -gulp.task('default', gulp.series('test1', 'test3', noop)); +gulp.task("default", gulp.series("test1", "test3", noop)); diff --git a/test/fixtures/gulpfiles/gulpfile.mjs b/test/fixtures/gulpfiles/gulpfile.mjs index 0b2b3885..6b3c01ff 100644 --- a/test/fixtures/gulpfiles/gulpfile.mjs +++ b/test/fixtures/gulpfiles/gulpfile.mjs @@ -1,10 +1,10 @@ -import gulp from 'gulp'; +import gulp from "gulp"; function noop(cb) { cb(); } -gulp.task('registered', noop); +gulp.task("registered", noop); -export function exported(){}; -export const string = 'no function'; +export function exported() {} +export const string = "no function"; diff --git a/test/fixtures/gulpfiles/with-desc-and-flags.js b/test/fixtures/gulpfiles/with-desc-and-flags.js index 8a6937f4..5e8fc76b 100644 --- a/test/fixtures/gulpfiles/with-desc-and-flags.js +++ b/test/fixtures/gulpfiles/with-desc-and-flags.js @@ -1,38 +1,38 @@ -'use strict'; +"use strict"; -var gulp = require('gulp'); +var gulp = require("gulp"); function clean() {} -clean.description = 'Delete dist folder'; +clean.description = "Delete dist folder"; gulp.task(clean); -gulp.task('scripts', scripts); +gulp.task("scripts", scripts); function scripts() {} -scripts.description = 'Bundles JavaScript'; +scripts.description = "Bundles JavaScript"; -var styles = function() {}; -gulp.task('styles', styles); -gulp.task('styles').description = 'Compiles and bundles CSS'; +var styles = function () {}; +gulp.task("styles", styles); +gulp.task("styles").description = "Compiles and bundles CSS"; -var build = gulp.series('clean', 'scripts', 'styles'); -build.description = 'Build all the things!'; +var build = gulp.series("clean", "scripts", "styles"); +build.description = "Build all the things!"; build.flags = { - '--dev': '', - '--production': 'compressed into single bundle', - '': 'dummy-empty-string', + "--dev": "", + "--production": "compressed into single bundle", + "": "dummy-empty-string", }; -gulp.task('build', build); +gulp.task("build", build); -gulp.task('serve', serve); +gulp.task("serve", serve); function serve() {} -serve.description = 'Serves files reloading'; +serve.description = "Serves files reloading"; serve.flags = { - '--lr': 'with live reloading', + "--lr": "with live reloading", }; function watch() {} -gulp.task('watch', watch); -watch.description = 'Watch files and build on change'; +gulp.task("watch", watch); +watch.description = "Watch files and build on change"; -gulp.task('default', gulp.series('build', 'watch')); -gulp.task('default').description = 'Build and watch for changes'; +gulp.task("default", gulp.series("build", "watch")); +gulp.task("default").description = "Build and watch for changes"; diff --git a/test/fixtures/logging.js b/test/fixtures/logging.js index 7b28ae8a..934f0c7e 100644 --- a/test/fixtures/logging.js +++ b/test/fixtures/logging.js @@ -1,8 +1,8 @@ -var log = require('gulplog'); -var yargs = require('yargs'); -var toConsole = require('../../lib/shared/log/to-console'); -var cliOptions = require('../../lib/shared/options/cli-options'); -var buildTranslations = require('../../lib/shared/translate'); +var log = require("gulplog"); +var yargs = require("yargs"); +var toConsole = require("../../lib/shared/log/to-console"); +var cliOptions = require("../../lib/shared/options/cli-options"); +var buildTranslations = require("../../lib/shared/translate"); var opts = yargs.options(cliOptions).parse(); @@ -10,7 +10,7 @@ var translate = buildTranslations(); toConsole(log, opts, translate); -log.debug('test debug'); -log.info('test info'); -log.warn('test warn'); -log.error('test error'); +log.debug("test debug"); +log.info("test info"); +log.warn("test warn"); +log.error("test error"); diff --git a/test/fixtures/test-error-module.js b/test/fixtures/test-error-module.js index ddf54a7b..116d56cd 100644 --- a/test/fixtures/test-error-module.js +++ b/test/fixtures/test-error-module.js @@ -1,3 +1,3 @@ /* eslint no-unreachable: off */ -throw new Error('from error module'); -console.log('inside error module'); +throw new Error("from error module"); +console.log("inside error module"); diff --git a/test/fixtures/test-module-2.js b/test/fixtures/test-module-2.js index bab74223..ffbe91f4 100644 --- a/test/fixtures/test-module-2.js +++ b/test/fixtures/test-module-2.js @@ -1,4 +1,4 @@ -console.log('inside test module 2'); -exports = function() { - console.log('inside test module function 2'); +console.log("inside test module 2"); +exports = function () { + console.log("inside test module function 2"); }; diff --git a/test/fixtures/test-module.js b/test/fixtures/test-module.js index af0aace4..9666ff7a 100644 --- a/test/fixtures/test-module.js +++ b/test/fixtures/test-module.js @@ -1,4 +1,4 @@ -console.log('inside test module'); -exports = function() { - console.log('inside test module function'); +console.log("inside test module"); +exports = function () { + console.log("inside test module function"); }; diff --git a/test/fixtures/verify/invalid-package.json b/test/fixtures/verify/invalid-package.json index 4f99a0f2..af6f4e91 100644 --- a/test/fixtures/verify/invalid-package.json +++ b/test/fixtures/verify/invalid-package.json @@ -2,10 +2,8 @@ "name": "test-package", "description": "Test Package for Testing!", "version": "0.0.1", - "tags": [ - ], - "files": [ - ], + "tags": [], + "files": [], "dependencies": { "gulp-blink": "^0.1.4" }, diff --git a/test/fixtures/verify/package.json b/test/fixtures/verify/package.json index d5eeee96..c00dc952 100644 --- a/test/fixtures/verify/package.json +++ b/test/fixtures/verify/package.json @@ -2,10 +2,8 @@ "name": "default-package", "description": "Test Package for Testing!", "version": "0.0.1", - "tags": [ - ], - "files": [ - ], + "tags": [], + "files": [], "dependencies": { "gulp-blink": "^0.1.4" }, diff --git a/test/fixtures/verify/valid-package.json b/test/fixtures/verify/valid-package.json index be2d488c..95b3173d 100644 --- a/test/fixtures/verify/valid-package.json +++ b/test/fixtures/verify/valid-package.json @@ -2,10 +2,8 @@ "name": "test-package-2", "description": "Test Package for Testing!", "version": "0.0.1", - "tags": [ - ], - "files": [ - ], + "tags": [], + "files": [], "dependencies": { "yargs": "^3.27.0" }, diff --git a/test/flags-continue.js b/test/flags-continue.js index cbf8a94f..2920c2b1 100644 --- a/test/flags-continue.js +++ b/test/flags-continue.js @@ -1,60 +1,54 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, '..'); +var baseDir = path.join(__dirname, ".."); -describe('flag: --continue', function() { - - it('continues execution when flag is set', function(done) { +describe("flag: --continue", function () { + it("continues execution when flag is set", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - 'test4', - '--continue', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec( + gulp("test4", "--continue", "--cwd ./test/fixtures/gulpfiles"), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); expect(sliceLines(stdout, 2)).toEqual( - 'Starting \'test4\'...\n' + - 'Starting \'errorFunction\'...\n' + - 'Starting \'anon\'...\n' + - 'Finished \'anon\' after ?\n' + - '' + "Starting 'test4'...\n" + + "Starting 'errorFunction'...\n" + + "Starting 'anon'...\n" + + "Finished 'anon' after ?\n" + + "", ); expect(sliceLines(stderr, 0, 2)).toEqual( - '\'errorFunction\' errored after ?\n' + - 'Error: Error!' + "'errorFunction' errored after ?\n" + "Error: Error!", ); done(); } }); - it('stops execution when flag is not set', function(done) { + it("stops execution when flag is not set", function (done) { var opts = { cwd: baseDir }; - exec(gulp('test4', '--cwd ./test/fixtures/gulpfiles'), opts, cb); + exec(gulp("test4", "--cwd ./test/fixtures/gulpfiles"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).not.toMatch('Starting \'anon\''); + expect(stdout).not.toMatch("Starting 'anon'"); stdout = sliceLines(stdout, 2); expect(stdout).toEqual( - 'Starting \'test4\'...\n' + - 'Starting \'errorFunction\'...\n' + - '' + "Starting 'test4'...\n" + "Starting 'errorFunction'...\n" + "", ); expect(sliceLines(stderr, 0, 2)).toEqual( - '\'errorFunction\' errored after ?\n' + - 'Error: Error!' + "'errorFunction' errored after ?\n" + "Error: Error!", ); done(); } }); - }); diff --git a/test/flags-gulpfile.js b/test/flags-gulpfile.js index 7c9316b7..c0587e4c 100644 --- a/test/flags-gulpfile.js +++ b/test/flags-gulpfile.js @@ -1,70 +1,70 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, '..'); +var baseDir = path.join(__dirname, ".."); -describe('flag: --gulpfile', function() { - - it('Manually set path of gulpfile using --gulpfile', function(done) { - var gulpfilePath = 'test/fixtures/gulpfiles/gulpfile-2.js'; +describe("flag: --gulpfile", function () { + it("Manually set path of gulpfile using --gulpfile", function (done) { + var gulpfilePath = "test/fixtures/gulpfiles/gulpfile-2.js"; var opts = { cwd: baseDir }; - exec(gulp('--gulpfile', gulpfilePath), opts, cb); + exec(gulp("--gulpfile", gulpfilePath), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); var chgWorkdirLog = sliceLines(stdout, 0, 1); var workdir = path.dirname(gulpfilePath).replace(/\//g, path.sep); - expect(chgWorkdirLog).toMatch('Working directory changed to '); + expect(chgWorkdirLog).toMatch("Working directory changed to "); expect(chgWorkdirLog).toMatch(workdir); stdout = sliceLines(stdout, 2); expect(stdout).toEqual( - 'Starting \'default\'...\n' + - 'Starting \'logGulpfilePath\'...\n' + - path.resolve(gulpfilePath) + '\n' + - 'Finished \'logGulpfilePath\' after ?\n' + - 'Finished \'default\' after ?\n' + - '' + "Starting 'default'...\n" + + "Starting 'logGulpfilePath'...\n" + + path.resolve(gulpfilePath) + + "\n" + + "Finished 'logGulpfilePath' after ?\n" + + "Finished 'default' after ?\n" + + "", ); done(err); } }); - it('Manually set path of gulpfile using -f', function(done) { - var gulpfilePath = 'test/fixtures/gulpfiles/gulpfile-2.js'; + it("Manually set path of gulpfile using -f", function (done) { + var gulpfilePath = "test/fixtures/gulpfiles/gulpfile-2.js"; var opts = { cwd: baseDir }; - exec(gulp('-f', gulpfilePath), opts, cb); + exec(gulp("-f", gulpfilePath), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); var chgWorkdirLog = sliceLines(stdout, 0, 1); var workdir = path.dirname(gulpfilePath).replace(/\//g, path.sep); - expect(chgWorkdirLog).toMatch('Working directory changed to '); + expect(chgWorkdirLog).toMatch("Working directory changed to "); expect(chgWorkdirLog).toMatch(workdir); stdout = sliceLines(stdout, 2); expect(stdout).toEqual( - 'Starting \'default\'...\n' + - 'Starting \'logGulpfilePath\'...\n' + - path.resolve(gulpfilePath) + '\n' + - 'Finished \'logGulpfilePath\' after ?\n' + - 'Finished \'default\' after ?\n' + - '' + "Starting 'default'...\n" + + "Starting 'logGulpfilePath'...\n" + + path.resolve(gulpfilePath) + + "\n" + + "Finished 'logGulpfilePath' after ?\n" + + "Finished 'default' after ?\n" + + "", ); done(err); } }); - }); diff --git a/test/flags-help.js b/test/flags-help.js index 3007e288..81b27a41 100644 --- a/test/flags-help.js +++ b/test/flags-help.js @@ -1,71 +1,70 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); -var fs = require('fs'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); +var fs = require("fs"); -var gulp = require('./tool/gulp-cmd'); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, '..'); -var outputFile = path.join(__dirname, 'expected/flags-help.txt'); -var outputText = fs.readFileSync(outputFile, 'utf8'); +var baseDir = path.join(__dirname, ".."); +var outputFile = path.join(__dirname, "expected/flags-help.txt"); +var outputText = fs.readFileSync(outputFile, "utf8"); -describe('flag: --help', function() { - - it('shows help using --help', function(done) { +describe("flag: --help", function () { + it("shows help using --help", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--help', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec(gulp("--help", "--cwd ./test/fixtures/gulpfiles"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(outputText); done(err); } }); - it('shows help using short --h', function(done) { + it("shows help using short --h", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--h', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec(gulp("--h", "--cwd ./test/fixtures/gulpfiles"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(outputText); done(err); } }); - it('avoids printing "Requiring external module *"', function(done) { + it('avoids printing "Requiring external module *"', function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--help', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-babel.babel.js' - ), opts, cb); + exec( + gulp( + "--help", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile-babel.babel.js", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(outputText); done(err); } }); - it('show error message and help if options are invalid', function(done) { + it("show error message and help if options are invalid", function (done) { var opts = { cwd: baseDir }; - exec(gulp('-f'), opts, cb); + exec(gulp("-f"), opts, cb); function cb(err, stdout, stderr) { expect(err).not.toBeNull(); - expect(stdout).toEqual(''); - expect(stderr).toEqual('Not enough arguments following: f\n' + outputText); + expect(stdout).toEqual(""); + expect(stderr).toEqual( + "Not enough arguments following: f\n" + outputText, + ); done(); } }); diff --git a/test/flags-preload.js b/test/flags-preload.js index 8a666ddc..03a58ada 100644 --- a/test/flags-preload.js +++ b/test/flags-preload.js @@ -1,157 +1,181 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var eraseTime = require('./tool/erase-time'); -var eraseLapse = require('./tool/erase-lapse'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var eraseTime = require("./tool/erase-time"); +var eraseLapse = require("./tool/erase-lapse"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, '..'); +var baseDir = path.join(__dirname, ".."); -describe('flag: --preload', function() { - - it('preloads module before running gulpfile', function(done) { +describe("flag: --preload", function () { + it("preloads module before running gulpfile", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--preload ../test-module.js', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec( + gulp("--preload ../test-module.js", "--cwd ./test/fixtures/gulpfiles"), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Preloading external module: ../test-module.js'); - expect(sliceLines(stdout, 1, 2)).toEqual('inside test module'); - expect(sliceLines(stdout, 2, 3)).toEqual('Preloaded external module: ../test-module.js'); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Preloading external module: ../test-module.js", + ); + expect(sliceLines(stdout, 1, 2)).toEqual("inside test module"); + expect(sliceLines(stdout, 2, 3)).toEqual( + "Preloaded external module: ../test-module.js", + ); var chgWorkdirLog = sliceLines(stdout, 3, 4); - var workdir = 'test/fixtures/gulpfiles'.replace(/\//g, path.sep); - expect(chgWorkdirLog).toMatch('Working directory changed to '); + var workdir = "test/fixtures/gulpfiles".replace(/\//g, path.sep); + expect(chgWorkdirLog).toMatch("Working directory changed to "); expect(chgWorkdirLog).toMatch(workdir); stdout = sliceLines(stdout, 5); expect(stdout).toEqual( - 'Starting \'default\'...\n' + - 'Starting \'test1\'...\n' + - 'Starting \'noop\'...\n' + - 'Finished \'noop\' after ?\n' + - 'Finished \'test1\' after ?\n' + - 'Starting \'test3\'...\n' + - 'Starting \'described\'...\n' + - 'Finished \'described\' after ?\n' + - 'Finished \'test3\' after ?\n' + - 'Starting \'noop\'...\n' + - 'Finished \'noop\' after ?\n' + - 'Finished \'default\' after ?\n' + - '' + "Starting 'default'...\n" + + "Starting 'test1'...\n" + + "Starting 'noop'...\n" + + "Finished 'noop' after ?\n" + + "Finished 'test1' after ?\n" + + "Starting 'test3'...\n" + + "Starting 'described'...\n" + + "Finished 'described' after ?\n" + + "Finished 'test3' after ?\n" + + "Starting 'noop'...\n" + + "Finished 'noop' after ?\n" + + "Finished 'default' after ?\n" + + "", ); done(err); } }); - it('can preload multiple modules before running gulpfile', function(done) { + it("can preload multiple modules before running gulpfile", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--preload ../test-module.js', - '--preload ../test-module-2.js', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec( + gulp( + "--preload ../test-module.js", + "--preload ../test-module-2.js", + "--cwd ./test/fixtures/gulpfiles", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Preloading external module: ../test-module.js'); - expect(sliceLines(stdout, 1, 2)).toEqual('inside test module'); - expect(sliceLines(stdout, 2, 3)).toEqual('Preloaded external module: ../test-module.js'); - expect(sliceLines(stdout, 3, 4)).toEqual('Preloading external module: ../test-module-2.js'); - expect(sliceLines(stdout, 4, 5)).toEqual('inside test module 2'); - expect(sliceLines(stdout, 5, 6)).toEqual('Preloaded external module: ../test-module-2.js'); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Preloading external module: ../test-module.js", + ); + expect(sliceLines(stdout, 1, 2)).toEqual("inside test module"); + expect(sliceLines(stdout, 2, 3)).toEqual( + "Preloaded external module: ../test-module.js", + ); + expect(sliceLines(stdout, 3, 4)).toEqual( + "Preloading external module: ../test-module-2.js", + ); + expect(sliceLines(stdout, 4, 5)).toEqual("inside test module 2"); + expect(sliceLines(stdout, 5, 6)).toEqual( + "Preloaded external module: ../test-module-2.js", + ); done(err); } }); - it('warns if module doesn\'t exist', function(done) { + it("warns if module doesn't exist", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--preload ./null-module.js', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec( + gulp("--preload ./null-module.js", "--cwd ./test/fixtures/gulpfiles"), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 0, 2)).toEqual( - 'Preloading external module: ./null-module.js\n' + - 'Failed to preload external module: ./null-module.js' + "Preloading external module: ./null-module.js\n" + + "Failed to preload external module: ./null-module.js", + ); + expect(sliceLines(stdout, 2, 3)).toMatch( + "Error: Cannot find module './null-module.js'", ); - expect(sliceLines(stdout, 2, 3)).toMatch('Error: Cannot find module \'./null-module.js\''); var chgWorkdirLog = sliceLines(stdout, 3, 4); - var workdir = 'test/fixtures/gulpfiles'.replace(/\//g, path.sep); - expect(chgWorkdirLog).toMatch('Working directory changed to '); + var workdir = "test/fixtures/gulpfiles".replace(/\//g, path.sep); + expect(chgWorkdirLog).toMatch("Working directory changed to "); expect(chgWorkdirLog).toMatch(workdir); expect(sliceLines(stdout, 5)).toEqual( - 'Starting \'default\'...\n' + - 'Starting \'test1\'...\n' + - 'Starting \'noop\'...\n' + - 'Finished \'noop\' after ?\n' + - 'Finished \'test1\' after ?\n' + - 'Starting \'test3\'...\n' + - 'Starting \'described\'...\n' + - 'Finished \'described\' after ?\n' + - 'Finished \'test3\' after ?\n' + - 'Starting \'noop\'...\n' + - 'Finished \'noop\' after ?\n' + - 'Finished \'default\' after ?\n' + - '' + "Starting 'default'...\n" + + "Starting 'test1'...\n" + + "Starting 'noop'...\n" + + "Finished 'noop' after ?\n" + + "Finished 'test1' after ?\n" + + "Starting 'test3'...\n" + + "Starting 'described'...\n" + + "Finished 'described' after ?\n" + + "Finished 'test3' after ?\n" + + "Starting 'noop'...\n" + + "Finished 'noop' after ?\n" + + "Finished 'default' after ?\n" + + "", ); done(err); } }); - it('warns if module throw some error', function(done) { + it("warns if module throw some error", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--preload ../test-error-module.js', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec( + gulp( + "--preload ../test-error-module.js", + "--cwd ./test/fixtures/gulpfiles", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { stdout = eraseLapse(eraseTime(stdout)); expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 1, 2)).toEqual('Failed to preload external module: ../test-error-module.js'); - expect(sliceLines(stdout, 2, 3)).toMatch('Error: from error module'); - expect(stdout).not.toMatch('inside error module'); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 1, 2)).toEqual( + "Failed to preload external module: ../test-error-module.js", + ); + expect(sliceLines(stdout, 2, 3)).toMatch("Error: from error module"); + expect(stdout).not.toMatch("inside error module"); var chgWorkdirLog = sliceLines(stdout, 3, 4); - var workdir = 'test/fixtures/gulpfiles'.replace(/\//g, path.sep); - expect(chgWorkdirLog).toMatch('Working directory changed to '); + var workdir = "test/fixtures/gulpfiles".replace(/\//g, path.sep); + expect(chgWorkdirLog).toMatch("Working directory changed to "); expect(chgWorkdirLog).toMatch(workdir); expect(sliceLines(stdout, 5)).toEqual( - 'Starting \'default\'...\n' + - 'Starting \'test1\'...\n' + - 'Starting \'noop\'...\n' + - 'Finished \'noop\' after ?\n' + - 'Finished \'test1\' after ?\n' + - 'Starting \'test3\'...\n' + - 'Starting \'described\'...\n' + - 'Finished \'described\' after ?\n' + - 'Finished \'test3\' after ?\n' + - 'Starting \'noop\'...\n' + - 'Finished \'noop\' after ?\n' + - 'Finished \'default\' after ?\n' + - '' + "Starting 'default'...\n" + + "Starting 'test1'...\n" + + "Starting 'noop'...\n" + + "Finished 'noop' after ?\n" + + "Finished 'test1' after ?\n" + + "Starting 'test3'...\n" + + "Starting 'described'...\n" + + "Finished 'described' after ?\n" + + "Finished 'test3' after ?\n" + + "Starting 'noop'...\n" + + "Finished 'noop' after ?\n" + + "Finished 'default' after ?\n" + + "", ); done(err); } }); - }); diff --git a/test/flags-series.js b/test/flags-series.js index b4ba6047..c6bba44e 100644 --- a/test/flags-series.js +++ b/test/flags-series.js @@ -1,58 +1,53 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, '..'); +var baseDir = path.join(__dirname, ".."); -describe('flag: --series', function() { - - it('runs tasks in series when flag is set', function(done) { +describe("flag: --series", function () { + it("runs tasks in series when flag is set", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - 'test5 test6', - '--series', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec( + gulp("test5 test6", "--series", "--cwd ./test/fixtures/gulpfiles"), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(sliceLines(stdout, 2)).toEqual( - 'Starting \'test5\'...\n' + - 'Finished \'test5\' after ?\n' + - 'Starting \'test6\'...\n' + - 'Finished \'test6\' after ?\n' + - '' + "Starting 'test5'...\n" + + "Finished 'test5' after ?\n" + + "Starting 'test6'...\n" + + "Finished 'test6' after ?\n" + + "", ); done(); } }); - it('runs tasks in parallel when flag is not set', function(done) { + it("runs tasks in parallel when flag is not set", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - 'test5 test6', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec(gulp("test5 test6", "--cwd ./test/fixtures/gulpfiles"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(stdout).not.toMatch('Starting \'anon\''); + expect(stderr).toEqual(""); + expect(stdout).not.toMatch("Starting 'anon'"); expect(sliceLines(stdout, 2)).toEqual( - 'Starting \'test5\'...\n' + - 'Starting \'test6\'...\n' + - 'Finished \'test6\' after ?\n' + - 'Finished \'test5\' after ?\n' + - '' + "Starting 'test5'...\n" + + "Starting 'test6'...\n" + + "Finished 'test6' after ?\n" + + "Finished 'test5' after ?\n" + + "", ); done(); } }); - }); diff --git a/test/flags-silent.js b/test/flags-silent.js index c7bc12b0..8583ca96 100644 --- a/test/flags-silent.js +++ b/test/flags-silent.js @@ -1,28 +1,23 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var gulp = require('./tool/gulp-cmd'); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, '..'); +var baseDir = path.join(__dirname, ".."); -describe('flag: --silent', function() { - - it('prints nothing when silent flag is set', function(done) { +describe("flag: --silent", function () { + it("prints nothing when silent flag is set", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--silent', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec(gulp("--silent", "--cwd ./test/fixtures/gulpfiles"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(stdout).toEqual(''); + expect(stderr).toEqual(""); + expect(stdout).toEqual(""); done(err); } }); - }); diff --git a/test/flags-tasks-json.js b/test/flags-tasks-json.js index 5614ac33..1c321745 100644 --- a/test/flags-tasks-json.js +++ b/test/flags-tasks-json.js @@ -1,71 +1,75 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var fs = require('fs'); -var path = require('path'); -var rimraf = require('rimraf'); +var expect = require("expect"); +var exec = require("child_process").exec; +var fs = require("fs"); +var path = require("path"); +var rimraf = require("rimraf"); -var gulp = require('./tool/gulp-cmd'); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, '..'); -var expected = require(path.join(__dirname, 'expected/flags-tasks-json.json')); +var baseDir = path.join(__dirname, ".."); +var expected = require(path.join(__dirname, "expected/flags-tasks-json.json")); -describe('flag: --tasks-json', function() { - - it('prints the task list with no args', function(done) { +describe("flag: --tasks-json", function () { + it("prints the task list with no args", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks-json', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile.js' - ), opts, cb); + exec( + gulp("--tasks-json", "--gulpfile ./test/fixtures/gulpfiles/gulpfile.js"), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(JSON.parse(stdout)).toEqual(expected); done(err); } }); - it('prints the task list with the default description', function(done) { + it("prints the task list with the default description", function (done) { var cwdPath = __dirname; - var gulpfilePath = path.join(__dirname, 'fixtures/gulpfiles/gulpfile.js'); + var gulpfilePath = path.join(__dirname, "fixtures/gulpfiles/gulpfile.js"); var opts = { cwd: baseDir }; - exec(gulp( - '--tasks-json', - '--cwd ', cwdPath, - '--gulpfile ', gulpfilePath - ), opts, cb); + exec( + gulp("--tasks-json", "--cwd ", cwdPath, "--gulpfile ", gulpfilePath), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); var jsonObj = JSON.parse(stdout); - expect(jsonObj.label).toMatch('Tasks for '); + expect(jsonObj.label).toMatch("Tasks for "); expect(jsonObj.nodes).toEqual(expected.nodes); done(err); } }); - it('writes the task list to file with path', function(done) { - var output = path.join(__dirname, '/output/'); + it("writes the task list to file with path", function (done) { + var output = path.join(__dirname, "/output/"); rimraf.sync(output); fs.mkdirSync(output); var opts = { cwd: baseDir }; - exec(gulp( - '--tasks-json ../../output/tasks.json', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile.js' - ), opts, cb); + exec( + gulp( + "--tasks-json ../../output/tasks.json", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile.js", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - stdout = stdout.split('\n').slice(1).join('\n'); - expect(stdout).toEqual(''); - var file = fs.readFileSync(path.join(output, '/tasks.json'), 'utf8'); + expect(stderr).toEqual(""); + stdout = stdout.split("\n").slice(1).join("\n"); + expect(stdout).toEqual(""); + var file = fs.readFileSync(path.join(output, "/tasks.json"), "utf8"); var parsedJson = JSON.parse(file); expect(parsedJson).toEqual(expected); rimraf.sync(output); @@ -73,19 +77,23 @@ describe('flag: --tasks-json', function() { } }); - it('avoids printing "Requiring external module *"', function(done) { + it('avoids printing "Requiring external module *"', function (done) { // Disable the timeout for old node versions this.timeout(0); var opts = { cwd: baseDir }; - exec(gulp( - '--tasks-json', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-babel.babel.js' - ), opts, cb); + exec( + gulp( + "--tasks-json", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile-babel.babel.js", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(JSON.parse(stdout)).toEqual(expected); done(err); } diff --git a/test/flags-tasks-simple.js b/test/flags-tasks-simple.js index a2f54c22..2f55a04c 100644 --- a/test/flags-tasks-simple.js +++ b/test/flags-tasks-simple.js @@ -1,49 +1,48 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); -var fs = require('fs'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); +var fs = require("fs"); -var gulp = require('./tool/gulp-cmd'); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, '..'); -var outputFile = path.join(__dirname, 'expected/flags-tasks-simple.txt'); -var outputText = fs.readFileSync(outputFile, 'utf8'); +var baseDir = path.join(__dirname, ".."); +var outputFile = path.join(__dirname, "expected/flags-tasks-simple.txt"); +var outputText = fs.readFileSync(outputFile, "utf8"); -describe('flag: --tasks-simple', function() { - - it('prints the task list in simple format', function(done) { +describe("flag: --tasks-simple", function () { + it("prints the task list in simple format", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks-simple', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec(gulp("--tasks-simple", "--cwd ./test/fixtures/gulpfiles"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(outputText); done(err); } }); - it('avoids printing "Requiring external module *"', function(done) { + it('avoids printing "Requiring external module *"', function (done) { // Disable the timeout for old node versions this.timeout(0); var opts = { cwd: baseDir }; - exec(gulp( - '--tasks-simple', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-babel.babel.js' - ), opts, cb); + exec( + gulp( + "--tasks-simple", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile-babel.babel.js", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual(outputText); done(err); } }); - }); diff --git a/test/flags-tasks.js b/test/flags-tasks.js index 68bd2a6a..e850f140 100644 --- a/test/flags-tasks.js +++ b/test/flags-tasks.js @@ -1,179 +1,206 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var fs = require('fs'); -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var fs = require("fs"); +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, '..'); -var expectedDir = path.join(__dirname, 'expected'); +var baseDir = path.join(__dirname, ".."); +var expectedDir = path.join(__dirname, "expected"); -describe('flag: --tasks', function() { - - it('prints the task list', function(done) { +describe("flag: --tasks", function () { + it("prints the task list", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks', - '--sort-tasks', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec( + gulp("--tasks", "--sort-tasks", "--cwd ./test/fixtures/gulpfiles"), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'flags-tasks.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "flags-tasks.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 1)).toEqual(expected); done(err); } }); - it('prints the task list with description and flags', function(done) { + it("prints the task list with description and flags", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks', - '--sort-tasks', - '--gulpfile ./test/fixtures/gulpfiles/with-desc-and-flags.js', - '--cwd ./test/fixtures' - ), opts, cb); + exec( + gulp( + "--tasks", + "--sort-tasks", + "--gulpfile ./test/fixtures/gulpfiles/with-desc-and-flags.js", + "--cwd ./test/fixtures", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'with-desc-and-flags.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "with-desc-and-flags.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 1)).toEqual(expected); done(err); } }); - it('prints the task list by gulp.task(s).unwrap and gulp.task(s)', function(done) { + it("prints the task list by gulp.task(s).unwrap and gulp.task(s)", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks', - '--sort-tasks', - '--gulpfile ./test/fixtures/gulpfiles/by-unwrap-and-not-by-unwrap.js', - '--cwd ./test/fixtures' - ), opts, cb); + exec( + gulp( + "--tasks", + "--sort-tasks", + "--gulpfile ./test/fixtures/gulpfiles/by-unwrap-and-not-by-unwrap.js", + "--cwd ./test/fixtures", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'by-unwrap-and-not-by-unwrap.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "by-unwrap-and-not-by-unwrap.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 1)).toEqual(expected); done(err); } }); - it('prints the task list without --sort-tasks flag', function(done) { + it("prints the task list without --sort-tasks flag", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js' - ), opts, cb); + exec( + gulp("--tasks", "--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js"), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'flags-tasks-unsorted.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "flags-tasks-unsorted.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 1)).toEqual(sliceLines(expected, 1)); done(err); } }); - it('prints the task list with --sort-tasks flag', function(done) { + it("prints the task list with --sort-tasks flag", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js', - '--sort-tasks' - ), opts, cb); + exec( + gulp( + "--tasks", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js", + "--sort-tasks", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'flags-tasks-sorted.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "flags-tasks-sorted.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 1)).toEqual(sliceLines(expected, 1)); done(err); } }); - it('prints the task list with --tasks-depth flag', function(done) { + it("prints the task list with --tasks-depth flag", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js', - '--tasks-depth 4' - ), opts, cb); + exec( + gulp( + "--tasks", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js", + "--tasks-depth 4", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'flags-tasks-depth4.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "flags-tasks-depth4.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 1)).toEqual(sliceLines(expected, 1)); done(err); } }); - it('prints the top task only if negative tasks depth is specified', function(done) { + it("prints the top task only if negative tasks depth is specified", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js', - '--tasks-depth -1' - ), opts, cb); + exec( + gulp( + "--tasks", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js", + "--tasks-depth -1", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'flags-tasks-depth1.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "flags-tasks-depth1.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 1)).toEqual(expected); done(err); } }); - it('prints the task list with --depth flag', function(done) { + it("prints the task list with --depth flag", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js', - '--depth 4' - ), opts, cb); + exec( + gulp( + "--tasks", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js", + "--depth 4", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'flags-tasks-depth4.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "flags-tasks-depth4.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 1)).toEqual(sliceLines(expected, 1)); done(err); } }); - it('prints the task list with --compact-tasks flag', function(done) { + it("prints the task list with --compact-tasks flag", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--tasks', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js', - '--compact-tasks' - ), opts, cb); + exec( + gulp( + "--tasks", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile-4.js", + "--compact-tasks", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - var filepath = path.join(expectedDir, 'flags-tasks-compact.txt'); - var expected = fs.readFileSync(filepath, 'utf-8'); + expect(stderr).toEqual(""); + var filepath = path.join(expectedDir, "flags-tasks-compact.txt"); + var expected = fs.readFileSync(filepath, "utf-8"); expect(sliceLines(stdout, 1)).toEqual(sliceLines(expected, 1)); done(err); } }); - }); diff --git a/test/flags-v8flags.js b/test/flags-v8flags.js index 30dec323..4c724625 100644 --- a/test/flags-v8flags.js +++ b/test/flags-v8flags.js @@ -1,38 +1,39 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -var baseDir = path.join(__dirname, 'fixtures/gulpfiles'); +var baseDir = path.join(__dirname, "fixtures/gulpfiles"); -describe('flags: v8flags', function() { - - it('Should respawn by a v8flag: --lazy', function(done) { +describe("flags: v8flags", function () { + it("Should respawn by a v8flag: --lazy", function (done) { var opts = { cwd: baseDir }; - exec(gulp('--lazy'), opts, cb); + exec(gulp("--lazy"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Node flags detected: --lazy'); - expect(sliceLines(stdout, 1, 3)).toMatch('Respawned to PID: '); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual("Node flags detected: --lazy"); + expect(sliceLines(stdout, 1, 3)).toMatch("Respawned to PID: "); done(err); } }); - it('Should respawn by v8flags: --lazy --harmony', function(done) { + it("Should respawn by v8flags: --lazy --harmony", function (done) { var opts = { cwd: baseDir }; - exec(gulp('--lazy --harmony'), opts, cb); + exec(gulp("--lazy --harmony"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); - expect(sliceLines(stdout, 0, 1)).toEqual('Node flags detected: --harmony, --lazy'); - expect(sliceLines(stdout, 1, 3)).toMatch('Respawned to PID: '); + expect(stderr).toEqual(""); + expect(sliceLines(stdout, 0, 1)).toEqual( + "Node flags detected: --harmony, --lazy", + ); + expect(sliceLines(stdout, 1, 3)).toMatch("Respawned to PID: "); done(err); } }); diff --git a/test/flags-version.js b/test/flags-version.js index 75105570..fe5ea947 100644 --- a/test/flags-version.js +++ b/test/flags-version.js @@ -1,69 +1,75 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); -var os = require('os'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); +var os = require("os"); -var gulp = require('./tool/gulp-cmd'); -var cliVersion = require('../package.json').version; -var gulpVersion = require('gulp/package.json').version; +var gulp = require("./tool/gulp-cmd"); +var cliVersion = require("../package.json").version; +var gulpVersion = require("gulp/package.json").version; -var baseDir = path.join(__dirname, '..'); +var baseDir = path.join(__dirname, ".."); -describe('flag: --version', function() { - - it('prints the version of CLI and local gulp', function(done) { +describe("flag: --version", function () { + it("prints the version of CLI and local gulp", function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--version', - '--cwd ./test/fixtures/gulpfiles' - ), opts, cb); + exec(gulp("--version", "--cwd ./test/fixtures/gulpfiles"), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual( - 'CLI version: ' + cliVersion + '\n' + - 'Local version: ' + gulpVersion + '\n' + - '' + "CLI version: " + + cliVersion + + "\n" + + "Local version: " + + gulpVersion + + "\n" + + "", ); done(err); } }); - it('avoids printing "Requiring external module *"', function(done) { + it('avoids printing "Requiring external module *"', function (done) { var opts = { cwd: baseDir }; - exec(gulp( - '--version', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-babel.babel.js' - ), opts, cb); + exec( + gulp( + "--version", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile-babel.babel.js", + ), + opts, + cb, + ); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual( - 'CLI version: ' + cliVersion + '\n' + - 'Local version: ' + gulpVersion + '\n' + - '' + "CLI version: " + + cliVersion + + "\n" + + "Local version: " + + gulpVersion + + "\n" + + "", ); done(err); } }); - it('should print only CLI version when gulp is not found', function(done) { + it("should print only CLI version when gulp is not found", function (done) { var opts = { cwd: baseDir }; - exec(gulp('--version', '--cwd', os.tmpdir()), opts, cb); + exec(gulp("--version", "--cwd", os.tmpdir()), opts, cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); expect(stdout).toEqual( - 'CLI version: ' + cliVersion + '\n' + - 'Local version: Unknown\n' + "CLI version: " + cliVersion + "\n" + "Local version: Unknown\n", ); done(err); } }); - }); diff --git a/test/lib/config-cli-flags.js b/test/lib/config-cli-flags.js index d78e07a1..90d06b88 100644 --- a/test/lib/config-cli-flags.js +++ b/test/lib/config-cli-flags.js @@ -1,23 +1,22 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var mergeCliOpts = require('../../lib/shared/config/cli-flags'); +var expect = require("expect"); +var mergeCliOpts = require("../../lib/shared/config/cli-flags"); -describe('lib: cli-flags', function() { - - it('Should copy only config props specified to cli flags', function(done) { +describe("lib: cli-flags", function () { + it("Should copy only config props specified to cli flags", function (done) { var opts = {}; var config = { - description: 'DESCRIPTION.', + description: "DESCRIPTION.", flags: { silent: true, continue: true, - gulpfile: '/path/to/gulpfile', + gulpfile: "/path/to/gulpfile", }, }; - var result = mergeCliOpts(opts, config); + var result = mergeCliOpts(opts, config); expect(result).toEqual({ silent: true, continue: true, @@ -26,7 +25,7 @@ describe('lib: cli-flags', function() { done(); }); - it('Should not override cli flags with config props', function(done) { + it("Should not override cli flags with config props", function (done) { var opts = { help: false, depth: 4, @@ -35,15 +34,15 @@ describe('lib: cli-flags', function() { }; var config = { - description: 'DESCRIPTION.', + description: "DESCRIPTION.", flags: { silent: false, depth: 3, - gulpfile: '/path/to/gulpfile', + gulpfile: "/path/to/gulpfile", }, }; - var result = mergeCliOpts(opts, config); + var result = mergeCliOpts(opts, config); expect(result).toEqual({ help: false, depth: 4, @@ -54,7 +53,7 @@ describe('lib: cli-flags', function() { done(); }); - it('Should not cause error if config is empty', function(done) { + it("Should not cause error if config is empty", function (done) { var opts = { help: false, depth: 4, @@ -64,7 +63,7 @@ describe('lib: cli-flags', function() { var config = {}; - var result = mergeCliOpts(opts, config); + var result = mergeCliOpts(opts, config); expect(result).toEqual({ help: false, depth: 4, @@ -74,6 +73,4 @@ describe('lib: cli-flags', function() { expect(result).not.toBe(opts); done(); }); - }); - diff --git a/test/lib/format-hrtime.js b/test/lib/format-hrtime.js index d520c3a1..b6da0ec2 100644 --- a/test/lib/format-hrtime.js +++ b/test/lib/format-hrtime.js @@ -1,237 +1,237 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var formatHrtime = require('../../lib/shared/log/format-hrtime'); +var expect = require("expect"); +var formatHrtime = require("../../lib/shared/log/format-hrtime"); -describe('lib: format-hrtime', function() { - describe('should convert hrtime to string: unit is "h"', function() { - it('should be no decimal part if integer part greater than 10', function(done) { - expect(formatHrtime([36000, 100])).toEqual('10 h'); +describe("lib: format-hrtime", function () { + describe('should convert hrtime to string: unit is "h"', function () { + it("should be no decimal part if integer part greater than 10", function (done) { + expect(formatHrtime([36000, 100])).toEqual("10 h"); done(); }); - it('should round first decimal place if integer part greather than 10', function(done) { - expect(formatHrtime([36123, 100])).toEqual('10 h'); - expect(formatHrtime([37800, 0])).toEqual('11 h'); + it("should round first decimal place if integer part greather than 10", function (done) { + expect(formatHrtime([36123, 100])).toEqual("10 h"); + expect(formatHrtime([37800, 0])).toEqual("11 h"); done(); }); - it('should print until second decimal place if integer part less than 10', function(done) { - expect(formatHrtime([35100, 100])).toEqual('9.75 h'); + it("should print until second decimal place if integer part less than 10", function (done) { + expect(formatHrtime([35100, 100])).toEqual("9.75 h"); done(); }); - it('should round third decimal place if integer part less than 10', function(done) { - expect(formatHrtime([35117, 0])).toEqual('9.75 h'); - expect(formatHrtime([35119, 100])).toEqual('9.76 h'); + it("should round third decimal place if integer part less than 10", function (done) { + expect(formatHrtime([35117, 0])).toEqual("9.75 h"); + expect(formatHrtime([35119, 100])).toEqual("9.76 h"); done(); }); - it('should trim last "0" in decimal part', function(done) { - expect(formatHrtime([32761, 100])).toEqual('9.1 h'); - expect(formatHrtime([32725, 100])).toEqual('9.09 h'); - expect(formatHrtime([32414, 100])).toEqual('9 h'); + it('should trim last "0" in decimal part', function (done) { + expect(formatHrtime([32761, 100])).toEqual("9.1 h"); + expect(formatHrtime([32725, 100])).toEqual("9.09 h"); + expect(formatHrtime([32414, 100])).toEqual("9 h"); done(); }); - it('should convert minimum hrtime of unit "h" normally', function(done) { - expect(formatHrtime([3600, 0])).toEqual('1 h'); + it('should convert minimum hrtime of unit "h" normally', function (done) { + expect(formatHrtime([3600, 0])).toEqual("1 h"); done(); }); - it('should be no larger unit than `h`', function(done) { - expect(formatHrtime([360123, 100])).toEqual('100 h'); + it("should be no larger unit than `h`", function (done) { + expect(formatHrtime([360123, 100])).toEqual("100 h"); done(); }); }); - describe('should convert hrtime to string: unit is "min"', function() { - it('should be no decimal part if integer part greater than 10', function(done) { - expect(formatHrtime([600, 100])).toEqual('10 min'); + describe('should convert hrtime to string: unit is "min"', function () { + it("should be no decimal part if integer part greater than 10", function (done) { + expect(formatHrtime([600, 100])).toEqual("10 min"); done(); }); - it('should round first decimal place if integer part greather than 10', function(done) { - expect(formatHrtime([624, 100])).toEqual('10 min'); - expect(formatHrtime([630, 0])).toEqual('11 min'); + it("should round first decimal place if integer part greather than 10", function (done) { + expect(formatHrtime([624, 100])).toEqual("10 min"); + expect(formatHrtime([630, 0])).toEqual("11 min"); done(); }); - it('should print until second decimal place if integer part less than 10', function(done) { - expect(formatHrtime([599, 100])).toEqual('9.98 min'); + it("should print until second decimal place if integer part less than 10", function (done) { + expect(formatHrtime([599, 100])).toEqual("9.98 min"); done(); }); - it('should round third decimal place if integer part less than 10', function(done) { - expect(formatHrtime([585, 29e7])).toEqual('9.75 min'); - expect(formatHrtime([585, 3e8])).toEqual('9.76 min'); + it("should round third decimal place if integer part less than 10", function (done) { + expect(formatHrtime([585, 29e7])).toEqual("9.75 min"); + expect(formatHrtime([585, 3e8])).toEqual("9.76 min"); done(); }); - it('should trim last "0" in decimal part', function(done) { - expect(formatHrtime([594, 100])).toEqual('9.9 min'); - expect(formatHrtime([540, 100])).toEqual('9 min'); + it('should trim last "0" in decimal part', function (done) { + expect(formatHrtime([594, 100])).toEqual("9.9 min"); + expect(formatHrtime([540, 100])).toEqual("9 min"); done(); }); - it('should convert minimum hrtime of unit "min" normally', function(done) { - expect(formatHrtime([60, 0])).toEqual('1 min'); + it('should convert minimum hrtime of unit "min" normally', function (done) { + expect(formatHrtime([60, 0])).toEqual("1 min"); done(); }); - it('should convert maximum hrtime of unit "min" normally', function(done) { - expect(formatHrtime([3599, 999999999])).toEqual('60 min'); + it('should convert maximum hrtime of unit "min" normally', function (done) { + expect(formatHrtime([3599, 999999999])).toEqual("60 min"); done(); }); }); - describe('should convert hrtime to string: unit is "s"', function() { - it('should be no decimal part if integer part greater than 10', function(done) { - expect(formatHrtime([10, 12e7])).toEqual('10 s'); + describe('should convert hrtime to string: unit is "s"', function () { + it("should be no decimal part if integer part greater than 10", function (done) { + expect(formatHrtime([10, 12e7])).toEqual("10 s"); done(); }); - it('should round first decimal place if integer part greather than 10', function(done) { - expect(formatHrtime([10, 4e8])).toEqual('10 s'); - expect(formatHrtime([10, 5e8])).toEqual('11 s'); + it("should round first decimal place if integer part greather than 10", function (done) { + expect(formatHrtime([10, 4e8])).toEqual("10 s"); + expect(formatHrtime([10, 5e8])).toEqual("11 s"); done(); }); - it('should print until second decimal place if integer part less than 10', function(done) { - expect(formatHrtime([9, 12e7])).toEqual('9.12 s'); + it("should print until second decimal place if integer part less than 10", function (done) { + expect(formatHrtime([9, 12e7])).toEqual("9.12 s"); done(); }); - it('should round third decimal place if integer part less than 10', function(done) { - expect(formatHrtime([9, 124e6])).toEqual('9.12 s'); - expect(formatHrtime([9, 125e6])).toEqual('9.13 s'); + it("should round third decimal place if integer part less than 10", function (done) { + expect(formatHrtime([9, 124e6])).toEqual("9.12 s"); + expect(formatHrtime([9, 125e6])).toEqual("9.13 s"); done(); }); - it('should trim last "0" in decimal part', function(done) { - expect(formatHrtime([9, 100e6])).toEqual('9.1 s'); - expect(formatHrtime([9, 0])).toEqual('9 s'); + it('should trim last "0" in decimal part', function (done) { + expect(formatHrtime([9, 100e6])).toEqual("9.1 s"); + expect(formatHrtime([9, 0])).toEqual("9 s"); done(); }); - it('should convert minimum hrtime of unit "s" normally', function(done) { - expect(formatHrtime([1, 0])).toEqual('1 s'); + it('should convert minimum hrtime of unit "s" normally', function (done) { + expect(formatHrtime([1, 0])).toEqual("1 s"); done(); }); - it('should convert maximum hrtime of unit "s" normally', function(done) { - expect(formatHrtime([59, 999999999])).toEqual('60 s'); + it('should convert maximum hrtime of unit "s" normally', function (done) { + expect(formatHrtime([59, 999999999])).toEqual("60 s"); done(); }); }); - describe('should convert hrtime to string: unit is "ms"', function() { - it('should be no decimal part if integer part greater than 10', function(done) { - expect(formatHrtime([0, 10123456])).toEqual('10 ms'); + describe('should convert hrtime to string: unit is "ms"', function () { + it("should be no decimal part if integer part greater than 10", function (done) { + expect(formatHrtime([0, 10123456])).toEqual("10 ms"); done(); }); - it('should round first decimal place if integer part greather than 10', function(done) { - expect(formatHrtime([0, 10423456])).toEqual('10 ms'); - expect(formatHrtime([0, 10500000])).toEqual('11 ms'); + it("should round first decimal place if integer part greather than 10", function (done) { + expect(formatHrtime([0, 10423456])).toEqual("10 ms"); + expect(formatHrtime([0, 10500000])).toEqual("11 ms"); done(); }); - it('should print until second decimal place if integer part less than 10', function(done) { - expect(formatHrtime([0, 9123456])).toEqual('9.12 ms'); + it("should print until second decimal place if integer part less than 10", function (done) { + expect(formatHrtime([0, 9123456])).toEqual("9.12 ms"); done(); }); - it('should round third decimal place if integer part less than 10', function(done) { - expect(formatHrtime([0, 9124999])).toEqual('9.12 ms'); - expect(formatHrtime([0, 9125000])).toEqual('9.13 ms'); + it("should round third decimal place if integer part less than 10", function (done) { + expect(formatHrtime([0, 9124999])).toEqual("9.12 ms"); + expect(formatHrtime([0, 9125000])).toEqual("9.13 ms"); done(); }); - it('should trim last "0" in decimal part', function(done) { - expect(formatHrtime([0, 9100000])).toEqual('9.1 ms'); - expect(formatHrtime([0, 9000000])).toEqual('9 ms'); + it('should trim last "0" in decimal part', function (done) { + expect(formatHrtime([0, 9100000])).toEqual("9.1 ms"); + expect(formatHrtime([0, 9000000])).toEqual("9 ms"); done(); }); - it('should convert minimum hrtime of unit "ms" normally', function(done) { - expect(formatHrtime([0, 1000000])).toEqual('1 ms'); + it('should convert minimum hrtime of unit "ms" normally', function (done) { + expect(formatHrtime([0, 1000000])).toEqual("1 ms"); done(); }); - it('should convert maximum hrtime of unit "ms" normally', function(done) { - expect(formatHrtime([0, 999999999])).toEqual('1000 ms'); + it('should convert maximum hrtime of unit "ms" normally', function (done) { + expect(formatHrtime([0, 999999999])).toEqual("1000 ms"); done(); }); }); - describe('should convert hrtime to string: unit is "μs"', function() { - it('should be no decimal part if integer part greater than 10', function(done) { - expect(formatHrtime([0, 10123])).toEqual('10 μs'); + describe('should convert hrtime to string: unit is "μs"', function () { + it("should be no decimal part if integer part greater than 10", function (done) { + expect(formatHrtime([0, 10123])).toEqual("10 μs"); done(); }); - it('should round first decimal place if integer part greather than 10', function(done) { - expect(formatHrtime([0, 10423])).toEqual('10 μs'); - expect(formatHrtime([0, 10500])).toEqual('11 μs'); + it("should round first decimal place if integer part greather than 10", function (done) { + expect(formatHrtime([0, 10423])).toEqual("10 μs"); + expect(formatHrtime([0, 10500])).toEqual("11 μs"); done(); }); - it('should print until second decimal place if integer part less than 10', function(done) { - expect(formatHrtime([0, 9123])).toEqual('9.12 μs'); + it("should print until second decimal place if integer part less than 10", function (done) { + expect(formatHrtime([0, 9123])).toEqual("9.12 μs"); done(); }); - it('should round third decimal place if integer part less than 10', function(done) { - expect(formatHrtime([0, 9124])).toEqual('9.12 μs'); - expect(formatHrtime([0, 9125])).toEqual('9.13 μs'); + it("should round third decimal place if integer part less than 10", function (done) { + expect(formatHrtime([0, 9124])).toEqual("9.12 μs"); + expect(formatHrtime([0, 9125])).toEqual("9.13 μs"); done(); }); - it('should trim last "0" in decimal part', function(done) { - expect(formatHrtime([0, 9100])).toEqual('9.1 μs'); - expect(formatHrtime([0, 9000])).toEqual('9 μs'); + it('should trim last "0" in decimal part', function (done) { + expect(formatHrtime([0, 9100])).toEqual("9.1 μs"); + expect(formatHrtime([0, 9000])).toEqual("9 μs"); done(); }); - it('should convert minimum hrtime of unit "μs" normally', function(done) { - expect(formatHrtime([0, 1000])).toEqual('1 μs'); + it('should convert minimum hrtime of unit "μs" normally', function (done) { + expect(formatHrtime([0, 1000])).toEqual("1 μs"); done(); }); - it('should convert maximum hrtime of unit "μs" normally', function(done) { - expect(formatHrtime([0, 999999])).toEqual('1000 μs'); + it('should convert maximum hrtime of unit "μs" normally', function (done) { + expect(formatHrtime([0, 999999])).toEqual("1000 μs"); done(); }); }); - describe('should convert hrtime to string: unit is "ns"', function() { - it('should convert minimum hrtime of unit "μs" normally', function(done) { - expect(formatHrtime([0, 1])).toEqual('1 ns'); + describe('should convert hrtime to string: unit is "ns"', function () { + it('should convert minimum hrtime of unit "μs" normally', function (done) { + expect(formatHrtime([0, 1])).toEqual("1 ns"); done(); }); - it('should convert maximum hrtime of unit "μs" normally', function(done) { - expect(formatHrtime([0, 999])).toEqual('999 ns'); + it('should convert maximum hrtime of unit "μs" normally', function (done) { + expect(formatHrtime([0, 999])).toEqual("999 ns"); done(); }); }); - describe('should convert irregular hrtime to an empty string', function() { - it('should convert non hrtime to an empty string', function(done) { - expect(formatHrtime(1234567890)).toEqual(''); - expect(formatHrtime('1234567890')).toEqual(''); + describe("should convert irregular hrtime to an empty string", function () { + it("should convert non hrtime to an empty string", function (done) { + expect(formatHrtime(1234567890)).toEqual(""); + expect(formatHrtime("1234567890")).toEqual(""); done(); }); - it('should convert bad hrtime to an empty string', function(done) { - expect(formatHrtime(['123', 123])).toEqual(''); - expect(formatHrtime([123, '123'])).toEqual(''); + it("should convert bad hrtime to an empty string", function (done) { + expect(formatHrtime(["123", 123])).toEqual(""); + expect(formatHrtime([123, "123"])).toEqual(""); done(); }); - it('should covert zero hrtime to an empty string', function(done) { - expect(formatHrtime([0, 0])).toEqual(''); + it("should covert zero hrtime to an empty string", function (done) { + expect(formatHrtime([0, 0])).toEqual(""); done(); }); }); diff --git a/test/lib/log-copy-tree.js b/test/lib/log-copy-tree.js index 4a679a6e..95e70236 100644 --- a/test/lib/log-copy-tree.js +++ b/test/lib/log-copy-tree.js @@ -1,17 +1,16 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var copyTree = require('../../lib/shared/log/copy-tree'); - -describe('lib: copy-tree', function() { +var expect = require("expect"); +var copyTree = require("../../lib/shared/log/copy-tree"); +describe("lib: copy-tree", function () { var nonConvertingNodeFactory = { topNode: copyNode, taskNode: copyNode, childNode: copyNode, }; - it('Should copy an empty tree', function(done) { + it("Should copy an empty tree", function (done) { var srcTree = {}; var opts = {}; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); @@ -20,13 +19,9 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy a tree having empty nodes', function(done) { + it("Should copy a tree having empty nodes", function (done) { var srcTree = { - nodes: [ - {}, - { nodes: [] }, - { nodes: [{}, {}] }, - ], + nodes: [{}, { nodes: [] }, { nodes: [{}, {}] }], }; var opts = {}; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); @@ -35,10 +30,7 @@ describe('lib: copy-tree', function() { { nodes: [] }, { nodes: [] }, { - nodes: [ - { nodes: [] }, - { nodes: [] }, - ], + nodes: [{ nodes: [] }, { nodes: [] }], }, ], }); @@ -46,8 +38,8 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy a tree', function(done) { - var srcTree = require('../fixtures/copy-tree'); + it("Should copy a tree", function (done) { + var srcTree = require("../fixtures/copy-tree"); var opts = {}; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); expect(newTree).toEqual(srcTree); @@ -55,8 +47,8 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy with no nodeFactory', function(done) { - var srcTree = require('../fixtures/copy-tree'); + it("Should copy with no nodeFactory", function (done) { + var srcTree = require("../fixtures/copy-tree"); var opts = {}; var newTree = copyTree(srcTree, opts); expect(newTree).toEqual(srcTree); @@ -64,20 +56,18 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy with no opts and no nodeFactory', function(done) { - var srcTree = require('../fixtures/copy-tree'); + it("Should copy with no opts and no nodeFactory", function (done) { + var srcTree = require("../fixtures/copy-tree"); var newTree = copyTree(srcTree); expect(newTree).toEqual(srcTree); expect(newTree).not.toBe(srcTree); done(); }); - describe('opts.tasksDepth', function() { - - it('Should copy a tree until depth 1 if the specified depth is 0', - function(done) { - var srcTree = require('../fixtures/copy-tree'); - var expectedTree = require('../expected/copy-tree/copy-tree-depth-1'); + describe("opts.tasksDepth", function () { + it("Should copy a tree until depth 1 if the specified depth is 0", function (done) { + var srcTree = require("../fixtures/copy-tree"); + var expectedTree = require("../expected/copy-tree/copy-tree-depth-1"); var opts = { tasksDepth: 0 }; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); expect(newTree).toEqual(expectedTree); @@ -85,10 +75,9 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy a tree until depth 1 if the specified depth is 1', - function(done) { - var srcTree = require('../fixtures/copy-tree'); - var expectedTree = require('../expected/copy-tree/copy-tree-depth-1'); + it("Should copy a tree until depth 1 if the specified depth is 1", function (done) { + var srcTree = require("../fixtures/copy-tree"); + var expectedTree = require("../expected/copy-tree/copy-tree-depth-1"); var opts = { tasksDepth: 1 }; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); expect(newTree).toEqual(expectedTree); @@ -96,10 +85,9 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy a tree until depth 2 if the specified depth is 2', - function(done) { - var srcTree = require('../fixtures/copy-tree'); - var expectedTree = require('../expected/copy-tree/copy-tree-depth-2'); + it("Should copy a tree until depth 2 if the specified depth is 2", function (done) { + var srcTree = require("../fixtures/copy-tree"); + var expectedTree = require("../expected/copy-tree/copy-tree-depth-2"); var opts = { tasksDepth: 2 }; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); expect(newTree).toEqual(expectedTree); @@ -107,10 +95,9 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy a tree until depth 3 if the specified depth is 3', - function(done) { - var srcTree = require('../fixtures/copy-tree'); - var expectedTree = require('../expected/copy-tree/copy-tree-depth-3'); + it("Should copy a tree until depth 3 if the specified depth is 3", function (done) { + var srcTree = require("../fixtures/copy-tree"); + var expectedTree = require("../expected/copy-tree/copy-tree-depth-3"); var opts = { tasksDepth: 3 }; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); expect(newTree).toEqual(expectedTree); @@ -118,10 +105,9 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy a tree until depth 3 if the specified depth is 4', - function(done) { - var srcTree = require('../fixtures/copy-tree'); - var expectedTree = require('../expected/copy-tree/copy-tree-depth-4'); + it("Should copy a tree until depth 3 if the specified depth is 4", function (done) { + var srcTree = require("../fixtures/copy-tree"); + var expectedTree = require("../expected/copy-tree/copy-tree-depth-4"); var opts = { tasksDepth: 4 }; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); expect(newTree).toEqual(expectedTree); @@ -129,10 +115,9 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy a full depth tree if the specified depth is too large', - function(done) { - var srcTree = require('../fixtures/copy-tree'); - var expectedTree = require('../expected/copy-tree/copy-tree-depth-4'); + it("Should copy a full depth tree if the specified depth is too large", function (done) { + var srcTree = require("../fixtures/copy-tree"); + var expectedTree = require("../expected/copy-tree/copy-tree-depth-4"); var opts = { tasksDepth: 5 }; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); expect(newTree).toEqual(expectedTree); @@ -140,10 +125,9 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy a tree until depth 1 if the specified depth < 1', - function(done) { - var srcTree = require('../fixtures/copy-tree'); - var expectedTree = require('../expected/copy-tree/copy-tree-depth-1'); + it("Should copy a tree until depth 1 if the specified depth < 1", function (done) { + var srcTree = require("../fixtures/copy-tree"); + var expectedTree = require("../expected/copy-tree/copy-tree-depth-1"); var opts = { tasksDepth: -1 }; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); expect(newTree).toEqual(expectedTree); @@ -151,45 +135,43 @@ describe('lib: copy-tree', function() { done(); }); - it('Should copy a full depth tree if the specified depth is not number', - function(done) { - var srcTree = require('../fixtures/copy-tree'); - var expectedTree = require('../expected/copy-tree/copy-tree-depth-4'); + it("Should copy a full depth tree if the specified depth is not number", function (done) { + var srcTree = require("../fixtures/copy-tree"); + var expectedTree = require("../expected/copy-tree/copy-tree-depth-4"); var opts = { tasksDepth: null }; var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); expect(newTree).toEqual(expectedTree); expect(newTree).not.toBe(srcTree); - opts = { tasksDepth: 'A' }; + opts = { tasksDepth: "A" }; newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); expect(newTree).toEqual(expectedTree); expect(newTree).not.toBe(srcTree); done(); }); - }); - describe('opts.compactTasks', function() { - it('Should output only nodes of which `.branch` are true and those ' + - 'children', function(done) { - var srcTree = require('../fixtures/copy-tree'); - var expectedTree = require('../expected/copy-tree/copy-tree-compact'); - var opts = { compactTasks: true }; - var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); - expect(newTree).toEqual(expectedTree); - expect(newTree).not.toBe(srcTree); - done(); - }); + describe("opts.compactTasks", function () { + it( + "Should output only nodes of which `.branch` are true and those " + + "children", + function (done) { + var srcTree = require("../fixtures/copy-tree"); + var expectedTree = require("../expected/copy-tree/copy-tree-compact"); + var opts = { compactTasks: true }; + var newTree = copyTree(srcTree, opts, nonConvertingNodeFactory); + expect(newTree).toEqual(expectedTree); + expect(newTree).not.toBe(srcTree); + done(); + }, + ); }); - }); - function copyNode(node) { var obj = {}; - Object.keys(node).forEach(function(key) { + Object.keys(node).forEach(function (key) { obj[key] = node[key]; }); return obj; } - diff --git a/test/lib/make-title.js b/test/lib/make-title.js index 725d7840..1678ee39 100644 --- a/test/lib/make-title.js +++ b/test/lib/make-title.js @@ -1,36 +1,35 @@ -'use strict'; +"use strict"; -var expect = require('expect'); +var expect = require("expect"); -var makeTitle = require('../../lib/shared/make-title'); +var makeTitle = require("../../lib/shared/make-title"); -describe('lib: make-title', function() { +describe("lib: make-title", function () { + it("returns the command if no argv passed", function (done) { + var title = makeTitle("gulp"); - it('returns the command if no argv passed', function(done) { - var title = makeTitle('gulp'); - - expect(title).toEqual('gulp'); + expect(title).toEqual("gulp"); done(); }); - it('returns the command if argv is 0 length', function(done) { - var title = makeTitle('gulp', []); + it("returns the command if argv is 0 length", function (done) { + var title = makeTitle("gulp", []); - expect(title).toEqual('gulp'); + expect(title).toEqual("gulp"); done(); }); - it('returns the command and argvs if not empty', function(done) { - var title = makeTitle('gulp', ['build']); + it("returns the command and argvs if not empty", function (done) { + var title = makeTitle("gulp", ["build"]); - expect(title).toEqual('gulp build'); + expect(title).toEqual("gulp build"); done(); }); - it('concats all argv', function(done) { - var title = makeTitle('gulp', ['build', '--prod']); + it("concats all argv", function (done) { + var title = makeTitle("gulp", ["build", "--prod"]); - expect(title).toEqual('gulp build --prod'); + expect(title).toEqual("gulp build --prod"); done(); }); }); diff --git a/test/lib/normalize-error.js b/test/lib/normalize-error.js index d06aef95..f5d05b63 100644 --- a/test/lib/normalize-error.js +++ b/test/lib/normalize-error.js @@ -1,31 +1,32 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var normalizeError = require('../../lib/versioned/^4.0.0/normalize-error'); +var expect = require("expect"); +var normalizeError = require("../../lib/versioned/^4.0.0/normalize-error"); -describe('lib: normalizeError', function() { - - it('Should return target task and similar tasks if both are included in error message', function(done) { - var err = new Error('Task never defined: task2 - did you mean? task0, task1'); +describe("lib: normalizeError", function () { + it("Should return target task and similar tasks if both are included in error message", function (done) { + var err = new Error( + "Task never defined: task2 - did you mean? task0, task1", + ); normalizeError(err); - expect(err).toHaveProperty('task', 'task2'); - expect(err).toHaveProperty('similar', ['task0', 'task1']); + expect(err).toHaveProperty("task", "task2"); + expect(err).toHaveProperty("similar", ["task0", "task1"]); done(); }); - it('Should return only target task if similar tasks is not included in error message', function(done) { - var err = new Error('Task never defined: task2'); - normalizeError(err) - expect(err).toHaveProperty('task', 'task2'); - expect(err).not.toHaveProperty('similar'); + it("Should return only target task if similar tasks is not included in error message", function (done) { + var err = new Error("Task never defined: task2"); + normalizeError(err); + expect(err).toHaveProperty("task", "task2"); + expect(err).not.toHaveProperty("similar"); done(); }); - it('Should return undefined if error is other', function(done) { - var err = new Error('xxx'); - normalizeError(err) - expect(err).not.toHaveProperty('task'); - expect(err).not.toHaveProperty('similar'); + it("Should return undefined if error is other", function (done) { + var err = new Error("xxx"); + normalizeError(err); + expect(err).not.toHaveProperty("task"); + expect(err).not.toHaveProperty("similar"); done(); }); }); diff --git a/test/lib/task-tree.js b/test/lib/task-tree.js index ffe4dcad..99c5e5a1 100644 --- a/test/lib/task-tree.js +++ b/test/lib/task-tree.js @@ -1,20 +1,19 @@ -'use strict'; +"use strict"; -var expect = require('expect'); +var expect = require("expect"); -var taskTree = require('../../lib/versioned/^3.7.0/task-tree'); +var taskTree = require("../../lib/versioned/^3.7.0/task-tree"); -describe('lib: taskTree', function() { - - it('forms a tree properly', function(done) { +describe("lib: taskTree", function () { + it("forms a tree properly", function (done) { expect(taskTree).not.toBeNull(); // Lol shutup jshint var tasks = { test: { - dep: ['dep1', 'dep2'], + dep: ["dep1", "dep2"], }, test2: { - dep: ['dep3'], + dep: ["dep3"], }, test3: { dep: [], @@ -22,26 +21,24 @@ describe('lib: taskTree', function() { }; var expectTree = { - label: 'Tasks', + label: "Tasks", nodes: [ { - label: 'test', - type: 'task', + label: "test", + type: "task", nodes: [ - { label: 'dep1', type: 'task', nodes: [] }, - { label: 'dep2', type: 'task', nodes: [] }, + { label: "dep1", type: "task", nodes: [] }, + { label: "dep2", type: "task", nodes: [] }, ], }, { - label: 'test2', - type: 'task', - nodes: [ - { label: 'dep3', type: 'task', nodes: [] }, - ], + label: "test2", + type: "task", + nodes: [{ label: "dep3", type: "task", nodes: [] }], }, { - label: 'test3', - type: 'task', + label: "test3", + type: "task", nodes: [], }, ], @@ -51,13 +48,13 @@ describe('lib: taskTree', function() { done(); }); - it('processes children recursively.', function(done) { + it("processes children recursively.", function (done) { var tasks = { test: { - dep: ['test2', 'test3'], + dep: ["test2", "test3"], }, test2: { - dep: ['test3'], + dep: ["test3"], }, test3: { dep: [], @@ -65,44 +62,44 @@ describe('lib: taskTree', function() { }; var expectTree = { - label: 'Tasks', + label: "Tasks", nodes: [ { - label: 'test', - type: 'task', + label: "test", + type: "task", nodes: [ { - label: 'test2', - type: 'task', + label: "test2", + type: "task", nodes: [ { - label: 'test3', - type: 'task', + label: "test3", + type: "task", nodes: [], }, ], }, { - label: 'test3', - type: 'task', + label: "test3", + type: "task", nodes: [], }, ], }, { - label: 'test2', - type: 'task', + label: "test2", + type: "task", nodes: [ { - label: 'test3', - type: 'task', + label: "test3", + type: "task", nodes: [], }, ], }, { - label: 'test3', - type: 'task', + label: "test3", + type: "task", nodes: [], }, ], diff --git a/test/logging.js b/test/logging.js index 11d6bd5a..0a2e545b 100644 --- a/test/logging.js +++ b/test/logging.js @@ -1,69 +1,68 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; +var expect = require("expect"); +var exec = require("child_process").exec; -describe('logging', function() { - - it('log-level flag for debug: -LLLL', function(done) { - exec('node ' + __dirname + '/fixtures/logging.js -LLLL', cb); +describe("logging", function () { + it("log-level flag for debug: -LLLL", function (done) { + exec("node " + __dirname + "/fixtures/logging.js -LLLL", cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toMatch('test error'); - stdout = stdout.replace(/\\/g, '/').split('\n'); - expect(stdout[0]).toMatch('test debug'); - expect(stdout[1]).toMatch('test info'); - expect(stdout[2]).toMatch('test warn'); + expect(stderr).toMatch("test error"); + stdout = stdout.replace(/\\/g, "/").split("\n"); + expect(stdout[0]).toMatch("test debug"); + expect(stdout[1]).toMatch("test info"); + expect(stdout[2]).toMatch("test warn"); done(err); } }); - it('no log-level flag: defaults to -LLL', function(done) { - exec('node ' + __dirname + '/fixtures/logging.js', cb); + it("no log-level flag: defaults to -LLL", function (done) { + exec("node " + __dirname + "/fixtures/logging.js", cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toMatch('test error'); - stdout = stdout.replace(/\\/g, '/').split('\n'); - expect(stdout[0]).toMatch('test info'); - expect(stdout[1]).toMatch('test warn'); + expect(stderr).toMatch("test error"); + stdout = stdout.replace(/\\/g, "/").split("\n"); + expect(stdout[0]).toMatch("test info"); + expect(stdout[1]).toMatch("test warn"); done(err); } }); - it('log-level flag for info: -LLL', function(done) { - exec('node ' + __dirname + '/fixtures/logging.js -LLL', cb); + it("log-level flag for info: -LLL", function (done) { + exec("node " + __dirname + "/fixtures/logging.js -LLL", cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toMatch('test error'); - stdout = stdout.replace(/\\/g, '/').split('\n'); - expect(stdout[0]).toMatch('test info'); - expect(stdout[1]).toMatch('test warn'); + expect(stderr).toMatch("test error"); + stdout = stdout.replace(/\\/g, "/").split("\n"); + expect(stdout[0]).toMatch("test info"); + expect(stdout[1]).toMatch("test warn"); done(err); } }); - it('log-level flag for warn: -LL', function(done) { - exec('node ' + __dirname + '/fixtures/logging.js -LL', cb); + it("log-level flag for warn: -LL", function (done) { + exec("node " + __dirname + "/fixtures/logging.js -LL", cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toMatch('test error'); - stdout = stdout.replace(/\\/g, '/').split('\n'); - expect(stdout[0]).toMatch('test warn'); + expect(stderr).toMatch("test error"); + stdout = stdout.replace(/\\/g, "/").split("\n"); + expect(stdout[0]).toMatch("test warn"); done(err); } }); - it('log-level flag for error: -L', function(done) { - exec('node ' + __dirname + '/fixtures/logging.js -L', cb); + it("log-level flag for error: -L", function (done) { + exec("node " + __dirname + "/fixtures/logging.js -L", cb); function cb(err, stdout, stderr) { expect(err).toBeNull(); - expect(stderr).toMatch('test error'); - expect(stdout).toEqual(''); + expect(stderr).toMatch("test error"); + expect(stdout).toEqual(""); done(err); } }); diff --git a/test/sync-task.js b/test/sync-task.js index 8f1bf677..6020c57d 100644 --- a/test/sync-task.js +++ b/test/sync-task.js @@ -1,16 +1,16 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var exec = require('child_process').exec; -var path = require('path'); +var expect = require("expect"); +var exec = require("child_process").exec; +var path = require("path"); -var sliceLines = require('./tool/slice-lines'); -var gulp = require('./tool/gulp-cmd'); +var sliceLines = require("./tool/slice-lines"); +var gulp = require("./tool/gulp-cmd"); -describe('sync-task', function() { - it('should return error code 1 if any tasks did not complete', function(done) { - var opts = { cwd: path.join(__dirname, 'fixtures/gulpfiles') }; - exec(gulp('test6 test7 test8'), opts, cb); +describe("sync-task", function () { + it("should return error code 1 if any tasks did not complete", function (done) { + var opts = { cwd: path.join(__dirname, "fixtures/gulpfiles") }; + exec(gulp("test6 test7 test8"), opts, cb); function cb(err) { expect(err).not.toBeNull(); @@ -19,53 +19,63 @@ describe('sync-task', function() { } }); - it('should log tasks which did not complete', function(done) { - var opts = { cwd: path.join(__dirname, 'fixtures/gulpfiles') }; - exec(gulp('test6 test7 test8'), opts, cb); + it("should log tasks which did not complete", function (done) { + var opts = { cwd: path.join(__dirname, "fixtures/gulpfiles") }; + exec(gulp("test6 test7 test8"), opts, cb); function cb(err, stdout) { expect(sliceLines(stdout, 5, 7)).toEqual( - 'The following tasks did not complete: test7, test8\n' + - 'Did you forget to signal async completion?' + "The following tasks did not complete: test7, test8\n" + + "Did you forget to signal async completion?", ); done(); } }); - it('should not log false positive in case of parallel failure', function(done) { - var opts = { cwd: path.join(__dirname, '..') }; - exec(gulp( - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-parallel-failure.js' - ), opts, cb); + it("should not log false positive in case of parallel failure", function (done) { + var opts = { cwd: path.join(__dirname, "..") }; + exec( + gulp("--gulpfile ./test/fixtures/gulpfiles/gulpfile-parallel-failure.js"), + opts, + cb, + ); function cb(err, stdout) { - expect(stdout).not.toMatch('The following tasks did not complete:'); + expect(stdout).not.toMatch("The following tasks did not complete:"); done(); } }); - it('should not log false positive in case of parallel failure in continue mode', function(done) { - var opts = { cwd: path.join(__dirname, '..') }; - exec(gulp( - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-parallel-failure.js' - ), opts, cb); + it("should not log false positive in case of parallel failure in continue mode", function (done) { + var opts = { cwd: path.join(__dirname, "..") }; + exec( + gulp("--gulpfile ./test/fixtures/gulpfiles/gulpfile-parallel-failure.js"), + opts, + cb, + ); function cb(err, stdout) { - expect(stdout).not.toMatch('The following tasks did not complete:'); + expect(stdout).not.toMatch("The following tasks did not complete:"); done(); } }); - it('should log non-completing task alongside a failure in continue mode', function(done) { - var opts = { cwd: path.join(__dirname, '..') }; - exec(gulp( - '--continue', - '--gulpfile ./test/fixtures/gulpfiles/gulpfile-parallel-failure.js', - 'broken' - ), opts, cb); + it("should log non-completing task alongside a failure in continue mode", function (done) { + var opts = { cwd: path.join(__dirname, "..") }; + exec( + gulp( + "--continue", + "--gulpfile ./test/fixtures/gulpfiles/gulpfile-parallel-failure.js", + "broken", + ), + opts, + cb, + ); function cb(err, stdout) { - expect(stdout).toMatch('The following tasks did not complete: broken, notCompleting1\n'); + expect(stdout).toMatch( + "The following tasks did not complete: broken, notCompleting1\n", + ); done(); } }); diff --git a/test/tool/erase-lapse.js b/test/tool/erase-lapse.js index f1345e2d..3da2da46 100644 --- a/test/tool/erase-lapse.js +++ b/test/tool/erase-lapse.js @@ -1,7 +1,7 @@ -'use strict'; +"use strict"; -module.exports = function(text) { - return (text + '\n') - .replace(/ after [0-9.]+ (s|ms|μs|min)(\r\n|\r|\n)/g, ' after ?\n') +module.exports = function (text) { + return (text + "\n") + .replace(/ after [0-9.]+ (s|ms|μs|min)(\r\n|\r|\n)/g, " after ?\n") .slice(0, -1); }; diff --git a/test/tool/erase-time.js b/test/tool/erase-time.js index 444c4412..acd8bc3c 100644 --- a/test/tool/erase-time.js +++ b/test/tool/erase-time.js @@ -1,5 +1,5 @@ -'use strict'; +"use strict"; -module.exports = function(text) { - return ('\n' + text).replace(/(\r\n|\r|\n)\[[0-9:]{8}\] /g, '\n').slice(1); +module.exports = function (text) { + return ("\n" + text).replace(/(\r\n|\r|\n)\[[0-9:]{8}\] /g, "\n").slice(1); }; diff --git a/test/tool/gulp-cmd.js b/test/tool/gulp-cmd.js index 87540be1..a9500d26 100644 --- a/test/tool/gulp-cmd.js +++ b/test/tool/gulp-cmd.js @@ -1,16 +1,16 @@ -'use strict'; +"use strict"; -var path = require('path'); +var path = require("path"); function gulp(/* ... */) { var arr = Array.prototype.slice.apply(arguments); - arr.unshift('node ' + path.join(__dirname, '../../bin/gulp.js')); - return arr.join(' '); + arr.unshift("node " + path.join(__dirname, "../../bin/gulp.js")); + return arr.join(" "); } -gulp.debug = function(/* ... */) { +gulp.debug = function (/* ... */) { var s = gulp.apply(null, arguments); console.log(s); return s; -} +}; module.exports = gulp; diff --git a/test/tool/slice-lines.js b/test/tool/slice-lines.js index 4431d3c8..b40a0bd1 100644 --- a/test/tool/slice-lines.js +++ b/test/tool/slice-lines.js @@ -1,11 +1,11 @@ -'use strict'; +"use strict"; -var eraseLapse = require('./erase-lapse'); -var eraseTime = require('./erase-time'); +var eraseLapse = require("./erase-lapse"); +var eraseTime = require("./erase-time"); function sliceLines(text, start, end) { text = eraseLapse(eraseTime(text)); - return text.split('\n').slice(start, end).join('\n'); + return text.split("\n").slice(start, end).join("\n"); } module.exports = sliceLines; diff --git a/test/window-extended-length-paths.js b/test/window-extended-length-paths.js index e89b0f4e..2b59b9fa 100644 --- a/test/window-extended-length-paths.js +++ b/test/window-extended-length-paths.js @@ -1,55 +1,67 @@ -'use strict'; +"use strict"; -var expect = require('expect'); -var os = require('os'); -var path = require('path'); +var expect = require("expect"); +var os = require("os"); +var path = require("path"); -var childProcess = require('child_process'); +var childProcess = require("child_process"); var exec = childProcess.exec; -var eraseTime = require('./tool/erase-time'); -var eraseLapse = require('./tool/erase-lapse'); -var tildify = require('../lib/shared/tildify'); +var eraseTime = require("./tool/erase-time"); +var eraseLapse = require("./tool/erase-lapse"); +var tildify = require("../lib/shared/tildify"); -var gulpfileDir = path.resolve(__dirname, 'fixtures/gulpfiles'); -var gulpfilePath = path.resolve(gulpfileDir, 'gulpfile.js'); +var gulpfileDir = path.resolve(__dirname, "fixtures/gulpfiles"); +var gulpfilePath = path.resolve(gulpfileDir, "gulpfile.js"); -var gulpJsPath = '\\\\?\\' + path.resolve(__dirname, '../bin/gulp.js'); +var gulpJsPath = "\\\\?\\" + path.resolve(__dirname, "../bin/gulp.js"); -describe('windows extended length paths', function() { - it('Should run normaly even if using \'\\\\?\\\'prefix in paths', function(done) { +describe("windows extended length paths", function () { + it("Should run normaly even if using '\\\\?\\'prefix in paths", function (done) { // It seems like Node 24 broke support for this launching an entry point - if (os.platform() !== 'win32' || process.versions.node.startsWith("24.")) { + if (os.platform() !== "win32" || process.versions.node.startsWith("24.")) { this.skip(); return; } - var cmd = ['node', gulpJsPath, '--no-color', '--gulpfile', gulpfilePath].join(' '); + var cmd = [ + "node", + gulpJsPath, + "--no-color", + "--gulpfile", + gulpfilePath, + ].join(" "); exec(cmd, function cb(err, stdout, stderr) { expect(err).toEqual(null); - expect(stderr).toEqual(''); + expect(stderr).toEqual(""); var workingDir = tildify(gulpfileDir); var usingGulpfile = tildify(gulpfilePath); stdout = eraseLapse(eraseTime(stdout)); - expect(stdout).toEqual('' + - 'Working directory changed to ' + workingDir + '\n' + - 'Using gulpfile ' + usingGulpfile + '\n' + - 'Starting \'default\'...\n' + - 'Starting \'test1\'...\n' + - 'Starting \'noop\'...\n' + - 'Finished \'noop\' after ?\n' + - 'Finished \'test1\' after ?\n' + - 'Starting \'test3\'...\n' + - 'Starting \'described\'...\n' + - 'Finished \'described\' after ?\n' + - 'Finished \'test3\' after ?\n' + - 'Starting \'noop\'...\n' + - 'Finished \'noop\' after ?\n' + - 'Finished \'default\' after ?\n' + - ''); + expect(stdout).toEqual( + "" + + "Working directory changed to " + + workingDir + + "\n" + + "Using gulpfile " + + usingGulpfile + + "\n" + + "Starting 'default'...\n" + + "Starting 'test1'...\n" + + "Starting 'noop'...\n" + + "Finished 'noop' after ?\n" + + "Finished 'test1' after ?\n" + + "Starting 'test3'...\n" + + "Starting 'described'...\n" + + "Finished 'described' after ?\n" + + "Finished 'test3' after ?\n" + + "Starting 'noop'...\n" + + "Finished 'noop' after ?\n" + + "Finished 'default' after ?\n" + + "", + ); done(); }); }); From f0fb07f7f12e51ef0b4bdb7a99d8a242da84521c Mon Sep 17 00:00:00 2001 From: Blaine Bublitz Date: Sun, 27 Sep 2026 12:19:29 -0700 Subject: [PATCH 3/3] chore: Run nyc in test script --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 7bfe9868..86d2e4b6 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,7 @@ "lint": "eslint .", "manpage": "marked-man --name gulp docs/CLI.md > gulp.1", "pretest": "npm run lint", - "test": "mocha --async-only --timeout 5000 test/lib test", - "cover": "nyc mocha --async-only --timeout 5000 test/lib test" + "test": "nyc mocha --async-only --timeout 5000 test/lib test" }, "dependencies": { "@gulpjs/messages": "^1.1.0",