diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e34b90b..1c40f70 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,4 +8,4 @@ updates: - package-ecosystem: npm # See documentation for possible values directory: / # Location of package manifests schedule: - interval: weekly + interval: daily \ No newline at end of file diff --git a/.github/labeler.yml b/.github/labeler.yml index 4973a51..5b47da9 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1 +1 @@ -'CI failed': '**/*.*' +'CI failed': '**/*.*' \ No newline at end of file diff --git a/.github/workflows/check-md-links.yml b/.github/workflows/check-md-links.yml new file mode 100644 index 0000000..87a2e30 --- /dev/null +++ b/.github/workflows/check-md-links.yml @@ -0,0 +1,19 @@ +name: Check for broken Markdown links + +on: + schedule: + - cron: 0 0 * * * + workflow_dispatch: {} + +jobs: + check-links: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 19.x + - name: Install dependencies + run: yarn + - name: Run link check + run: yarn check-links diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b8b55e..7db36e1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,6 +9,8 @@ on: jobs: test: + outputs: + IS_RELEASE_COMMIT: ${{ steps.commit.outputs.IS_RELEASE_COMMIT }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -17,15 +19,48 @@ jobs: node-version: 19.x always-auth: true + - name: Check commit message + id: commit + run: | + COMMIT_MSG=$(/usr/bin/git log --format=%B -n 1 HEAD) + STRING=$(echo $COMMIT_MSG | (grep -E "infra:|docs:|lint:|code-style:" || echo '')) + + if [ -z "$STRING" ]; then + echo "IS_RELEASE_COMMIT=1" >> $GITHUB_OUTPUT + echo "IS_RELEASE_COMMIT=1" >> $GITHUB_ENV + else + echo "This commit will NOT trigger a release." + + echo "IS_RELEASE_COMMIT=0" >> $GITHUB_OUTPUT + echo "IS_RELEASE_COMMIT=0" >> $GITHUB_ENV + fi + + - name: Install dependencies - run: yarn + run: yarn + + - name: Validate Markdown links + run: yarn check-links + + - name: Validate package.json + run: yarn validate-package-json + + - name: Run ESLint + if: env.IS_RELEASE_COMMIT == '1' + run: | + yarn lint - name: Build source code - run: yarn build + if: env.IS_RELEASE_COMMIT == '1' + run: | + yarn build - name: Run test suites - run: yarn test + if: env.IS_RELEASE_COMMIT == '1' + run: | + yarn test release: + if: needs.test.outputs.IS_RELEASE_COMMIT == '1' permissions: contents: write needs: test @@ -66,8 +101,6 @@ jobs: run: yarn - name: Build code run: yarn build - - name: Build UMD Version - run: yarn build:umd - name: Set authentication token run: | npm set //registry.npmjs.org/:_authToken ${{ secrets.NPM_AUTH_TOKEN }} @@ -90,11 +123,11 @@ jobs: run: yarn - name: Build code run: yarn build - - name: Build UMD Version - run: yarn build:umd + - name: Set authentication token run: | npm set //npm.pkg.github.com/:_authToken ${{ secrets.GPR_AUTH_TOKEN }} + - name: Get ready to publish to GPR run: | jq ".name = \"@$REPO\"" package.json > temp.json && mv temp.json package.json diff --git a/.github/workflows/issue-welcome.yml b/.github/workflows/issue-welcome.yml index af503b9..7e7d129 100644 --- a/.github/workflows/issue-welcome.yml +++ b/.github/workflows/issue-welcome.yml @@ -16,6 +16,7 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} issue_number: ${{ github.event.issue.number }} body: | + Hi, ${{ github.actor }}! Make sure to comply with the [Code of Conduct]( https://github.com/${{ github.repository }}/blob/main/CODE_OF_CONDUCT.md), [security policy](https://github.com/${{ github.repository }}/blob/main/SECURITY.md) diff --git a/.github/workflows/pr-build-failed.yml b/.github/workflows/pr-build-failed.yml index 017cea7..d4213a9 100644 --- a/.github/workflows/pr-build-failed.yml +++ b/.github/workflows/pr-build-failed.yml @@ -25,6 +25,7 @@ jobs: Don't worry, it'll run again if you commit any changes to this PR. - name: Label PR as "CI failed" uses: actions/labeler@v4 - with: + with: sync-label: true repo-token: ${{ secrets.GITHUB_TOKEN }} + \ No newline at end of file diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 5c17153..d0544b7 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -3,12 +3,49 @@ name: Pull Request check on: pull_request: types: - - edited - opened - synchronize - paths: - - src/**/*.* jobs: + say-hi: + continue-on-error: true + permissions: + pull-requests: write + runs-on: ubuntu-latest + steps: + - name: Check for existence of comment + id: comment + run: | + yarn init --yes + yarn add --optional @octokit/rest@20.0.1 + node --eval=" + (async function() { + const { Octokit } = require('@octokit/rest'); + const github = new Octokit({ auth: process.env.GITHUB_TOKEN }); + const issueNumber = '${{ github.event.pull_request.number }}'; + const owner = '${{ github.repository_owner }}'; + const repo = '${{ github.repository }}'.replace(owner + '/', ''); + + const { data: comments } = await github.issues.listComments({ + owner, + repo, + issue_number: issueNumber, + }); + + console.log(comments.some(comment => comment.body.includes('Hi, ${{ github.actor }}'))); + })(); + " >> hi.txt + echo "result=$(cat hi.txt | grep -E 'true|false')" >> $GITHUB_OUTPUT + + - name: Say hi + uses: jungwinter/comment@v1 + if: steps.comment.outputs.result == 'false' + with: + type: create + token: ${{ secrets.GITHUB_TOKEN }} + issue_number: ${{ github.event.pull_request.number }} + body: | + Hi, ${{ github.actor }}! + Make sure to comply with the [Code of Conduct](https://github.com/${{ github.repository }}/blob/main/CODE_OF_CONDUCT.md), [security policy](https://github.com/${{ github.repository }}/blob/main/SECURITY.md) and [contribution guidelines](https://github.com/${{ github.repository }}/blob/main/CONTRIBUTING.md) before contributing to this repo. test: permissions: pull-requests: write @@ -23,25 +60,80 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16.x - - name: Clone the main repo - run: cd .. && sudo /usr/bin/git clone https://github.com/${{ github.repository }} main && cd - - - name: Check if the PR is acceptable - run: | - diff -q ./tests/ ../main/tests - diff -q ./.github/ ../main/.github - - name: Copy test suites from main repo to PR - run: cp ../main/tests/*.* tests/ - - name: Get rid of the main repo's clone - run: sudo rm -rf ../main - name: Install dependencies run: yarn + + - name: Validate package.json + run: yarn validate-package-json + + - name: Validate Markdown links + run: yarn check-links + + - name: Run ESLint + run: yarn lint + - name: Build code run: yarn build + - name: Run main test suites run: yarn test + + - name: Checkout main + run: git clone https://github.com/${{ github.repository }} main/ - name: Report build failed (if any) if: failure() - uses: ./.github/workflows/pr-build-failed.yml + uses: ./main/.github/workflows/pr-build-failed.yml with: pr-author: ${{ github.event.pull_request.user.login }} number: ${{ github.event.pull_request.number }} + assign-and-ping: + runs-on: ubuntu-latest + continue-on-error: true + needs: test + if: success() + permissions: + pull-requests: write + issues: write + steps: + - name: Set up Node + uses: actions/setup-node@v3 + with: + node-version: 19.x + + - name: Assign pull request to yourself + run: | + yarn init --yes + yarn add --optional @octokit/rest@20.0.1 + node --eval=" + const { Octokit } = require('@octokit/rest'); + const github = new Octokit({ auth: process.env.GITHUB_TOKEN }); + (async function() { + await github.issues.addAssignees({ + owner: '${{ github.repository_owner }}', + repo: '${{ github.repository }}'.replace('${{ github.repository_owner }}/', ''), + issue_number: ${{ github.event.pull_request.number }}, + assignees: ['${{ github.repository_owner }}'], + }); + })(); + " + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Request code review + run: | + yarn init --yes + yarn add --optional @octokit/rest@20.0.1 + node --eval=" + const { Octokit } = require('@octokit/rest'); + const github = new Octokit({ auth: process.env.GITHUB_TOKEN }); + (async function() { + await github.pulls.requestReviewers({ + owner: '${{ github.repository_owner }}', + repo: '${{ github.repository }}'.replace('${{ github.repository_owner }}/', ''), + pull_number: ${{ github.event.pull_request.number }}, + reviewers: ['${{ github.repository_owner }}'], + }); + })(); + " + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/pr-welcome.yml b/.github/workflows/pr-welcome.yml deleted file mode 100644 index 9370ce9..0000000 --- a/.github/workflows/pr-welcome.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Welcome message for pull requests -on: - pull_request: - types: - - opened - -jobs: - say-hi: - permissions: - pull-requests: write - runs-on: ubuntu-latest - steps: - - name: Say hi - uses: jungwinter/comment@v1 - with: - type: create - token: ${{ secrets.GITHUB_TOKEN }} - issue_number: ${{ github.event.pull_request.number }} - body: | - Hi, ${{ github.event.pull_request.user.login }}! Welcome to ${{ github.repository }} issues! - Make sure to comply with the [Code of Conduct]( - https://github.com/${{ github.repository }}/blob/main/CODE_OF_CONDUCT.md), [security policy]( - https://github.com/${{ github.repository }}/blob/main/SECURITY.md) and [contribution guidelines - ](https://github.com/${{ github.repository }}/blob/main/CONTRIBUTING.md) before contributing to - this repo. diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000..2519594 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,5 @@ +{ + "MD010": false, + "MD013": false, + "MD033": false +} \ No newline at end of file diff --git a/.remarkrc.json b/.remarkrc.json new file mode 100644 index 0000000..f6af135 --- /dev/null +++ b/.remarkrc.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "gfm", + "validate-links" + ] +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 59df75c..e5b2cf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,3 +29,6 @@ - Fixed a major bug introduced on the previous version. +## Version 1.1.7 + +- Added `randomPhone`. diff --git a/README.md b/README.md index 66dd524..6a4d98e 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,6 @@ - 👴 Compliant with ECMAScript 3 - 📑 Split in different files (under `cjs/`) to import just what you need - 🎨 Includes a wide variety of randomizer functions -- **🔓 Cryptographically UNSAFE (see below for details)** - -**WARNING: This library doesn't generate cryptographically safe random numbers, due to its reliance on `Math.random()`. This library is designed to be portable across the browser and Node.js, to the expense of security.** ## API @@ -137,22 +134,68 @@ Generates a pseudo-random UUID v4. +- `function randomPhone(countryCode: number): string;` **NEW! (since 1.1.7)** + + Generates a 10-digit random phone number of the form `+xx xxx xxxxxxx`, where `x` is a digit. + + | Name | Type | Description | Optional? | + | ------------- | -------- | --------------------------------------------------------------------------------------- | --------- | + | `countryCode` | `number` | The code of the country to which the number would belong to. Must be between 1 and 999. | No | + +- `function randomPhone(countryCode: number, digitCount: number): string;` **NEW! (since 1.1.7)** + + Generates a random phone number of the form `+xx xxx x...`, where `x` is a digit. + + | Name | Type | Description | Optional? | + | ------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | --------- | + | `countryCode` | `number` | The code of the country to which the number would belong to. Must be between 1 and 999. | No | + | `digitCount` | `number` | The amount of digits the phone number must have beside the country code. If bigger than 10, the extra digits will be added to the `x...` block. | No | + ## Usage ```typescript +// Import the most basic function... +const { 'default': random } = require('@santi100/random-lib'); // CJS +import random from '@santi100/random-lib'; // ESM/TypeScript + +// Or import only the functions you need from the files you need... + +// CJS +const random = require('@santi100/random-lib/cjs/random'); +const randomFromArray = require('@santi100/random-lib/cjs/random-from-array'); +const randomIntegers = require('@santi100/random-lib/cjs/random-integers'); +const randomFloats = require('@santi100/random-lib/cjs/random-floats'); + +// TypeScript +import random = require('@santi100/random-lib/cjs/random'); +import randomFromArray = require('@santi100/random-lib/cjs/random-from-array'); +import randomIntegers = require('@santi100/random-lib/cjs/random-integers'); +import randomFloats = require('@santi100/random-lib/cjs/random-floats'); + +// ESM +import random from '@santi100/random-lib/cjs/random'; +import randomFromArray from '@santi100/random-lib/cjs/random-from-array'; +import randomIntegers from '@santi100/random-lib/cjs/random-integers'; +import randomFloats from '@santi100/random-lib/cjs/random-floats'; + +// Or import only the functions you need... import { - random, - randomFromArray, - randomIntegers, - randomFloats, -} from '@santi100/random-lib'; // ESM + random, + randomFromArray, + randomIntegers, + randomFloats, +} from '@santi100/random-lib'; // ESM/TypeScript const { - random, - randomFromArray, - randomIntegers, - randomFloats, + random, + randomFromArray, + randomIntegers, + randomFloats, } = require('@santi100/random-lib'); // CJS +// Or import everything +import * as randomLib from '@santi100/random-lib'; // ESM/TypeScript +const randomLib = require('@ssanti100/random-lib'); // CJS + // Generate a random integer between 1 and 10 const randomInt = random(10, 1); @@ -187,3 +230,9 @@ console.log(myRandomUppercaseLetters); // outputs an array of 10 random uppercas const myRandomLetters = randomLetters(3); console.log(myRandomLetters); // outputs an array of 3 random letters (either lowercase or uppercase, e.g. ['e', 'W', 'T']) ``` + +--- + + +This library doesn't generate cryptographically safe random numbers, due to its reliance on `Math.random()`. This library is designed to be portable across the browser and Node.js, to the expense of security. + diff --git a/cjs/core.d.ts b/cjs/core.d.ts index f677ae5..52f3347 100644 --- a/cjs/core.d.ts +++ b/cjs/core.d.ts @@ -15,8 +15,8 @@ export declare const WORDLIST: string[]; * @since 1.1.1 */ export interface RandomArraysOptions { - max?: number; - min?: number; + readonly max?: number; + readonly min?: number; } /** * An array containing all 26 English lowercase letters. diff --git a/cjs/index.d.ts b/cjs/index.d.ts index bd2864d..60177a7 100644 --- a/cjs/index.d.ts +++ b/cjs/index.d.ts @@ -1,19 +1,21 @@ +import randomPhone = require('./random-phone'); +import random = require('./random'); +import randomDate = require('./random-date'); +import randomDates = require('./random-dates'); +import randomFloat = require('./random-float'); +import randomFloats = require('./random-floats'); +import randomFromArray = require('./random-from-array'); +import randomIntegers = require('./random-integers'); +import randomLetter = require('./random-letter'); +import randomLetters = require('./random-letters'); +import randomLower = require('./random-lower'); +import randomLowers = require('./random-lowers'); +import randomUpper = require('./random-upper'); +import randomUppers = require('./random-uppers'); +import randomBoolean = require('./random-boolean'); +import randomUUID = require('./random-uuid'); +import randomPhrase = require('./random-phrase'); +import randomHexColor = require('./random-hex-color'); export * from './core'; -export * from './random'; -export * from './random-date'; -export * from './random-dates'; -export * from './random-float'; -export * from './random-floats'; -export * from './random-from-array'; -export * from './random-integers'; -export * from './random-letter'; -export * from './random-letters'; -export * from './random-lower'; -export * from './random-lowers'; -export * from './random-upper'; -export * from './random-uppers'; -export * from './random-boolean'; -export * from './random-phrase'; -export * from './random-uuid'; -export * from './random-hex-color'; -export { random as default } from './random'; +export { randomPhone, random, randomBoolean, randomDate, randomDates, randomFloat, randomFloats, randomFromArray, randomIntegers, randomLetter, randomLetters, randomLower, randomLowers, randomUUID, randomUpper, randomUppers, randomPhrase, randomHexColor, }; +export default random; diff --git a/cjs/index.js b/cjs/index.js index 6e036af..313dc27 100644 --- a/cjs/index.js +++ b/cjs/index.js @@ -14,24 +14,42 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; exports.__esModule = true; -exports["default"] = void 0; +exports.randomHexColor = exports.randomPhrase = exports.randomUppers = exports.randomUpper = exports.randomUUID = exports.randomLowers = exports.randomLower = exports.randomLetters = exports.randomLetter = exports.randomIntegers = exports.randomFromArray = exports.randomFloats = exports.randomFloat = exports.randomDates = exports.randomDate = exports.randomBoolean = exports.random = exports.randomPhone = void 0; +var randomPhone = require("./random-phone"); +exports.randomPhone = randomPhone; +var random = require("./random"); +exports.random = random; +var randomDate = require("./random-date"); +exports.randomDate = randomDate; +var randomDates = require("./random-dates"); +exports.randomDates = randomDates; +var randomFloat = require("./random-float"); +exports.randomFloat = randomFloat; +var randomFloats = require("./random-floats"); +exports.randomFloats = randomFloats; +var randomFromArray = require("./random-from-array"); +exports.randomFromArray = randomFromArray; +var randomIntegers = require("./random-integers"); +exports.randomIntegers = randomIntegers; +var randomLetter = require("./random-letter"); +exports.randomLetter = randomLetter; +var randomLetters = require("./random-letters"); +exports.randomLetters = randomLetters; +var randomLower = require("./random-lower"); +exports.randomLower = randomLower; +var randomLowers = require("./random-lowers"); +exports.randomLowers = randomLowers; +var randomUpper = require("./random-upper"); +exports.randomUpper = randomUpper; +var randomUppers = require("./random-uppers"); +exports.randomUppers = randomUppers; +var randomBoolean = require("./random-boolean"); +exports.randomBoolean = randomBoolean; +var randomUUID = require("./random-uuid"); +exports.randomUUID = randomUUID; +var randomPhrase = require("./random-phrase"); +exports.randomPhrase = randomPhrase; +var randomHexColor = require("./random-hex-color"); +exports.randomHexColor = randomHexColor; __exportStar(require("./core"), exports); -__exportStar(require("./random"), exports); -__exportStar(require("./random-date"), exports); -__exportStar(require("./random-dates"), exports); -__exportStar(require("./random-float"), exports); -__exportStar(require("./random-floats"), exports); -__exportStar(require("./random-from-array"), exports); -__exportStar(require("./random-integers"), exports); -__exportStar(require("./random-letter"), exports); -__exportStar(require("./random-letters"), exports); -__exportStar(require("./random-lower"), exports); -__exportStar(require("./random-lowers"), exports); -__exportStar(require("./random-upper"), exports); -__exportStar(require("./random-uppers"), exports); -__exportStar(require("./random-boolean"), exports); -__exportStar(require("./random-phrase"), exports); -__exportStar(require("./random-uuid"), exports); -__exportStar(require("./random-hex-color"), exports); -var random_1 = require("./random"); -__createBinding(exports, random_1, "random", "default"); +exports["default"] = random; diff --git a/cjs/random-boolean.d.ts b/cjs/random-boolean.d.ts index e20f68d..0d30768 100644 --- a/cjs/random-boolean.d.ts +++ b/cjs/random-boolean.d.ts @@ -1,4 +1,8 @@ /** * Generates a random boolean value. */ -export declare function randomBoolean(): boolean; +declare function randomBoolean(): boolean; +declare namespace randomBoolean { + var randomBoolean: typeof import("./random-boolean"); +} +export = randomBoolean; diff --git a/cjs/random-boolean.js b/cjs/random-boolean.js index 2d52e7d..7bf1243 100644 --- a/cjs/random-boolean.js +++ b/cjs/random-boolean.js @@ -1,6 +1,5 @@ "use strict"; -exports.__esModule = true; -exports.randomBoolean = void 0; +var _a; var random_from_array_1 = require("./random-from-array"); /** * Generates a random boolean value. @@ -16,4 +15,6 @@ function randomBoolean() { ]; return (0, random_from_array_1.randomFromArray)(array); } -exports.randomBoolean = randomBoolean; +randomBoolean.randomBoolean = randomBoolean; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomBoolean, 'randomBoolean', { enumerable: false }); +module.exports = randomBoolean; diff --git a/cjs/random-date.d.ts b/cjs/random-date.d.ts index 5bd0b2f..4ab8279 100644 --- a/cjs/random-date.d.ts +++ b/cjs/random-date.d.ts @@ -5,4 +5,8 @@ * @param maxDate The maximum date to generate a random date from. * @returns A `Date` object representing a random date between `minDate` and `maxDate`. */ -export declare function randomDate(minDate: Date, maxDate: Date): Date; +declare function randomDate(minDate: Date, maxDate: Date): Date; +declare namespace randomDate { + var randomDate: typeof import("./random-date"); +} +export = randomDate; diff --git a/cjs/random-date.js b/cjs/random-date.js index d601559..50323db 100644 --- a/cjs/random-date.js +++ b/cjs/random-date.js @@ -1,8 +1,7 @@ "use strict"; -exports.__esModule = true; -exports.randomDate = void 0; -var assertion_lib_1 = require("@santi100/assertion-lib"); -var random_1 = require("./random"); +var _a; +var assertInstanceOf = require("@santi100/assertion-lib/cjs/instance-of"); +var random = require("./random"); /** * Generates a random date between `minDate` and `maxDate`. * @@ -11,9 +10,11 @@ var random_1 = require("./random"); * @returns A `Date` object representing a random date between `minDate` and `maxDate`. */ function randomDate(minDate, maxDate) { - (0, assertion_lib_1.assertInstanceOf)(minDate, Date); - (0, assertion_lib_1.assertInstanceOf)(maxDate, Date); - var randomTs = (0, random_1.random)(maxDate.getTime(), minDate.getTime()); + assertInstanceOf(minDate, Date); + assertInstanceOf(maxDate, Date); + var randomTs = random(maxDate.getTime(), minDate.getTime()); return new Date(randomTs); } -exports.randomDate = randomDate; +randomDate.randomDate = randomDate; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomDate, 'randomDate', { enumerable: false }); +module.exports = randomDate; diff --git a/cjs/random-dates.d.ts b/cjs/random-dates.d.ts index 141294f..515e23f 100644 --- a/cjs/random-dates.d.ts +++ b/cjs/random-dates.d.ts @@ -6,4 +6,8 @@ * @param amount The amount of dates to generate. * @returns An array of `Date` objects representing some random dates between `minDate` and `maxDate`. */ -export declare function randomDates(minDate: Date, maxDate: Date, amount: number): Date[]; +declare function randomDates(minDate: Date, maxDate: Date, amount: number): Date[]; +declare namespace randomDates { + var randomDate: typeof randomDates; +} +export = randomDates; diff --git a/cjs/random-dates.js b/cjs/random-dates.js index 62d02cc..2912880 100644 --- a/cjs/random-dates.js +++ b/cjs/random-dates.js @@ -1,8 +1,7 @@ "use strict"; -exports.__esModule = true; -exports.randomDates = void 0; -var assertion_lib_1 = require("@santi100/assertion-lib"); -var random_integers_1 = require("./random-integers"); +var _a; +var assertInstanceOf = require("@santi100/assertion-lib/cjs/instance-of"); +var randomIntegers = require("./random-integers"); /** * Generates `amount` random dates between `minDate` and `maxDate`. * @@ -12,9 +11,9 @@ var random_integers_1 = require("./random-integers"); * @returns An array of `Date` objects representing some random dates between `minDate` and `maxDate`. */ function randomDates(minDate, maxDate, amount) { - (0, assertion_lib_1.assertInstanceOf)(minDate, Date); - (0, assertion_lib_1.assertInstanceOf)(maxDate, Date); - var randomTs = (0, random_integers_1.randomIntegers)(amount, { + assertInstanceOf(minDate, Date); + assertInstanceOf(maxDate, Date); + var randomTs = randomIntegers(amount, { max: maxDate.getTime(), min: minDate.getTime() }); @@ -25,4 +24,6 @@ function randomDates(minDate, maxDate, amount) { } return dates; } -exports.randomDates = randomDates; +randomDates.randomDate = randomDates; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomDates, 'randomDates', { enumerable: false }); +module.exports = randomDates; diff --git a/cjs/random-float.d.ts b/cjs/random-float.d.ts index 067271e..e3c5d22 100644 --- a/cjs/random-float.d.ts +++ b/cjs/random-float.d.ts @@ -1,7 +1,15 @@ /** - * Returns a pseudo-random floating-point number between min and max. + * Returns a pseudo-random integer up to `max` (exclusive). * @param max The maximum value. - * @param min The minimum value (0 by default). - * @returns A pseudo-random floating-point number between min and max. */ -export declare function randomFloat(max: number, min?: number): number; +declare function randomFloat(max: number): number; +/** + * Returns a pseudo-random integer in the range [`min`, `max`). + * @param max The maximum value. + * @param min The minimum value. + */ +declare function randomFloat(max: number, min: number): number; +declare namespace randomFloat { + var randomFloat: typeof import("./random-float"); +} +export = randomFloat; diff --git a/cjs/random-float.js b/cjs/random-float.js index 776171d..4061cde 100644 --- a/cjs/random-float.js +++ b/cjs/random-float.js @@ -1,7 +1,7 @@ "use strict"; -exports.__esModule = true; -exports.randomFloat = void 0; -var assertion_lib_1 = require("@santi100/assertion-lib"); +var _a; +var assertTypeOf = require("@santi100/assertion-lib/cjs/type-of"); +var assertMax = require("@santi100/assertion-lib/cjs/max"); /** * Returns a pseudo-random floating-point number between min and max. * @param max The maximum value. @@ -10,11 +10,13 @@ var assertion_lib_1 = require("@santi100/assertion-lib"); */ function randomFloat(max, min) { if (min === void 0) { min = 0.0; } - (0, assertion_lib_1.assertTypeOf)(max, 'number', 'max'); - (0, assertion_lib_1.assertTypeOf)(min, 'number', 'min'); - (0, assertion_lib_1.assertMax)(min, 'min', max - 1); + assertTypeOf(max, 'number', 'max'); + assertTypeOf(min, 'number', 'min'); + assertMax(min, 'min', max - 1); if (!min) return Math.random() * max; return Math.random() * (max - min + 1.0) + min; } -exports.randomFloat = randomFloat; +randomFloat.randomFloat = randomFloat; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomFloat, 'randomFloat', { enumerable: false }); +module.exports = randomFloat; diff --git a/cjs/random-floats.d.ts b/cjs/random-floats.d.ts index c1c67ae..643fdc2 100644 --- a/cjs/random-floats.d.ts +++ b/cjs/random-floats.d.ts @@ -6,4 +6,8 @@ import { RandomArraysOptions } from './core'; * @param opts See {@link RandomArraysOptions}. * @returns An array of random floating-point numbers. */ -export declare function randomFloats(amount?: number, opts?: RandomArraysOptions): number[]; +declare function randomFloats(amount?: number, opts?: RandomArraysOptions): number[]; +declare namespace randomFloats { + var randomFloats: typeof import("./random-floats"); +} +export = randomFloats; diff --git a/cjs/random-floats.js b/cjs/random-floats.js index 0c1b4f5..3e74682 100644 --- a/cjs/random-floats.js +++ b/cjs/random-floats.js @@ -1,20 +1,21 @@ "use strict"; -exports.__esModule = true; -exports.randomFloats = void 0; -var assertion_lib_1 = require("@santi100/assertion-lib"); +var _a; var core_1 = require("./core"); -var random_float_1 = require("./random-float"); +var randomFloat = require("./random-float"); +var assertTypeOf = require("@santi100/assertion-lib/cjs/type-of"); +var assertInteger = require("@santi100/assertion-lib/cjs/integer"); +var assertMin = require("@santi100/assertion-lib/cjs/min"); function __isNullOrUndefined(a) { return a === null || a === undefined; } function __checkRandomArraysErrors(amount, opts) { - (0, assertion_lib_1.assertTypeOf)(amount, 'number', 'amount'); + assertTypeOf(amount, 'number', 'amount'); if (!__isNullOrUndefined(opts.max)) - (0, assertion_lib_1.assertTypeOf)(opts.max, 'number', 'opts.max'); + assertTypeOf(opts.max, 'number', 'opts.max'); if (!__isNullOrUndefined(opts.min)) - (0, assertion_lib_1.assertTypeOf)(opts.min, 'number', 'opts.min'); - (0, assertion_lib_1.assertMin)(amount, 'amount', 0); - (0, assertion_lib_1.assertInteger)(amount, 'amount'); + assertTypeOf(opts.min, 'number', 'opts.min'); + assertMin(amount, 'amount', 0); + assertInteger(amount, 'amount'); } /** * Returns an array with `amount` random floating-point numbers. @@ -30,8 +31,10 @@ function randomFloats(amount, opts) { var _a = opts.max, max = _a === void 0 ? core_1.DEFAULT_RANDOM_NUMBERS_MAX : _a, _b = opts.min, min = _b === void 0 ? 0 : _b; var internal = []; for (var i = 0; i < amount; i++) { - internal[internal.length] = (0, random_float_1.randomFloat)(max, min); + internal[internal.length] = randomFloat(max, min); } return internal; } -exports.randomFloats = randomFloats; +randomFloats.randomFloats = randomFloats; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomFloats, 'randomFloats', { enumerable: false }); +module.exports = randomFloats; diff --git a/cjs/random-from-array.d.ts b/cjs/random-from-array.d.ts index 09dfb37..b769d30 100644 --- a/cjs/random-from-array.d.ts +++ b/cjs/random-from-array.d.ts @@ -4,7 +4,7 @@ import { AtLeastOneElement } from './core'; * @param array The array from which you want to pick a random item. * @returns A random item from the given array. */ -export declare function randomFromArray(array: AtLeastOneElement): T; +declare function randomFromArray(array: AtLeastOneElement): T; /** * * Returns `amount` random items from `array`. @@ -13,4 +13,8 @@ export declare function randomFromArray(array: AtLeastOneElement * @returns An array of random items from the given array. * @since 1.1.2 */ -export declare function randomFromArray(array: AtLeastOneElement, amount: number): T[]; +declare function randomFromArray(array: AtLeastOneElement, amount: number): T[]; +declare namespace randomFromArray { + var randomFromArray: typeof import("./random-from-array"); +} +export = randomFromArray; diff --git a/cjs/random-from-array.js b/cjs/random-from-array.js index 4abeeb6..e6ffb31 100644 --- a/cjs/random-from-array.js +++ b/cjs/random-from-array.js @@ -1,8 +1,10 @@ "use strict"; -exports.__esModule = true; -exports.randomFromArray = void 0; -var assertion_lib_1 = require("@santi100/assertion-lib"); -var random_1 = require("./random"); +var _a; +var random = require("./random"); +var assertArray = require("@santi100/assertion-lib/cjs/array"); +var assertTypeOf = require("@santi100/assertion-lib/cjs/type-of"); +var assertInteger = require("@santi100/assertion-lib/cjs/integer"); +var assertMin = require("@santi100/assertion-lib/cjs/min"); /** * Returns a/some random item(s) from `array`. * @param array The array from which you want to pick a/some random item(s). @@ -11,18 +13,20 @@ var random_1 = require("./random"); */ function randomFromArray(array, amount) { if (amount === void 0) { amount = 1; } - (0, assertion_lib_1.assertArray)(array, 'array'); - (0, assertion_lib_1.assertMin)(array.length, 'array.length', 1); - (0, assertion_lib_1.assertTypeOf)(amount, 'number', 'amount'); - (0, assertion_lib_1.assertMin)(amount, 'amount', 1); - (0, assertion_lib_1.assertInteger)(amount, 'amount'); + assertArray(array, 'array'); + assertMin(array.length, 'array.length', 1); + assertTypeOf(amount, 'number', 'amount'); + assertMin(amount, 'amount', 1); + assertInteger(amount, 'amount'); if (amount > 1) { var items = []; for (var i = 0; i < amount; i++) { - items.push(array[(0, random_1.random)(array.length)]); + items.push(array[random(array.length)]); } return items; } - return array[(0, random_1.random)(array.length)]; + return array[random(array.length)]; } -exports.randomFromArray = randomFromArray; +randomFromArray.randomFromArray = randomFromArray; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomFromArray, 'randomFromArray', { enumerable: false }); +module.exports = randomFromArray; diff --git a/cjs/random-hex-color.d.ts b/cjs/random-hex-color.d.ts index 2d1fc4f..a9511fa 100644 --- a/cjs/random-hex-color.d.ts +++ b/cjs/random-hex-color.d.ts @@ -1,9 +1,13 @@ /** * Generates a random hex colorcode. */ -export declare function randomHexColor(): string; +declare function randomHexColor(): string; /** * Generates a random hex colorcode. * @param shorthand Whether or not use a 3-character code instead of a 6-character one. */ -export declare function randomHexColor(shorthand: boolean): string; +declare function randomHexColor(shorthand: boolean): string; +declare namespace randomHexColor { + var randomHexColor: typeof import("./random-hex-color"); +} +export = randomHexColor; diff --git a/cjs/random-hex-color.js b/cjs/random-hex-color.js index ad3bb63..0255dd6 100644 --- a/cjs/random-hex-color.js +++ b/cjs/random-hex-color.js @@ -8,15 +8,16 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { } return to.concat(ar || Array.prototype.slice.call(from)); }; -exports.__esModule = true; -exports.randomHexColor = void 0; -var assertion_lib_1 = require("@santi100/assertion-lib"); +var _a; +var assertTypeOf = require("@santi100/assertion-lib/cjs/type-of"); var core_1 = require("./core"); -var random_from_array_1 = require("./random-from-array"); +var randomFromArray = require("./random-from-array"); function randomHexColor(shorthand) { if (shorthand !== undefined) - (0, assertion_lib_1.assertTypeOf)(shorthand, 'boolean', 'shorthand'); + assertTypeOf(shorthand, 'boolean', 'shorthand'); var chars = __spreadArray(__spreadArray([], '1234567890'.split(''), true), core_1.LOWERS.slice(0, 5), true); - return "#".concat((0, random_from_array_1.randomFromArray)(chars, shorthand ? 3 : 6).join('')); + return "#".concat(randomFromArray(chars, shorthand ? 3 : 6).join('')); } -exports.randomHexColor = randomHexColor; +randomHexColor.randomHexColor = randomHexColor; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomHexColor, 'randomHexColor', { enumerable: false }); +module.exports = randomHexColor; diff --git a/cjs/random-integers.d.ts b/cjs/random-integers.d.ts index 4f8a185..6f76eb5 100644 --- a/cjs/random-integers.d.ts +++ b/cjs/random-integers.d.ts @@ -6,4 +6,8 @@ import { RandomArraysOptions } from './core'; * @param opts See {@link RandomArraysOptions}. * @returns An array of random integers. */ -export declare function randomIntegers(amount?: number, opts?: RandomArraysOptions): number[]; +declare function randomIntegers(amount?: number, opts?: RandomArraysOptions): number[]; +declare namespace randomIntegers { + var randomIntegers: typeof import("./random-integers"); +} +export = randomIntegers; diff --git a/cjs/random-integers.js b/cjs/random-integers.js index af029cd..1d807a4 100644 --- a/cjs/random-integers.js +++ b/cjs/random-integers.js @@ -1,21 +1,10 @@ "use strict"; -exports.__esModule = true; -exports.randomIntegers = void 0; -var assertion_lib_1 = require("@santi100/assertion-lib"); +var _a; var core_1 = require("./core"); -var random_1 = require("./random"); -function __isNullOrUndefined(a) { - return a === null || a === undefined; -} -function __checkRandomArraysErrors(amount, opts) { - (0, assertion_lib_1.assertTypeOf)(amount, 'number', 'amount'); - if (!__isNullOrUndefined(opts.max)) - (0, assertion_lib_1.assertTypeOf)(opts.max, 'number', 'opts.max'); - if (!__isNullOrUndefined(opts.min)) - (0, assertion_lib_1.assertTypeOf)(opts.min, 'number', 'opts.min'); - (0, assertion_lib_1.assertMin)(amount, 'amount', 0); - (0, assertion_lib_1.assertInteger)(amount, 'amount'); -} +var random = require("./random"); +var assertTypeOf = require("@santi100/assertion-lib/cjs/type-of"); +var assertMin = require("@santi100/assertion-lib/cjs/min"); +var assertInteger = require("@santi100/assertion-lib/cjs/integer"); /** * Returns an array with `amount` random integers. * @@ -25,13 +14,20 @@ function __checkRandomArraysErrors(amount, opts) { */ function randomIntegers(amount, opts) { if (amount === void 0) { amount = 4; } - if (opts === void 0) { opts = {}; } - __checkRandomArraysErrors(amount, opts); - var _a = opts.max, max = _a === void 0 ? core_1.DEFAULT_RANDOM_NUMBERS_MAX : _a, _b = opts.min, min = _b === void 0 ? 0 : _b; + if (opts === void 0) { opts = { min: 0, max: core_1.DEFAULT_RANDOM_NUMBERS_MAX }; } + assertTypeOf(amount, 'number', 'amount'); + assertTypeOf(opts.max, 'number', 'opts.max'); + assertTypeOf(opts.min, 'number', 'opts.min'); + assertMin(amount, 'amount', 0); + assertInteger(amount, 'amount'); + var max = opts.max, min = opts.min; var internal = []; for (var i = 0; i < amount; i++) { - internal[internal.length] = (0, random_1.random)(max, min); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + internal[internal.length] = random(max, min); } return internal; } -exports.randomIntegers = randomIntegers; +randomIntegers.randomIntegers = randomIntegers; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomIntegers, 'randomIntegers', { enumerable: false }); +module.exports = randomIntegers; diff --git a/cjs/random-letter.d.ts b/cjs/random-letter.d.ts index 489d67e..863a798 100644 --- a/cjs/random-letter.d.ts +++ b/cjs/random-letter.d.ts @@ -2,4 +2,8 @@ * Returns a random letter. * @returns A random letter. */ -export declare function randomLetter(): string; +declare function randomLetter(): string; +declare namespace randomLetter { + var randomLetter: typeof import("./random-letter"); +} +export = randomLetter; diff --git a/cjs/random-letter.js b/cjs/random-letter.js index 403c629..9eb45b1 100644 --- a/cjs/random-letter.js +++ b/cjs/random-letter.js @@ -1,13 +1,14 @@ "use strict"; -exports.__esModule = true; -exports.randomLetter = void 0; +var _a; var core_1 = require("./core"); -var random_from_array_1 = require("./random-from-array"); +var randomFromArray = require("./random-from-array"); /** * Returns a random letter. * @returns A random letter. */ function randomLetter() { - return (0, random_from_array_1.randomFromArray)(core_1.LETTERS); + return randomFromArray(core_1.LETTERS); } -exports.randomLetter = randomLetter; +randomLetter.randomLetter = randomLetter; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomLetter, 'randomLetter', { enumerable: false }); +module.exports = randomLetter; diff --git a/cjs/random-letters.d.ts b/cjs/random-letters.d.ts index 584e6ed..2a24337 100644 --- a/cjs/random-letters.d.ts +++ b/cjs/random-letters.d.ts @@ -3,4 +3,8 @@ * @param amount How many random letters to return. * @returns An array of random letters. */ -export declare function randomLetters(amount: number): string[]; +declare function randomLetters(amount: number): string[]; +declare namespace randomLetters { + var randomLetters: typeof import("./random-letters"); +} +export = randomLetters; diff --git a/cjs/random-letters.js b/cjs/random-letters.js index 5b4e85d..a00bd40 100644 --- a/cjs/random-letters.js +++ b/cjs/random-letters.js @@ -1,8 +1,7 @@ "use strict"; -exports.__esModule = true; -exports.randomLetters = void 0; +var _a; var core_1 = require("./core"); -var random_from_array_1 = require("./random-from-array"); +var randomFromArray = require("./random-from-array"); /** * Returns `amount` random letters. * @param amount How many random letters to return. @@ -11,6 +10,8 @@ var random_from_array_1 = require("./random-from-array"); function randomLetters(amount) { if (amount === 0) return []; - return (0, random_from_array_1.randomFromArray)(core_1.LETTERS, amount); + return randomFromArray(core_1.LETTERS, amount); } -exports.randomLetters = randomLetters; +randomLetters.randomLetters = randomLetters; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomLetters, 'randomLetters', { enumerable: false }); +module.exports = randomLetters; diff --git a/cjs/random-lower.d.ts b/cjs/random-lower.d.ts index b9a7d49..46aadde 100644 --- a/cjs/random-lower.d.ts +++ b/cjs/random-lower.d.ts @@ -2,4 +2,8 @@ * Returns a random lowercase letter. * @returns A random lowercase letter. */ -export declare function randomLower(): string; +declare function randomLower(): string; +declare namespace randomLower { + var randomLower: typeof import("./random-lower"); +} +export = randomLower; diff --git a/cjs/random-lower.js b/cjs/random-lower.js index b9126e8..6746c05 100644 --- a/cjs/random-lower.js +++ b/cjs/random-lower.js @@ -1,13 +1,14 @@ "use strict"; -exports.__esModule = true; -exports.randomLower = void 0; +var _a; var core_1 = require("./core"); -var random_from_array_1 = require("./random-from-array"); +var randomFromArray = require("./random-from-array"); /** * Returns a random lowercase letter. * @returns A random lowercase letter. */ function randomLower() { - return (0, random_from_array_1.randomFromArray)(core_1.LOWERS); + return randomFromArray(core_1.LOWERS); } -exports.randomLower = randomLower; +randomLower.randomLower = randomLower; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomLower, 'randomLower', { enumerable: false }); +module.exports = randomLower; diff --git a/cjs/random-lowers.d.ts b/cjs/random-lowers.d.ts index 45412ce..7b520f0 100644 --- a/cjs/random-lowers.d.ts +++ b/cjs/random-lowers.d.ts @@ -3,4 +3,8 @@ * @param amount How many random lowercase letters to return. * @returns An array of random lowercase letters. */ -export declare function randomLowers(amount: number): string[]; +declare function randomLowers(amount: number): string[]; +declare namespace randomLowers { + var randomLowers: typeof import("./random-lowers"); +} +export = randomLowers; diff --git a/cjs/random-lowers.js b/cjs/random-lowers.js index 3e3db16..52ab72b 100644 --- a/cjs/random-lowers.js +++ b/cjs/random-lowers.js @@ -1,8 +1,7 @@ "use strict"; -exports.__esModule = true; -exports.randomLowers = void 0; +var _a; var core_1 = require("./core"); -var random_from_array_1 = require("./random-from-array"); +var randomFromArray = require("./random-from-array"); /** * Returns `amount` random lowercase letters. * @param amount How many random lowercase letters to return. @@ -11,6 +10,8 @@ var random_from_array_1 = require("./random-from-array"); function randomLowers(amount) { if (amount === 0) return []; - return (0, random_from_array_1.randomFromArray)(core_1.LOWERS, amount); + return randomFromArray(core_1.LOWERS, amount); } -exports.randomLowers = randomLowers; +randomLowers.randomLowers = randomLowers; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomLowers, 'randomLowers', { enumerable: false }); +module.exports = randomLowers; diff --git a/cjs/random-phone.d.ts b/cjs/random-phone.d.ts new file mode 100644 index 0000000..52ad97c --- /dev/null +++ b/cjs/random-phone.d.ts @@ -0,0 +1,17 @@ +/** + * Generates a 10-digit random phone number of the form `+xx xxx xxxxxxx`, where `x` is a digit. + * + * @param countryCode The code of the country to which the number would belong to. + * Must be between 1 and 999. + */ +declare function randomPhone(countryCode: number): string; +/** + * Generates a random phone number of the form `+xx xxx x...`, where `x` is a digit. + * + * @param countryCode The code of the country to which the number would belong to. + * Must be between 1 and 999. + * @param digitCount The amount of digits the phone number must have beside the country + * code. All digits beyond that count will be added to the `x...` block. + */ +declare function randomPhone(countryCode: number, digitCount: number): string; +export = randomPhone; diff --git a/cjs/random-phone.js b/cjs/random-phone.js new file mode 100644 index 0000000..1876734 --- /dev/null +++ b/cjs/random-phone.js @@ -0,0 +1,23 @@ +"use strict"; +var random_integers_1 = require("./random-integers"); +var assertInteger = require("@santi100/assertion-lib/cjs/integer"); +var assertPositive = require("@santi100/assertion-lib/cjs/positive"); +var assertRange = require("@santi100/assertion-lib/cjs/range"); +var assertTypeOf = require("@santi100/assertion-lib/cjs/type-of"); +/** Implementation */ +function randomPhone(countryCode, digitCount) { + if (digitCount === void 0) { digitCount = 10; } + assertTypeOf(countryCode, 'number', 'countryCode'); + assertInteger(countryCode, 'countryCode'); + assertPositive(countryCode, 'countryCode'); + assertRange(countryCode, 'countryCode', 1, 999); + assertTypeOf(digitCount, 'number', 'digitCount'); + assertInteger(digitCount, 'digitCount'); + assertPositive(digitCount, 'digitCount'); + var digits = (0, random_integers_1.randomIntegers)(digitCount, { max: 10, min: 0 }); + var phoneNumber = "+".concat(countryCode, " ").concat(digits + .join('') + .substring(0, 3), " ").concat(digits.join('').substring(3)); + return phoneNumber; +} +module.exports = randomPhone; diff --git a/cjs/random-phrase.d.ts b/cjs/random-phrase.d.ts index d63f919..f284c44 100644 --- a/cjs/random-phrase.d.ts +++ b/cjs/random-phrase.d.ts @@ -3,7 +3,7 @@ * * **Keep in mind these phrases have NO GRAMATICAL sense and are generated from a list of random words.** */ -export declare function randomPhrase(): string; +declare function randomPhrase(): string; /** * Generate a random phrase with `wordCount` words. * @@ -11,4 +11,8 @@ export declare function randomPhrase(): string; * * @param wordCount The amount of words to use in the phrase. */ -export declare function randomPhrase(wordCount: number): string; +declare function randomPhrase(wordCount: number): string; +declare namespace randomPhrase { + var randomPhrase: typeof import("./random-phrase"); +} +export = randomPhrase; diff --git a/cjs/random-phrase.js b/cjs/random-phrase.js index ea09927..5f74174 100644 --- a/cjs/random-phrase.js +++ b/cjs/random-phrase.js @@ -1,13 +1,14 @@ "use strict"; -exports.__esModule = true; -exports.randomPhrase = void 0; -var assertion_lib_1 = require("@santi100/assertion-lib"); +var _a; +var type_of_1 = require("@santi100/assertion-lib/cjs/type-of"); var core_1 = require("./core"); var random_from_array_1 = require("./random-from-array"); function randomPhrase(wordCount) { if (wordCount === void 0) { wordCount = 6; } - (0, assertion_lib_1.assertTypeOf)(wordCount, 'number', 'wordCount'); + (0, type_of_1.assertTypeOf)(wordCount, 'number', 'wordCount'); var words = (0, random_from_array_1.randomFromArray)(core_1.WORDLIST, wordCount); return words.join(' '); } -exports.randomPhrase = randomPhrase; +randomPhrase.randomPhrase = randomPhrase; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomPhrase, 'randomPhrase', { enumerable: false }); +module.exports = randomPhrase; diff --git a/cjs/random-upper.d.ts b/cjs/random-upper.d.ts index f811982..64c9fdd 100644 --- a/cjs/random-upper.d.ts +++ b/cjs/random-upper.d.ts @@ -2,4 +2,8 @@ * Returns a random uppercase letter. * @returns A random uppercase letter. */ -export declare function randomUpper(): string; +declare function randomUpper(): string; +declare namespace randomUpper { + var randomUpper: typeof import("./random-upper"); +} +export = randomUpper; diff --git a/cjs/random-upper.js b/cjs/random-upper.js index ef0ba70..de84dd7 100644 --- a/cjs/random-upper.js +++ b/cjs/random-upper.js @@ -1,6 +1,5 @@ "use strict"; -exports.__esModule = true; -exports.randomUpper = void 0; +var _a; var core_1 = require("./core"); var random_from_array_1 = require("./random-from-array"); /** @@ -10,4 +9,6 @@ var random_from_array_1 = require("./random-from-array"); function randomUpper() { return (0, random_from_array_1.randomFromArray)(core_1.UPPERS); } -exports.randomUpper = randomUpper; +randomUpper.randomUpper = randomUpper; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomUpper, 'randomUpper', { enumerable: false }); +module.exports = randomUpper; diff --git a/cjs/random-uppers.d.ts b/cjs/random-uppers.d.ts index da1320e..b18c08a 100644 --- a/cjs/random-uppers.d.ts +++ b/cjs/random-uppers.d.ts @@ -3,4 +3,8 @@ * @param amount How many random uppercase letters to return. * @returns An array of random uppercase letters. */ -export declare function randomUppers(amount: number): string[]; +declare function randomUppers(amount: number): string[]; +declare namespace randomUppers { + var randomUppers: typeof import("./random-uppers"); +} +export = randomUppers; diff --git a/cjs/random-uppers.js b/cjs/random-uppers.js index 4c0c7cf..abcd107 100644 --- a/cjs/random-uppers.js +++ b/cjs/random-uppers.js @@ -1,6 +1,5 @@ "use strict"; -exports.__esModule = true; -exports.randomUppers = void 0; +var _a; var core_1 = require("./core"); var random_from_array_1 = require("./random-from-array"); /** @@ -13,4 +12,6 @@ function randomUppers(amount) { return []; return (0, random_from_array_1.randomFromArray)(core_1.UPPERS, amount); } -exports.randomUppers = randomUppers; +randomUppers.randomUppers = randomUppers; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomUppers, 'randomUppers', { enumerable: false }); +module.exports = randomUppers; diff --git a/cjs/random-uuid.d.ts b/cjs/random-uuid.d.ts index 3e82b27..aa56a48 100644 --- a/cjs/random-uuid.d.ts +++ b/cjs/random-uuid.d.ts @@ -1,4 +1,8 @@ /** * Generates a pseudo-random UUID v4. */ -export declare function randomUUID(): string; +declare function randomUUID(): string; +declare namespace randomUUID { + var randomUUID: typeof import("./random-uuid"); +} +export = randomUUID; diff --git a/cjs/random-uuid.js b/cjs/random-uuid.js index 98ad5a3..67dac2b 100644 --- a/cjs/random-uuid.js +++ b/cjs/random-uuid.js @@ -1,6 +1,5 @@ "use strict"; -exports.__esModule = true; -exports.randomUUID = void 0; +var _a; var random_1 = require("./random"); function __map(array, cb) { var m = []; @@ -29,7 +28,7 @@ function randomUUID() { sectionString += validChars.charAt(randomIndex); } else { - var randomIndex = Math.floor(Math.random() * characters.length); + var randomIndex = (0, random_1.random)(characters.length); sectionString += characters.charAt(randomIndex); } } @@ -37,4 +36,6 @@ function randomUUID() { }); return uuidSections.join('-'); } -exports.randomUUID = randomUUID; +randomUUID.randomUUID = randomUUID; +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomUUID, 'randomUUID', { enumerable: false }); +module.exports = randomUUID; diff --git a/cjs/random.d.ts b/cjs/random.d.ts index be9e37e..817426e 100644 --- a/cjs/random.d.ts +++ b/cjs/random.d.ts @@ -1,7 +1,15 @@ /** - * Returns a pseudo-random integer between min and max. + * Returns a pseudo-random integer up to `max` (exclusive). * @param max The maximum value. - * @param min The minimum value (0 by default). - * @returns A pseudo-random integer between min and max. */ -export declare function random(max: number, min?: number): number; +declare function random(max: number): number; +/** + * Returns a pseudo-random integer in the range [`min`, `max`). + * @param max The maximum value. + * @param min The minimum value. + */ +declare function random(max: number, min: number): number; +declare namespace random { + var random: typeof import("./random"); +} +export = random; diff --git a/cjs/random.js b/cjs/random.js index 833fd39..ff7ca2d 100644 --- a/cjs/random.js +++ b/cjs/random.js @@ -1,13 +1,6 @@ "use strict"; -exports.__esModule = true; -exports.random = void 0; +var _a; var assertion_lib_1 = require("@santi100/assertion-lib"); -/** - * Returns a pseudo-random integer between min and max. - * @param max The maximum value. - * @param min The minimum value (0 by default). - * @returns A pseudo-random integer between min and max. - */ function random(max, min) { if (min === void 0) { min = 0; } (0, assertion_lib_1.assertTypeOf)(max, 'number', 'max'); @@ -24,4 +17,6 @@ function random(max, min) { return Math.floor(Math.random() * max); return Math.floor(Math.random() * (max - min + 1)) + min; } -exports.random = random; +random.random = random; // for backward compatibility and destructuring support +(_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, random, 'random', { enumerable: false }); +module.exports = random; diff --git a/index.mjs b/index.mjs index f3f7e6c..efd8c3d 100644 --- a/index.mjs +++ b/index.mjs @@ -22,4 +22,4 @@ export const { randomPhrase, randomUUID, } = cjsModule; -export default cjsModule['default']; +export default cjsModule; diff --git a/package.json b/package.json index 5b1781d..573508f 100644 --- a/package.json +++ b/package.json @@ -1,50 +1,52 @@ { - "name": "@santi100/random-lib", - "version": "1.1.6", - "main": "./cjs/index.js", - "typings": "./cjs/index.d.ts", - "module": "./index.mjs", - "umd:main": "./umd/index.js", - "license": "MIT", - "readme": "README.md", - "description": "Santi's Random Library: Randomize pretty much everything!", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/santi100a" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/santi100a/random-lib" - }, - "scripts": { - "test": "jest --verbose", - "build": "tsc", - "build:umd": "tsc --module umd --outDir umd --moduleResolution node --declaration false", - "dev": "tsc -w", - "lint": "eslint src/*.ts", - "prettify": "prettier --write .", - "esm-wrapper": "node scripts/esm-wrapper.js", - "fix-lint": "eslint src/*.ts --fix", - "test:watch": "jest --verbose --watchAll" - }, - "keywords": [ - "random", - "lightweight", - "es3" - ], - "dependencies": { - "@santi100/assertion-lib": "^1.0.8" - }, - "devDependencies": { - "@types/jest": "^29.5.0", - "@typescript-eslint/eslint-plugin": "^5.58.0", - "@typescript-eslint/parser": "^5.58.0", - "eslint": "^8.38.0", - "eslint-plugin-jest": "^27.2.1", - "jest": "^29.5.0", - "prettier": "^2.8.7", - "typescript": "^4.9.5" - } + "name": "@santi100/random-lib", + "version": "1.1.7", + "main": "./cjs/index.js", + "typings": "./cjs/index.d.ts", + "module": "./index.mjs", + "umd:main": "./umd/index.js", + "license": "MIT", + "readme": "README.md", + "description": "Santi's Random Library: Randomize pretty much everything!", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/santi100a" + }, + "repository": { + "type": "git", + "url": "https://github.com/santi100a/random-lib" + }, + "scripts": { + "test": "jest --verbose", + "build": "tsc", + "build:umd": "tsc --module umd --outDir umd --moduleResolution node --declaration false", + "dev": "tsc -w", + "lint": "eslint src/*.ts", + "prettify": "prettier --write .", + "esm-wrapper": "node scripts/esm-wrapper.js", + "fix-lint": "eslint src/*.ts --fix", + "test:watch": "jest --verbose --watchAll", + "check-links": "remark --frail ." + }, + "keywords": [ + "random", + "lightweight", + "es3" + ], + "dependencies": { + "@santi100/assertion-lib": "^2.0.1" + }, + "devDependencies": { + "@types/jest": "^29.5.0", + "@typescript-eslint/eslint-plugin": "^5.58.0", + "@typescript-eslint/parser": "^5.58.0", + "eslint": "^8.38.0", + "eslint-plugin-jest": "^27.2.1", + "jest": "^29.5.0", + "prettier": "^2.8.7", + "remark-cli": "^11.0.0", + "remark-gfm": "^3.0.1", + "remark-validate-links": "^12.1.1", + "typescript": "^4.9.5" + } } diff --git a/scripts/esm-wrapper.js b/scripts/esm-wrapper.js index 7a16214..17fed80 100644 --- a/scripts/esm-wrapper.js +++ b/scripts/esm-wrapper.js @@ -1,14 +1,20 @@ +console.clear(); +// eslint-disable-next-line @typescript-eslint/no-var-requires const { writeFileSync } = require('node:fs'); +console.log('🚚 Importing module...'); +// eslint-disable-next-line @typescript-eslint/no-var-requires const cjsModule = require('../cjs/index.js'); const cjsExports = Object.keys(cjsModule); const esmModuleContent = `import cjsModule from './cjs/index.js'; -export const { ${cjsExports - .filter((exp) => exp !== 'default' && exp !== '__esModule') - .join(', ')} } = cjsModule; -${cjsExports.includes('default') ? "export default cjsModule['default'];" : ''} +/*eslint no-empty-pattern: "warn"*/ +export const { ${cjsExports.filter(i => i !== 'default').join(', ')} } = cjsModule; +${ cjsExports.includes('default') ? "export default cjsModule['default'];" : '' } `; - +console.log('📦 Writing wrapper...') writeFileSync('./index.mjs', esmModuleContent); -require('node:child_process').execSync('npx prettier ./index.mjs'); +console.log('✨ Prettifying...'); +// eslint-disable-next-line @typescript-eslint/no-var-requires +require('node:child_process').execSync('npx prettier --write ./index.mjs'); +console.log('✅ Finished!'); \ No newline at end of file diff --git a/scripts/validate-diff.sh b/scripts/validate-diff.sh new file mode 100644 index 0000000..7e1c58c --- /dev/null +++ b/scripts/validate-diff.sh @@ -0,0 +1,12 @@ +#! /usr/bin/env bash + +diff -q $1 $2 +FILE_CHANGED=$? + +if [ $FILE_CHANGED -ne 0 ]; then + echo "ERROR: $1 is not equal to $2." > /dev/stderr + exit 1 +else + echo "$1 is identical to $2." + exit 0 +fi \ No newline at end of file diff --git a/scripts/validate-package-json.js b/scripts/validate-package-json.js new file mode 100644 index 0000000..21e3bdc --- /dev/null +++ b/scripts/validate-package-json.js @@ -0,0 +1,77 @@ +console.clear(); + +console.log('🚚 Importing package.json...'); +// eslint-disable-next-line @typescript-eslint/no-var-requires +const json = require('../package.json'); + +switch (typeof json.author) { + case 'string': + if (!json.author.trim()) throw new Error('❌ "author" invalid or missing.'); + break; + case 'object': + if (json.author === null) throw new Error('❌ "author" invalid or missing.'); + if (typeof json.author.name !== 'string' || !json.author.name.trim()) + throw new Error('❌ "author.name" invalid or missing.'); + if ( + typeof json.author.email !== 'undefined' && + (typeof json.author.email !== 'string' || + !json.author.email.trim() || + /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(json.author.email)) + ) + throw new Error('❌ "author.email" invalid or missing.'); + if (typeof json.author.url !== 'undefined') + try { + new URL(json.author.url) + } catch (e) { + throw new Error('❌ "author.url" invalid or missing.') + } + break; + default: + throw new Error('❌ "author" invalid or missing.'); +} + +if (typeof json.description !== 'string' || !json.description.trim()) + throw new Error('❌ "description" invalid or missing.'); +else console.log('✅ Description: ok'); +if ( + !json.keywords || + !(json.keywords instanceof Array) || + json.keywords.length < 1 +) + throw new Error('❌ "keywords" invalid or missing.'); +else console.log('✅ Keywords: ok'); + +if ( + !json.repository || + json.repository === null || + typeof json.repository !== 'object' +) + throw new Error('❌ "repository" invalid or missing.'); +else console.log('\t ✅ Repository is object: ok'); + +if (json.repository.type !== 'git') +throw new Error('❌ "repository.type" isn\'t Git.'); +else console.log('\t ✅ Repo type: ok'); + +try { + new URL(json.repository.url); +} catch (e) { + throw new Error( + ''.concat(e.message).includes('Invalid URL') || + !''.concat(e.message).startsWith('https://') + ? '❌ "repository.url" is invalid.' + : String(e) + ); +} +console.log('\t ✅ Repository URL is valid: ok'); +console.log('✅ Repository: ok'); +if ( + (typeof json.scripts === 'object' && json.scripts === null) || + typeof json.scripts !== 'object' +) + throw new Error('❌ "scripts" invalid or missing.'); +if (json.scripts.prepublish) + throw new Error( + "❌ You're not allowed to have pre-publish scripts, as they could steal the " + + 'NPM token used for publishing.' + ); diff --git a/src/core.ts b/src/core.ts index 4876467..f33902d 100644 --- a/src/core.ts +++ b/src/core.ts @@ -80,8 +80,8 @@ export const WORDLIST = [ * @since 1.1.1 */ export interface RandomArraysOptions { - max?: number; - min?: number; + readonly max?: number; + readonly min?: number; } /** * An array containing all 26 English lowercase letters. diff --git a/src/index.ts b/src/index.ts index a03e39c..1880651 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,20 +1,42 @@ +import randomPhone = require('./random-phone'); +import random = require('./random'); +import randomDate = require('./random-date'); +import randomDates = require('./random-dates'); +import randomFloat = require('./random-float'); +import randomFloats = require('./random-floats'); +import randomFromArray = require('./random-from-array'); +import randomIntegers = require('./random-integers'); +import randomLetter = require('./random-letter'); +import randomLetters = require('./random-letters'); +import randomLower = require('./random-lower'); +import randomLowers = require('./random-lowers'); +import randomUpper = require('./random-upper'); +import randomUppers = require('./random-uppers'); +import randomBoolean = require('./random-boolean'); +import randomUUID = require('./random-uuid'); +import randomPhrase = require('./random-phrase'); +import randomHexColor = require('./random-hex-color'); + export * from './core'; -export * from './random'; -export * from './random-date'; -export * from './random-dates'; -export * from './random-float'; -export * from './random-floats'; -export * from './random-from-array'; -export * from './random-integers'; -export * from './random-letter'; -export * from './random-letters'; -export * from './random-lower'; -export * from './random-lowers'; -export * from './random-upper'; -export * from './random-uppers'; -export * from './random-boolean'; -export * from './random-phrase'; -export * from './random-uuid'; -export * from './random-hex-color'; +export { + randomPhone, + random, + randomBoolean, + randomDate, + randomDates, + randomFloat, + randomFloats, + randomFromArray, + randomIntegers, + randomLetter, + randomLetters, + randomLower, + randomLowers, + randomUUID, + randomUpper, + randomUppers, + randomPhrase, + randomHexColor, +}; -export { random as default } from './random'; +export default random; diff --git a/src/random-boolean.ts b/src/random-boolean.ts index cceacb7..9062f85 100644 --- a/src/random-boolean.ts +++ b/src/random-boolean.ts @@ -3,7 +3,7 @@ import { randomFromArray } from './random-from-array'; /** * Generates a random boolean value. */ -export function randomBoolean(): boolean { +function randomBoolean(): boolean { const array: AtLeastOneElement = [ true, true, @@ -14,3 +14,7 @@ export function randomBoolean(): boolean { ]; return randomFromArray(array); } +randomBoolean.randomBoolean = randomBoolean; +Object?.defineProperty?.(randomBoolean, 'randomBoolean', { enumerable: false }); + +export = randomBoolean; \ No newline at end of file diff --git a/src/random-date.ts b/src/random-date.ts index 87926d2..1400844 100644 --- a/src/random-date.ts +++ b/src/random-date.ts @@ -1,5 +1,6 @@ -import { assertInstanceOf } from '@santi100/assertion-lib'; -import { random } from './random'; +import assertInstanceOf = require('@santi100/assertion-lib/cjs/instance-of'); +import random = require('./random'); + /** * Generates a random date between `minDate` and `maxDate`. @@ -8,10 +9,14 @@ import { random } from './random'; * @param maxDate The maximum date to generate a random date from. * @returns A `Date` object representing a random date between `minDate` and `maxDate`. */ -export function randomDate(minDate: Date, maxDate: Date) { +function randomDate(minDate: Date, maxDate: Date) { assertInstanceOf(minDate, Date); assertInstanceOf(maxDate, Date); const randomTs = random(maxDate.getTime(), minDate.getTime()); return new Date(randomTs); } + +randomDate.randomDate = randomDate; +Object?.defineProperty?.(randomDate, 'randomDate', { enumerable: false }); +export = randomDate; \ No newline at end of file diff --git a/src/random-dates.ts b/src/random-dates.ts index 20086af..c85cc0e 100644 --- a/src/random-dates.ts +++ b/src/random-dates.ts @@ -1,5 +1,5 @@ -import { assertInstanceOf } from '@santi100/assertion-lib'; -import { randomIntegers } from './random-integers'; +import assertInstanceOf = require('@santi100/assertion-lib/cjs/instance-of'); +import randomIntegers = require('./random-integers'); /** * Generates `amount` random dates between `minDate` and `maxDate`. @@ -9,7 +9,7 @@ import { randomIntegers } from './random-integers'; * @param amount The amount of dates to generate. * @returns An array of `Date` objects representing some random dates between `minDate` and `maxDate`. */ -export function randomDates( +function randomDates( minDate: Date, maxDate: Date, amount: number @@ -27,3 +27,7 @@ export function randomDates( } return dates; } + +randomDates.randomDate = randomDates; +Object?.defineProperty?.(randomDates, 'randomDates', { enumerable: false }); +export = randomDates; diff --git a/src/random-float.ts b/src/random-float.ts index 03ba29a..373378b 100644 --- a/src/random-float.ts +++ b/src/random-float.ts @@ -1,4 +1,18 @@ -import { assertTypeOf, assertMax } from '@santi100/assertion-lib'; +import assertTypeOf = require('@santi100/assertion-lib/cjs/type-of'); +import assertMax = require('@santi100/assertion-lib/cjs/max'); + + +/** + * Returns a pseudo-random integer up to `max` (exclusive). + * @param max The maximum value. + */ +function randomFloat(max: number): number; +/** + * Returns a pseudo-random integer in the range [`min`, `max`). + * @param max The maximum value. + * @param min The minimum value. + */ +function randomFloat(max: number, min: number): number; /** * Returns a pseudo-random floating-point number between min and max. @@ -6,10 +20,14 @@ import { assertTypeOf, assertMax } from '@santi100/assertion-lib'; * @param min The minimum value (0 by default). * @returns A pseudo-random floating-point number between min and max. */ -export function randomFloat(max: number, min = 0.0): number { +function randomFloat(max: number, min = 0.0): number { assertTypeOf(max, 'number', 'max'); assertTypeOf(min, 'number', 'min'); assertMax(min, 'min', max - 1); if (!min) return Math.random() * max; return Math.random() * (max - min + 1.0) + min; } + +randomFloat.randomFloat = randomFloat; +Object?.defineProperty?.(randomFloat, 'randomFloat', { enumerable: false }); +export = randomFloat; diff --git a/src/random-floats.ts b/src/random-floats.ts index 6e4db42..e3008ab 100644 --- a/src/random-floats.ts +++ b/src/random-floats.ts @@ -1,10 +1,9 @@ -import { - assertTypeOf, - assertMin, - assertInteger, -} from '@santi100/assertion-lib'; import { RandomArraysOptions, DEFAULT_RANDOM_NUMBERS_MAX } from './core'; -import { randomFloat } from './random-float'; +import randomFloat = require('./random-float'); +import assertTypeOf = require('@santi100/assertion-lib/cjs/type-of'); +import assertInteger = require('@santi100/assertion-lib/cjs/integer'); +import assertMin = require('@santi100/assertion-lib/cjs/min'); + function __isNullOrUndefined(a: unknown) { return a === null || a === undefined; @@ -29,7 +28,7 @@ function __checkRandomArraysErrors( * @param opts See {@link RandomArraysOptions}. * @returns An array of random floating-point numbers. */ -export function randomFloats( +function randomFloats( amount = 4, opts: RandomArraysOptions = {} ): number[] { @@ -41,3 +40,7 @@ export function randomFloats( } return internal; } + +randomFloats.randomFloats = randomFloats; +Object?.defineProperty?.(randomFloats, 'randomFloats', { enumerable: false }); +export = randomFloats; diff --git a/src/random-from-array.ts b/src/random-from-array.ts index 3074748..0cd1e5d 100644 --- a/src/random-from-array.ts +++ b/src/random-from-array.ts @@ -1,17 +1,15 @@ -import { - assertArray, - assertMin, - assertTypeOf, - assertInteger, -} from '@santi100/assertion-lib'; import { AtLeastOneElement } from './core'; -import { random } from './random'; +import random = require('./random'); +import assertArray = require('@santi100/assertion-lib/cjs/array'); +import assertTypeOf = require('@santi100/assertion-lib/cjs/type-of'); +import assertInteger = require('@santi100/assertion-lib/cjs/integer'); +import assertMin = require('@santi100/assertion-lib/cjs/min'); /** * Returns a random item from `array`. * @param array The array from which you want to pick a random item. * @returns A random item from the given array. */ -export function randomFromArray(array: AtLeastOneElement): T; +function randomFromArray(array: AtLeastOneElement): T; /** * * Returns `amount` random items from `array`. @@ -20,7 +18,7 @@ export function randomFromArray(array: AtLeastOneElement): T; * @returns An array of random items from the given array. * @since 1.1.2 */ -export function randomFromArray( +function randomFromArray( array: AtLeastOneElement, amount: number ): T[]; @@ -30,7 +28,7 @@ export function randomFromArray( * @param amount How many items do you want (default is 1). * @returns A random item from the given array. */ -export function randomFromArray( +function randomFromArray( array: AtLeastOneElement, amount = 1 ): T | T[] { @@ -48,3 +46,6 @@ export function randomFromArray( } return array[random(array.length)]; } +randomFromArray.randomFromArray = randomFromArray; +Object?.defineProperty?.(randomFromArray, 'randomFromArray', { enumerable: false }); +export = randomFromArray; \ No newline at end of file diff --git a/src/random-hex-color.ts b/src/random-hex-color.ts index 957c241..1b186c4 100644 --- a/src/random-hex-color.ts +++ b/src/random-hex-color.ts @@ -1,18 +1,18 @@ -import { assertTypeOf } from '@santi100/assertion-lib'; +import assertTypeOf = require('@santi100/assertion-lib/cjs/type-of'); import { AtLeastOneElement, LOWERS } from './core'; -import { randomFromArray } from './random-from-array'; +import randomFromArray = require('./random-from-array'); /** * Generates a random hex colorcode. */ -export function randomHexColor(): string; +function randomHexColor(): string; /** * Generates a random hex colorcode. * @param shorthand Whether or not use a 3-character code instead of a 6-character one. */ -export function randomHexColor(shorthand: boolean): string; +function randomHexColor(shorthand: boolean): string; -export function randomHexColor(shorthand?: boolean) { +function randomHexColor(shorthand?: boolean) { if (shorthand !== undefined) assertTypeOf(shorthand, 'boolean', 'shorthand'); const chars: AtLeastOneElement = [ ...('1234567890'.split('') as AtLeastOneElement), @@ -20,3 +20,7 @@ export function randomHexColor(shorthand?: boolean) { ]; return `#${randomFromArray(chars, shorthand ? 3 : 6).join('')}`; } + +randomHexColor.randomHexColor = randomHexColor; +Object?.defineProperty?.(randomHexColor, 'randomHexColor', { enumerable: false }); +export = randomHexColor; diff --git a/src/random-integers.ts b/src/random-integers.ts index fc15dc8..d7fbbc9 100644 --- a/src/random-integers.ts +++ b/src/random-integers.ts @@ -1,25 +1,8 @@ -import { - assertTypeOf, - assertMin, - assertInteger, -} from '@santi100/assertion-lib'; import { RandomArraysOptions, DEFAULT_RANDOM_NUMBERS_MAX } from './core'; -import { random } from './random'; -function __isNullOrUndefined(a: unknown) { - return a === null || a === undefined; -} -function __checkRandomArraysErrors( - amount: number, - opts: RandomArraysOptions -): void { - assertTypeOf(amount, 'number', 'amount'); - if (!__isNullOrUndefined(opts.max)) - assertTypeOf(opts.max, 'number', 'opts.max'); - if (!__isNullOrUndefined(opts.min)) - assertTypeOf(opts.min, 'number', 'opts.min'); - assertMin(amount, 'amount', 0); - assertInteger(amount, 'amount'); -} +import random = require('./random'); +import assertTypeOf = require('@santi100/assertion-lib/cjs/type-of'); +import assertMin = require('@santi100/assertion-lib/cjs/min'); +import assertInteger = require('@santi100/assertion-lib/cjs/integer'); /** * Returns an array with `amount` random integers. @@ -28,15 +11,25 @@ function __checkRandomArraysErrors( * @param opts See {@link RandomArraysOptions}. * @returns An array of random integers. */ -export function randomIntegers( +function randomIntegers( amount = 4, - opts: RandomArraysOptions = {} + opts: RandomArraysOptions = { min: 0, max: DEFAULT_RANDOM_NUMBERS_MAX } ): number[] { - __checkRandomArraysErrors(amount, opts); - const { max = DEFAULT_RANDOM_NUMBERS_MAX, min = 0 } = opts; + assertTypeOf(amount, 'number', 'amount'); + assertTypeOf(opts.max, 'number', 'opts.max'); + assertTypeOf(opts.min, 'number', 'opts.min'); + assertMin(amount, 'amount', 0); + assertInteger(amount, 'amount'); + + const { max, min } = opts; const internal = []; for (let i = 0; i < amount; i++) { - internal[internal.length] = random(max, min); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + internal[internal.length] = random(max!, min!); } return internal; } + +randomIntegers.randomIntegers = randomIntegers; +Object?.defineProperty?.(randomIntegers, 'randomIntegers', { enumerable: false }); +export = randomIntegers; diff --git a/src/random-letter.ts b/src/random-letter.ts index 3edc982..714dfb0 100644 --- a/src/random-letter.ts +++ b/src/random-letter.ts @@ -1,10 +1,14 @@ import { LETTERS } from './core'; -import { randomFromArray } from './random-from-array'; +import randomFromArray = require('./random-from-array'); /** * Returns a random letter. * @returns A random letter. */ -export function randomLetter() { +function randomLetter() { return randomFromArray(LETTERS); } + +randomLetter.randomLetter = randomLetter; +Object?.defineProperty?.(randomLetter, 'randomLetter', { enumerable: false }); +export = randomLetter; diff --git a/src/random-letters.ts b/src/random-letters.ts index 0887990..da367a4 100644 --- a/src/random-letters.ts +++ b/src/random-letters.ts @@ -1,12 +1,16 @@ import { LETTERS } from './core'; -import { randomFromArray } from './random-from-array'; +import randomFromArray = require('./random-from-array'); /** * Returns `amount` random letters. * @param amount How many random letters to return. * @returns An array of random letters. */ -export function randomLetters(amount: number) { +function randomLetters(amount: number) { if (amount === 0) return []; return randomFromArray(LETTERS, amount); } + +randomLetters.randomLetters = randomLetters; +Object?.defineProperty?.(randomLetters, 'randomLetters', { enumerable: false }); +export = randomLetters; \ No newline at end of file diff --git a/src/random-lower.ts b/src/random-lower.ts index b1d31e2..e6f0663 100644 --- a/src/random-lower.ts +++ b/src/random-lower.ts @@ -1,10 +1,13 @@ import { LOWERS } from './core'; -import { randomFromArray } from './random-from-array'; +import randomFromArray = require('./random-from-array'); /** * Returns a random lowercase letter. * @returns A random lowercase letter. */ -export function randomLower() { +function randomLower() { return randomFromArray(LOWERS); } +randomLower.randomLower = randomLower; +Object?.defineProperty?.(randomLower, 'randomLower', { enumerable: false }); +export = randomLower; \ No newline at end of file diff --git a/src/random-lowers.ts b/src/random-lowers.ts index 4a82aae..b1e82e6 100644 --- a/src/random-lowers.ts +++ b/src/random-lowers.ts @@ -1,12 +1,15 @@ import { LOWERS } from './core'; -import { randomFromArray } from './random-from-array'; +import randomFromArray = require('./random-from-array'); /** * Returns `amount` random lowercase letters. * @param amount How many random lowercase letters to return. * @returns An array of random lowercase letters. */ -export function randomLowers(amount: number) { +function randomLowers(amount: number) { if (amount === 0) return []; return randomFromArray(LOWERS, amount); } +randomLowers.randomLowers = randomLowers; +Object?.defineProperty?.(randomLowers, 'randomLowers', { enumerable: false }); +export = randomLowers; diff --git a/src/random-phone.ts b/src/random-phone.ts new file mode 100644 index 0000000..ce2c550 --- /dev/null +++ b/src/random-phone.ts @@ -0,0 +1,43 @@ +import { randomIntegers } from './random-integers'; +import assertInteger = require('@santi100/assertion-lib/cjs/integer'); +import assertPositive = require('@santi100/assertion-lib/cjs/positive'); +import assertRange = require('@santi100/assertion-lib/cjs/range'); +import assertTypeOf = require('@santi100/assertion-lib/cjs/type-of'); + +/** + * Generates a 10-digit random phone number of the form `+xx xxx xxxxxxx`, where `x` is a digit. + * + * @param countryCode The code of the country to which the number would belong to. + * Must be between 1 and 999. + */ +function randomPhone(countryCode: number): string; +/** + * Generates a random phone number of the form `+xx xxx x...`, where `x` is a digit. + * + * @param countryCode The code of the country to which the number would belong to. + * Must be between 1 and 999. + * @param digitCount The amount of digits the phone number must have beside the country + * code. If bigger than 10, the extra digits will be added to the `x...` block. + */ +function randomPhone(countryCode: number, digitCount: number): string; + +/** Implementation */ +function randomPhone(countryCode: number, digitCount = 10): string { + assertTypeOf(countryCode, 'number', 'countryCode'); + assertInteger(countryCode, 'countryCode'); + assertPositive(countryCode, 'countryCode'); + assertRange(countryCode, 'countryCode', 1, 999); + + assertTypeOf(digitCount, 'number', 'digitCount'); + assertInteger(digitCount, 'digitCount'); + assertPositive(digitCount, 'digitCount'); + + const digits = randomIntegers(digitCount, { max: 10, min: 0 }); + const phoneNumber = `+${countryCode} ${digits + .join('') + .substring(0, 3)} ${digits.join('').substring(3)}`; + + return phoneNumber; +} + +export = randomPhone; diff --git a/src/random-phrase.ts b/src/random-phrase.ts index 2a9717a..8c1477d 100644 --- a/src/random-phrase.ts +++ b/src/random-phrase.ts @@ -1,4 +1,4 @@ -import { assertTypeOf } from '@santi100/assertion-lib'; +import { assertTypeOf } from '@santi100/assertion-lib/cjs/type-of'; import { AtLeastOneElement, WORDLIST } from './core'; import { randomFromArray } from './random-from-array'; @@ -7,7 +7,7 @@ import { randomFromArray } from './random-from-array'; * * **Keep in mind these phrases have NO GRAMATICAL sense and are generated from a list of random words.** */ -export function randomPhrase(): string; +function randomPhrase(): string; /** * Generate a random phrase with `wordCount` words. * @@ -15,8 +15,8 @@ export function randomPhrase(): string; * * @param wordCount The amount of words to use in the phrase. */ -export function randomPhrase(wordCount: number): string; -export function randomPhrase(wordCount = 6) { +function randomPhrase(wordCount: number): string; +function randomPhrase(wordCount = 6) { assertTypeOf(wordCount, 'number', 'wordCount'); const words = randomFromArray( WORDLIST as AtLeastOneElement, @@ -24,3 +24,7 @@ export function randomPhrase(wordCount = 6) { ); return words.join(' '); } + +randomPhrase.randomPhrase = randomPhrase; +Object?.defineProperty?.(randomPhrase, 'randomPhrase', { enumerable: false }); +export = randomPhrase; diff --git a/src/random-upper.ts b/src/random-upper.ts index 77c240c..9a44db4 100644 --- a/src/random-upper.ts +++ b/src/random-upper.ts @@ -5,6 +5,9 @@ import { randomFromArray } from './random-from-array'; * Returns a random uppercase letter. * @returns A random uppercase letter. */ -export function randomUpper() { +function randomUpper() { return randomFromArray(UPPERS); } +randomUpper.randomUpper = randomUpper; +Object?.defineProperty?.(randomUpper, 'randomUpper', { enumerable: false }); +export = randomUpper; \ No newline at end of file diff --git a/src/random-uppers.ts b/src/random-uppers.ts index 52ced21..c9dad4d 100644 --- a/src/random-uppers.ts +++ b/src/random-uppers.ts @@ -6,7 +6,11 @@ import { randomFromArray } from './random-from-array'; * @param amount How many random uppercase letters to return. * @returns An array of random uppercase letters. */ -export function randomUppers(amount: number) { +function randomUppers(amount: number) { if (amount === 0) return []; return randomFromArray(UPPERS, amount); } + +randomUppers.randomUppers = randomUppers; +Object?.defineProperty?.(randomUppers, 'randomUppers', { enumerable: false }); +export = randomUppers; \ No newline at end of file diff --git a/src/random-uuid.ts b/src/random-uuid.ts index 75c830e..2b4a9d1 100644 --- a/src/random-uuid.ts +++ b/src/random-uuid.ts @@ -10,7 +10,7 @@ function __map(array: T[], cb: (i: T, idx: number) => unknown) { /** * Generates a pseudo-random UUID v4. */ -export function randomUUID() { +function randomUUID() { const characters = 'abcdef0123456789'; const sections = [8, 4, 4, 4, 12]; @@ -26,7 +26,7 @@ export function randomUUID() { const validChars = '89ab'; sectionString += validChars.charAt(randomIndex); } else { - const randomIndex = Math.floor(Math.random() * characters.length); + const randomIndex = random(characters.length); sectionString += characters.charAt(randomIndex); } } @@ -35,3 +35,6 @@ export function randomUUID() { return uuidSections.join('-'); } +randomUUID.randomUUID = randomUUID; +Object?.defineProperty?.(randomUUID, 'randomUUID', { enumerable: false }); +export = randomUUID; \ No newline at end of file diff --git a/src/random.ts b/src/random.ts index 8ea19a1..5709f09 100644 --- a/src/random.ts +++ b/src/random.ts @@ -6,12 +6,19 @@ import { } from '@santi100/assertion-lib'; /** - * Returns a pseudo-random integer between min and max. + * Returns a pseudo-random integer up to `max` (exclusive). * @param max The maximum value. - * @param min The minimum value (0 by default). - * @returns A pseudo-random integer between min and max. */ -export function random(max: number, min = 0): number { +function random(max: number): number; +/** + * Returns a pseudo-random integer in the range [`min`, `max`). + * @param max The maximum value. + * @param min The minimum value. + */ +function random(max: number, min: number): number; + + +function random(max: number, min = 0): number { assertTypeOf(max, 'number', 'max'); assertTypeOf(min, 'number', 'min'); assertInteger(max, 'max'); @@ -23,3 +30,8 @@ export function random(max: number, min = 0): number { if (!min) return Math.floor(Math.random() * max); return Math.floor(Math.random() * (max - min + 1)) + min; } + +random.random = random; // for backward compatibility and destructuring support +Object?.defineProperty?.(random, 'random', { enumerable: false }); + +export = random; diff --git a/tests/phone.test.js b/tests/phone.test.js new file mode 100644 index 0000000..4fca8b4 --- /dev/null +++ b/tests/phone.test.js @@ -0,0 +1,28 @@ +describe('randomPhone', () => { + const randomPhone = require('../cjs/random-phone'); + describe('error handling', () => { + test('invalid country codes', () => { + expect(randomPhone).toThrow(); + expect(() => randomPhone(-1)).toThrow(/must be positive/); + expect(() => randomPhone(3.5)).toThrow(/must be an integer/); + expect(() => randomPhone('not a number')).toThrow(/must be of type/); + expect(() => randomPhone(1_378)).toThrow(/must be smaller/); + }); + test('invalid lengths', () => { + expect(randomPhone).toThrow(); + expect(() => randomPhone(57, -1)).toThrow(/must be positive/); + expect(() => randomPhone(1, 3.5)).toThrow(/must be an integer/); + expect(() => randomPhone(43, 'not a number')).toThrow(/must be of type/); + }); + }); + test('happy path: the generated number matches a regex', () => { + const countryCode = 57; + const phone = randomPhone(countryCode); + expect(phone).toMatch(/\+\d{2} \d{3} \d{7}/); + }); + test('happy path: the generated number matches a regex when specifying a length', () => { + const countryCode = 59; + const phone = randomPhone(countryCode, 13); + expect(phone).toMatch(/\+\d{2} \d{3} \d{10}/); + }); +}); \ No newline at end of file diff --git a/umd/index.js b/umd/index.js index f760445..88e3d3a 100644 --- a/umd/index.js +++ b/umd/index.js @@ -18,12 +18,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { - define(["require", "exports", "./core", "./random", "./random-date", "./random-dates", "./random-float", "./random-floats", "./random-from-array", "./random-integers", "./random-letter", "./random-letters", "./random-lower", "./random-lowers", "./random-upper", "./random-uppers", "./random-boolean", "./random-phrase", "./random-uuid", "./random-hex-color", "./random"], factory); + define(["require", "exports", "./random-phone", "./random", "./core", "./random", "./random-date", "./random-dates", "./random-float", "./random-floats", "./random-from-array", "./random-integers", "./random-letter", "./random-letters", "./random-lower", "./random-lowers", "./random-upper", "./random-uppers", "./random-boolean", "./random-phrase", "./random-uuid", "./random-hex-color"], factory); } })(function (require, exports) { "use strict"; exports.__esModule = true; - exports["default"] = void 0; + exports.randomPhone = void 0; + var randomPhone = require("./random-phone"); + exports.randomPhone = randomPhone; + var random_1 = require("./random"); __exportStar(require("./core"), exports); __exportStar(require("./random"), exports); __exportStar(require("./random-date"), exports); @@ -42,6 +45,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { __exportStar(require("./random-phrase"), exports); __exportStar(require("./random-uuid"), exports); __exportStar(require("./random-hex-color"), exports); - var random_1 = require("./random"); - __createBinding(exports, random_1, "random", "default"); + exports["default"] = random_1.random; }); diff --git a/umd/random-boolean.js b/umd/random-boolean.js index 5415f26..d0e4b48 100644 --- a/umd/random-boolean.js +++ b/umd/random-boolean.js @@ -11,6 +11,9 @@ exports.__esModule = true; exports.randomBoolean = void 0; var random_from_array_1 = require("./random-from-array"); + /** + * Generates a random boolean value. + */ function randomBoolean() { var array = [ true, diff --git a/umd/random-dates.js b/umd/random-dates.js index d8e57f2..078fb1d 100644 --- a/umd/random-dates.js +++ b/umd/random-dates.js @@ -4,13 +4,13 @@ if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { - define(["require", "exports", "@santi100/assertion-lib", "./random-integers"], factory); + define(["require", "exports", "@santi100/assertion-lib/cjs/instance-of", "./random-integers"], factory); } })(function (require, exports) { "use strict"; exports.__esModule = true; exports.randomDates = void 0; - var assertion_lib_1 = require("@santi100/assertion-lib"); + var instance_of_1 = require("@santi100/assertion-lib/cjs/instance-of"); var random_integers_1 = require("./random-integers"); /** * Generates `amount` random dates between `minDate` and `maxDate`. @@ -21,8 +21,8 @@ * @returns An array of `Date` objects representing some random dates between `minDate` and `maxDate`. */ function randomDates(minDate, maxDate, amount) { - (0, assertion_lib_1.assertInstanceOf)(minDate, Date); - (0, assertion_lib_1.assertInstanceOf)(maxDate, Date); + (0, instance_of_1.assertInstanceOf)(minDate, Date); + (0, instance_of_1.assertInstanceOf)(maxDate, Date); var randomTs = (0, random_integers_1.randomIntegers)(amount, { max: maxDate.getTime(), min: minDate.getTime() diff --git a/umd/random-hex-color.js b/umd/random-hex-color.js index 0400621..fbe6fb4 100644 --- a/umd/random-hex-color.js +++ b/umd/random-hex-color.js @@ -13,18 +13,18 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { - define(["require", "exports", "@santi100/assertion-lib", "./core", "./random-from-array"], factory); + define(["require", "exports", "@santi100/assertion-lib/cjs/type-of", "./core", "./random-from-array"], factory); } })(function (require, exports) { "use strict"; exports.__esModule = true; exports.randomHexColor = void 0; - var assertion_lib_1 = require("@santi100/assertion-lib"); + var type_of_1 = require("@santi100/assertion-lib/cjs/type-of"); var core_1 = require("./core"); var random_from_array_1 = require("./random-from-array"); function randomHexColor(shorthand) { if (shorthand !== undefined) - (0, assertion_lib_1.assertTypeOf)(shorthand, 'boolean', 'shorthand'); + (0, type_of_1.assertTypeOf)(shorthand, 'boolean', 'shorthand'); var chars = __spreadArray(__spreadArray([], '1234567890'.split(''), true), core_1.LOWERS.slice(0, 5), true); return "#".concat((0, random_from_array_1.randomFromArray)(chars, shorthand ? 3 : 6).join('')); } diff --git a/umd/random-phone.js b/umd/random-phone.js new file mode 100644 index 0000000..16acec4 --- /dev/null +++ b/umd/random-phone.js @@ -0,0 +1,35 @@ +(function (factory) { + if (typeof module === "object" && typeof module.exports === "object") { + var v = factory(require, exports); + if (v !== undefined) module.exports = v; + } + else if (typeof define === "function" && define.amd) { + define(["require", "exports", "./random-integers", "@santi100/assertion-lib/cjs/integer", "@santi100/assertion-lib/cjs/positive", "@santi100/assertion-lib/cjs/range", "@santi100/assertion-lib/cjs/type-of"], factory); + } +})(function (require, exports) { + "use strict"; + var _a; + var random_integers_1 = require("./random-integers"); + var assertInteger = require("@santi100/assertion-lib/cjs/integer"); + var assertPositive = require("@santi100/assertion-lib/cjs/positive"); + var range_1 = require("@santi100/assertion-lib/cjs/range"); + var type_of_1 = require("@santi100/assertion-lib/cjs/type-of"); + /** Implementation */ + function randomPhone(countryCode, digitCount) { + if (digitCount === void 0) { digitCount = 10; } + (0, type_of_1.assertTypeOf)(countryCode, 'number', 'countryCode'); + assertInteger(countryCode, 'countryCode'); + assertPositive(countryCode, 'countryCode'); + (0, range_1.assertRange)(countryCode, 'countryCode', 1, 999); + (0, type_of_1.assertTypeOf)(digitCount, 'number', 'digitCount'); + assertInteger(digitCount, 'digitCount'); + assertPositive(digitCount, 'digitCount'); + var digits = (0, random_integers_1.randomIntegers)(digitCount, { max: 10, min: 0 }); + var firstDigits = digits.slice(0, 3); + var lastDigits = digits.slice(3); + return "+".concat(countryCode, " ").concat(firstDigits.join(''), " ").concat(lastDigits.join('')); + } + randomPhone.randomPhone = randomPhone; + (_a = Object === null || Object === void 0 ? void 0 : Object.defineProperty) === null || _a === void 0 ? void 0 : _a.call(Object, randomPhone, 'randomPhone', { enumerable: false }); + return randomPhone; +}); diff --git a/umd/random-phrase.js b/umd/random-phrase.js index 45a83b7..1e3d99e 100644 --- a/umd/random-phrase.js +++ b/umd/random-phrase.js @@ -4,18 +4,18 @@ if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { - define(["require", "exports", "@santi100/assertion-lib", "./core", "./random-from-array"], factory); + define(["require", "exports", "@santi100/assertion-lib/cjs/type-of", "./core", "./random-from-array"], factory); } })(function (require, exports) { "use strict"; exports.__esModule = true; exports.randomPhrase = void 0; - var assertion_lib_1 = require("@santi100/assertion-lib"); + var type_of_1 = require("@santi100/assertion-lib/cjs/type-of"); var core_1 = require("./core"); var random_from_array_1 = require("./random-from-array"); function randomPhrase(wordCount) { if (wordCount === void 0) { wordCount = 6; } - (0, assertion_lib_1.assertTypeOf)(wordCount, 'number', 'wordCount'); + (0, type_of_1.assertTypeOf)(wordCount, 'number', 'wordCount'); var words = (0, random_from_array_1.randomFromArray)(core_1.WORDLIST, wordCount); return words.join(' '); } diff --git a/umd/random-uuid.js b/umd/random-uuid.js index 97c4cb5..33dc090 100644 --- a/umd/random-uuid.js +++ b/umd/random-uuid.js @@ -19,7 +19,7 @@ return m; } /** - * Generate a pseudo-random UUID v4. + * Generates a pseudo-random UUID v4. */ function randomUUID() { var characters = 'abcdef0123456789'; diff --git a/yarn.lock b/yarn.lock index 6fa6801..18c237f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,6 +22,14 @@ dependencies: "@babel/highlight" "^7.22.5" +"@babel/code-frame@^7.16.0": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" + integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA== + dependencies: + "@babel/highlight" "^7.22.10" + chalk "^2.4.2" + "@babel/compat-data@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255" @@ -153,6 +161,15 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/highlight@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7" + integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.4.2" + js-tokens "^4.0.0" + "@babel/highlight@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" @@ -355,6 +372,18 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -621,17 +650,44 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@santi100/assertion-lib@^1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@santi100/assertion-lib/-/assertion-lib-1.0.8.tgz#549182e6eeaae693081532405af653920985513b" - integrity sha512-bgxIXipilU2ddeDyS6rZBLIr2aV4s9i323ajs1SCCWoIaRyGRDW31ZoKFeXOA/cJntwZFOD0AXopTcYti8nnjQ== +"@npmcli/config@^6.0.0": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-6.2.1.tgz#954cc09b727b6bfc087cb1d2a48994dc342e45cc" + integrity sha512-Cj/OrSbrLvnwWuzquFCDTwFN8QmR+SWH6qLNCBttUreDkKM5D5p36SeSMbcEUiCGdwjUrVy2yd8C0REwwwDPEw== + dependencies: + "@npmcli/map-workspaces" "^3.0.2" + ci-info "^3.8.0" + ini "^4.1.0" + nopt "^7.0.0" + proc-log "^3.0.0" + read-package-json-fast "^3.0.2" + semver "^7.3.5" + walk-up-path "^3.0.1" + +"@npmcli/map-workspaces@^3.0.2": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz#15ad7d854292e484f7ba04bc30187a8320dba799" + integrity sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg== dependencies: - "@santi100/equal-lib" "^1.0.8" + "@npmcli/name-from-folder" "^2.0.0" + glob "^10.2.2" + minimatch "^9.0.0" + read-package-json-fast "^3.0.0" -"@santi100/equal-lib@^1.0.8": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@santi100/equal-lib/-/equal-lib-1.0.9.tgz#bac892efb695f12032eda478f6f8868ba49170c3" - integrity sha512-PWimpdu6YA0gEfFCfYuwS79qUIX+et5CIunSCnXOZJVm7oTS1sL3fhfRp6V7R3fjoDFgWHGs23m6C+r9NIxuLQ== +"@npmcli/name-from-folder@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@santi100/assertion-lib@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@santi100/assertion-lib/-/assertion-lib-2.0.1.tgz#8cec6f64fa54a39bbc8c56ced41b51f6843158fb" + integrity sha512-CP5JCaSRIxRnaciS1WPy+z0ALMHELJqx4GoXa/lH6t/dXDkKZqAJcPFCZCvURrUzbq25Vcs/C+Ac5tQ8qZzehQ== "@sinclair/typebox@^0.25.16": version "0.25.24" @@ -685,6 +741,20 @@ dependencies: "@babel/types" "^7.20.7" +"@types/concat-stream@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-2.0.0.tgz#a716f0ba9015014e643addb351da05a73bef425c" + integrity sha512-t3YCerNM7NTVjLuICZo5gYAXYoDvpuuTceCcFQWcDQz26kxUR5uIWolxbIR5jRNIXpMqhOpW/b8imCR1LEmuJw== + dependencies: + "@types/node" "*" + +"@types/debug@^4.0.0": + version "4.1.8" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" + integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ== + dependencies: + "@types/ms" "*" + "@types/graceful-fs@^4.1.3": version "4.1.6" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" @@ -692,6 +762,11 @@ dependencies: "@types/node" "*" +"@types/is-empty@^1.0.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/is-empty/-/is-empty-1.2.1.tgz#18d7256a73e43ec51f8b75c25fbdc31350be52a6" + integrity sha512-a3xgqnFTuNJDm1fjsTjHocYJ40Cz3t8utYpi5GNaxzrJC2HSD08ym+whIL7fNqiqBCdM9bcqD1H/tORWAFXoZw== + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" @@ -724,11 +799,28 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== +"@types/mdast@^3.0.0": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.12.tgz#beeb511b977c875a5b0cc92eab6fcac2f0895514" + integrity sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg== + dependencies: + "@types/unist" "^2" + +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + "@types/node@*": version "20.3.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.2.tgz#fa6a90f2600e052a03c18b8cb3fd83dd4e599898" integrity sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw== +"@types/node@^18.0.0": + version "18.17.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.5.tgz#c58b12bca8c2a437b38c15270615627e96dd0bc5" + integrity sha512-xNbS75FxH6P4UXTPUJp/zNPq6/xsfdJKussCWNOnz4aULWIRwMgP1LgaB5RiBnMX1DPCYenuqGZfnIAx5mbFLA== + "@types/prettier@^2.1.5": version "2.7.3" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" @@ -744,6 +836,21 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/supports-color@^8.0.0": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.1.tgz#1b44b1b096479273adf7f93c75fc4ecc40a61ee4" + integrity sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw== + +"@types/text-table@^0.2.0": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@types/text-table/-/text-table-0.2.2.tgz#774c90cfcfbc8b4b0ebb00fecbe861dc8b1e8e26" + integrity sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg== + +"@types/unist@^2", "@types/unist@^2.0.0": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.7.tgz#5b06ad6894b236a1d2bd6b2f07850ca5c59cf4d6" + integrity sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g== + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -840,6 +947,11 @@ "@typescript-eslint/types" "5.60.1" eslint-visitor-keys "^3.3.0" +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -872,6 +984,11 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -891,7 +1008,12 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -anymatch@^3.0.3: +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -976,11 +1098,21 @@ babel-preset-jest@^29.5.0: babel-plugin-jest-hoist "^29.5.0" babel-preset-current-node-syntax "^1.0.0" +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -989,7 +1121,14 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.2: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -1033,12 +1172,22 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +camelcase@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + caniuse-lite@^1.0.30001503: version "1.0.30001509" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001509.tgz#2b7ad5265392d6d2de25cd8776d1ab3899570d14" integrity sha512-2uDDk+TRiTX5hMcUYT/7CSyzMZxjfGu0vAUjS2g0LSD8UoXOv0LtpH4LxGMemsiPq6LCVIUjNwVM0erkOkGCDA== -chalk@^2.0.0: +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1055,12 +1204,37 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -ci-info@^3.2.0: +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +chokidar@^3.0.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +ci-info@^3.2.0, ci-info@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== @@ -1118,6 +1292,16 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" @@ -1128,7 +1312,7 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1137,13 +1321,20 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -1159,6 +1350,11 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -1169,6 +1365,11 @@ diff-sequences@^29.4.3: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -1183,6 +1384,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + electron-to-chromium@^1.4.431: version "1.4.445" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.445.tgz#058d2c5f3a2981ab1a37440f5a5e42d15672aa6d" @@ -1198,7 +1404,12 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -error-ex@^1.3.1: +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +error-ex@^1.3.1, error-ex@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -1225,6 +1436,11 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + eslint-plugin-jest@^27.2.1: version "27.2.2" resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.2.tgz#be4ded5f91905d9ec89aa8968d39c71f3b072c0c" @@ -1372,6 +1588,11 @@ expect@^29.0.0, expect@^29.5.0: jest-message-util "^29.5.0" jest-util "^29.5.0" +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -1405,6 +1626,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fault@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" + integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== + dependencies: + format "^0.2.0" + fb-watchman@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" @@ -1455,12 +1683,25 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2: +fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -1490,7 +1731,12 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -glob-parent@^5.1.2: +github-slugger@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" + integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -1504,6 +1750,17 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob@^10.2.2: + version "10.3.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.3.tgz#8360a4ffdd6ed90df84aa8d52f21f452e86a123b" + integrity sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.0.3" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -1516,6 +1773,17 @@ glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -1572,6 +1840,13 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hosted-git-info@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz#629442c7889a69c05de604d52996b74fe6f26d58" + integrity sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w== + dependencies: + lru-cache "^7.5.1" + html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -1582,7 +1857,7 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -ignore@^5.2.0: +ignore@^5.0.0, ignore@^5.2.0: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -1603,6 +1878,11 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" +import-meta-resolve@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz#75237301e72d1f0fbd74dbc6cca9324b164c2cc9" + integrity sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -1616,16 +1896,33 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +ini@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" + integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-core-module@^2.11.0: version "2.12.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" @@ -1633,6 +1930,11 @@ is-core-module@^2.11.0: dependencies: has "^1.0.3" +is-empty@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b" + integrity sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -1648,7 +1950,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -1665,6 +1967,11 @@ is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -1717,6 +2024,15 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +jackspeak@^2.0.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.3.tgz#ac63c57c18d254dc78a1f4ecd1cdeb4daeb6e616" + integrity sha512-pF0kfjmg8DJLxDrizHoCZGUFz4P4czQ3HyfW4BU0ffebYkzAVlBywp5zaxW/TM+r0sGbmrQdi8EQQVTJFxnGsQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jest-changed-files@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" @@ -2103,11 +2419,16 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -json-parse-even-better-errors@^2.3.0: +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-parse-even-better-errors@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" + integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -2118,7 +2439,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json5@^2.2.2: +json5@^2.0.0, json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -2128,11 +2449,21 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levenshtein-edit-distance@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/levenshtein-edit-distance/-/levenshtein-edit-distance-1.0.0.tgz#895baf478cce8b5c1a0d27e45d7c1d978a661e49" + integrity sha512-gpgBvPn7IFIAL32f0o6Nsh2g+5uOvkt4eK9epTfgE4YVxBxwVhJ/p1888lMm/u8mXdu1ETLSi6zeEmkBI+0F3w== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -2146,6 +2477,19 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +lines-and-columns@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.3.tgz#b2f0badedb556b747020ab8ea7f0373e22efac1b" + integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== + +load-plugin@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-5.1.0.tgz#15600f5191c742b16e058cfc908c227c13db0104" + integrity sha512-Lg1CZa1CFj2CbNaxijTL6PCbzd4qGTlZov+iH2p5Xwy/ApcZJh+i6jMN2cYePouTfjJfrNu3nXFdEw8LvbjPFQ== + dependencies: + "@npmcli/config" "^6.0.0" + import-meta-resolve "^2.0.0" + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -2165,6 +2509,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -2179,6 +2528,16 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.5.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + +"lru-cache@^9.1.1 || ^10.0.0": + version "10.0.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" + integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== + make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -2193,6 +2552,126 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" +markdown-table@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== + +mdast-util-find-and-replace@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz#cc2b774f7f3630da4bd592f61966fecade8b99b1" + integrity sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw== + dependencies: + "@types/mdast" "^3.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + +mdast-util-from-markdown@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-gfm-autolink-literal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz#67a13abe813d7eba350453a5333ae1bc0ec05c06" + integrity sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA== + dependencies: + "@types/mdast" "^3.0.0" + ccount "^2.0.0" + mdast-util-find-and-replace "^2.0.0" + micromark-util-character "^1.0.0" + +mdast-util-gfm-footnote@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz#ce5e49b639c44de68d5bf5399877a14d5020424e" + integrity sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + micromark-util-normalize-identifier "^1.0.0" + +mdast-util-gfm-strikethrough@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz#5470eb105b483f7746b8805b9b989342085795b7" + integrity sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm-table@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz#3552153a146379f0f9c4c1101b071d70bbed1a46" + integrity sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg== + dependencies: + "@types/mdast" "^3.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm-task-list-item@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz#b280fcf3b7be6fd0cc012bbe67a59831eb34097b" + integrity sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz#e92f4d8717d74bdba6de57ed21cc8b9552e2d0b6" + integrity sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg== + dependencies: + mdast-util-from-markdown "^1.0.0" + mdast-util-gfm-autolink-literal "^1.0.0" + mdast-util-gfm-footnote "^1.0.0" + mdast-util-gfm-strikethrough "^1.0.0" + mdast-util-gfm-table "^1.0.0" + mdast-util-gfm-task-list-item "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463" + integrity sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg== + dependencies: + "@types/mdast" "^3.0.0" + unist-util-is "^5.0.0" + +mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" + integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0, mdast-util-to-string@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -2203,6 +2682,279 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-extension-gfm-autolink-literal@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz#5853f0e579bbd8ef9e39a7c0f0f27c5a063a66e7" + integrity sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-extension-gfm-footnote@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz#05e13034d68f95ca53c99679040bc88a6f92fe2e" + integrity sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q== + dependencies: + micromark-core-commonmark "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-strikethrough@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz#c8212c9a616fa3bf47cb5c711da77f4fdc2f80af" + integrity sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-table@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz#dcb46074b0c6254c3fc9cc1f6f5002c162968008" + integrity sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-tagfilter@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz#aa7c4dd92dabbcb80f313ebaaa8eb3dac05f13a7" + integrity sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g== + dependencies: + micromark-util-types "^1.0.0" + +micromark-extension-gfm-task-list-item@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz#b52ce498dc4c69b6a9975abafc18f275b9dde9f4" + integrity sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz#e517e8579949a5024a493e49204e884aa74f5acf" + integrity sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ== + dependencies: + micromark-extension-gfm-autolink-literal "^1.0.0" + micromark-extension-gfm-footnote "^1.0.0" + micromark-extension-gfm-strikethrough "^1.0.0" + micromark-extension-gfm-table "^1.0.0" + micromark-extension-gfm-tagfilter "^1.0.0" + micromark-extension-gfm-task-list-item "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -2223,6 +2975,35 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.0, minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.0.0: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.3.tgz#05ea638da44e475037ed94d1c7efcc76a25e1974" + integrity sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg== + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -2248,11 +3029,23 @@ node-releases@^2.0.12: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== -normalize-path@^3.0.0: +nopt@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" + integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== + dependencies: + abbrev "^2.0.0" + +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -2336,6 +3129,16 @@ parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-json@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-6.0.2.tgz#6bf79c201351cc12d5d66eba48d5a097c13dc200" + integrity sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA== + dependencies: + "@babel/code-frame" "^7.16.0" + error-ex "^1.3.2" + json-parse-even-better-errors "^2.3.1" + lines-and-columns "^2.0.2" + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -2356,6 +3159,14 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -2366,7 +3177,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -2402,6 +3213,11 @@ pretty-format@^29.0.0, pretty-format@^29.5.0: ansi-styles "^5.0.0" react-is "^18.0.0" +proc-log@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== + prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -2410,6 +3226,13 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" +propose@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/propose/-/propose-0.0.5.tgz#48a065d9ec7d4c8667f4050b15c4a2d85dbca56b" + integrity sha512-Jary1vb+ap2DIwOGfyiadcK4x1Iu3pzpkDBy8tljFPmQvnc9ES3m1PMZOMiWOG50cfoAyYNtGeBzrp+Rlh4G9A== + dependencies: + levenshtein-edit-distance "^1.0.0" + punycode@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" @@ -2430,6 +3253,93 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +readable-stream@^3.0.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +remark-cli@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-11.0.0.tgz#302c15c5e73c0b422a6709f65adb74cac3b5eb53" + integrity sha512-8JEWwArXquRq1/In4Ftz7gSG9Scwb1ijT2/dEuBETW9omqhmMRxcfjZ3iKqrak3BnCJeZSXCdWEmPhFKC8+RUQ== + dependencies: + remark "^14.0.0" + unified-args "^10.0.0" + +remark-gfm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" + integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-gfm "^2.0.0" + micromark-extension-gfm "^2.0.0" + unified "^10.0.0" + +remark-parse@^10.0.0: + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" + integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + +remark-stringify@^10.0.0: + version "10.0.3" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.3.tgz#83b43f2445c4ffbb35b606f967d121b2b6d69717" + integrity sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.0.0" + unified "^10.0.0" + +remark-validate-links@^12.1.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/remark-validate-links/-/remark-validate-links-12.1.1.tgz#8c2060d547cdb5872bd443f8ce62e5a897ef8195" + integrity sha512-nk/CkcZ3u8QntoMCqZ+JzUzFub36E+mNFMMbYqqN+yQViUHbRLqirCG1qOI4E38RyKZ8abjFUv0JGB7skKa41A== + dependencies: + "@types/mdast" "^3.0.0" + github-slugger "^2.0.0" + hosted-git-info "^6.0.0" + mdast-util-to-string "^3.2.0" + propose "0.0.5" + to-vfile "^7.0.0" + trough "^2.0.0" + unified "^10.0.0" + unified-engine "^10.0.1" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + +remark@^14.0.0: + version "14.0.3" + resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.3.tgz#e477886a7579df612908f387c7753dc93cdaa3fc" + integrity sha512-bfmJW1dmR2LvaMJuAnE88pZP9DktIFYXazkTfOIKZzi3Knk9lT0roItIA24ydOucI3bV/g/tXBA6hzqq3FV9Ew== + dependencies: + "@types/mdast" "^3.0.0" + remark-parse "^10.0.0" + remark-stringify "^10.0.0" + unified "^10.0.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -2485,6 +3395,18 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -2514,6 +3436,11 @@ signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -2557,7 +3484,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -2566,13 +3493,36 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" @@ -2609,6 +3559,11 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" +supports-color@^9.0.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" + integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -2645,6 +3600,19 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +to-vfile@^7.0.0: + version "7.2.4" + resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-7.2.4.tgz#b97ecfcc15905ffe020bc975879053928b671378" + integrity sha512-2eQ+rJ2qGbyw3senPI0qjuM7aut8IYXK6AEoOWb+fJx/mQYzviTckm1wDjq91QYHAPBTYzmdJXxMFA6Mk14mdw== + dependencies: + is-buffer "^2.0.0" + vfile "^5.1.0" + +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -2679,11 +3647,110 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + typescript@^4.9.5: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +unified-args@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-10.0.0.tgz#95994c5558fea83ff07006cb560fd88cdcf31134" + integrity sha512-PqsqxwkXpGSLiMkbjNnKU33Ffm6gso6rAvz1TlBGzMBx3gpx7ewIhViBX8HEWmy0v7pebA5PM6RkRWWaYmtfYw== + dependencies: + "@types/text-table" "^0.2.0" + camelcase "^7.0.0" + chalk "^5.0.0" + chokidar "^3.0.0" + fault "^2.0.0" + json5 "^2.0.0" + minimist "^1.0.0" + text-table "^0.2.0" + unified-engine "^10.0.0" + +unified-engine@^10.0.0, unified-engine@^10.0.1: + version "10.1.0" + resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-10.1.0.tgz#6899f00d1f53ee9af94f7abd0ec21242aae3f56c" + integrity sha512-5+JDIs4hqKfHnJcVCxTid1yBoI/++FfF/1PFdSMpaftZZZY+qg2JFruRbf7PaIwa9KgLotXQV3gSjtY0IdcFGQ== + dependencies: + "@types/concat-stream" "^2.0.0" + "@types/debug" "^4.0.0" + "@types/is-empty" "^1.0.0" + "@types/node" "^18.0.0" + "@types/unist" "^2.0.0" + concat-stream "^2.0.0" + debug "^4.0.0" + fault "^2.0.0" + glob "^8.0.0" + ignore "^5.0.0" + is-buffer "^2.0.0" + is-empty "^1.0.0" + is-plain-obj "^4.0.0" + load-plugin "^5.0.0" + parse-json "^6.0.0" + to-vfile "^7.0.0" + trough "^2.0.0" + unist-util-inspect "^7.0.0" + vfile-message "^3.0.0" + vfile-reporter "^7.0.0" + vfile-statistics "^2.0.0" + yaml "^2.0.0" + +unified@^10.0.0: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + +unist-util-inspect@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-7.0.2.tgz#858e4f02ee4053f7c6ada8bc81662901a0ee1893" + integrity sha512-Op0XnmHUl6C2zo/yJCwhXQSm/SmW22eDZdWP2qdf4WpGrgO1ZxFodq+5zFyeRGasFjJotAnLgfuD1jkcKqiH1Q== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + update-browserslist-db@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" @@ -2699,6 +3766,21 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + v8-to-istanbul@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" @@ -2708,6 +3790,59 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" +vfile-message@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + +vfile-reporter@^7.0.0: + version "7.0.5" + resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-7.0.5.tgz#a0cbf3922c08ad428d6db1161ec64a53b5725785" + integrity sha512-NdWWXkv6gcd7AZMvDomlQbK3MqFWL1RlGzMn++/O2TI+68+nqxCPTvLugdOtfSzXmjh+xUyhp07HhlrbJjT+mw== + dependencies: + "@types/supports-color" "^8.0.0" + string-width "^5.0.0" + supports-color "^9.0.0" + unist-util-stringify-position "^3.0.0" + vfile "^5.0.0" + vfile-message "^3.0.0" + vfile-sort "^3.0.0" + vfile-statistics "^2.0.0" + +vfile-sort@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-3.0.1.tgz#4b06ec63e2946749b0bb514e736554cd75e441a2" + integrity sha512-1os1733XY6y0D5x0ugqSeaVJm9lYgj0j5qdcZQFyxlZOSy1jYarL77lLyb5gK4Wqr1d5OxmuyflSO3zKyFnTFw== + dependencies: + vfile "^5.0.0" + vfile-message "^3.0.0" + +vfile-statistics@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-2.0.1.tgz#2e1adae1cd3a45c1ed4f2a24bd103c3d71e4bce3" + integrity sha512-W6dkECZmP32EG/l+dp2jCLdYzmnDBIw6jwiLZSER81oR5AHRcVqL+k3Z+pfH1R73le6ayDkJRMk0sutj1bMVeg== + dependencies: + vfile "^5.0.0" + vfile-message "^3.0.0" + +vfile@^5.0.0, vfile@^5.1.0: + version "5.3.7" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + +walk-up-path@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" + integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== + walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -2722,7 +3857,7 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -2731,6 +3866,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -2759,6 +3903,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" @@ -2781,3 +3930,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==