From 538b1224e3d6d68bb8c40dd59f0298c7b555be39 Mon Sep 17 00:00:00 2001
From: santi100a <95766532+santi100a@users.noreply.github.com>
Date: Sat, 12 Aug 2023 18:07:51 -0500
Subject: [PATCH] feat: version 1.1.7
---
.github/dependabot.yml | 2 +-
.github/labeler.yml | 2 +-
.github/workflows/check-md-links.yml | 19 +
.github/workflows/ci.yml | 47 +-
.github/workflows/issue-welcome.yml | 1 +
.github/workflows/pr-build-failed.yml | 3 +-
.github/workflows/pr-check.yml | 120 ++-
.github/workflows/pr-welcome.yml | 25 -
.markdownlint.json | 5 +
.remarkrc.json | 6 +
CHANGELOG.md | 3 +
README.md | 73 +-
SECURITY.md | 2 +-
cjs/core.d.ts | 4 +-
cjs/index.d.ts | 38 +-
cjs/index.js | 58 +-
cjs/random-boolean.d.ts | 6 +-
cjs/random-boolean.js | 7 +-
cjs/random-date.d.ts | 6 +-
cjs/random-date.js | 17 +-
cjs/random-dates.d.ts | 6 +-
cjs/random-dates.js | 17 +-
cjs/random-float.d.ts | 16 +-
cjs/random-float.js | 16 +-
cjs/random-floats.d.ts | 6 +-
cjs/random-floats.js | 25 +-
cjs/random-from-array.d.ts | 8 +-
cjs/random-from-array.js | 28 +-
cjs/random-hex-color.d.ts | 8 +-
cjs/random-hex-color.js | 15 +-
cjs/random-integers.d.ts | 6 +-
cjs/random-integers.js | 38 +-
cjs/random-letter.d.ts | 6 +-
cjs/random-letter.js | 11 +-
cjs/random-letters.d.ts | 6 +-
cjs/random-letters.js | 11 +-
cjs/random-lower.d.ts | 6 +-
cjs/random-lower.js | 11 +-
cjs/random-lowers.d.ts | 6 +-
cjs/random-lowers.js | 11 +-
cjs/random-phone.d.ts | 17 +
cjs/random-phone.js | 23 +
cjs/random-phrase.d.ts | 8 +-
cjs/random-phrase.js | 11 +-
cjs/random-upper.d.ts | 6 +-
cjs/random-upper.js | 7 +-
cjs/random-uppers.d.ts | 6 +-
cjs/random-uppers.js | 7 +-
cjs/random-uuid.d.ts | 6 +-
cjs/random-uuid.js | 9 +-
cjs/random.d.ts | 16 +-
cjs/random.js | 13 +-
index.mjs | 2 +-
package.json | 99 +-
scripts/esm-wrapper.js | 18 +-
scripts/validate-diff.sh | 12 +
scripts/validate-package-json.js | 77 ++
src/core.ts | 4 +-
src/index.ts | 58 +-
src/random-boolean.ts | 6 +-
src/random-date.ts | 11 +-
src/random-dates.ts | 10 +-
src/random-float.ts | 22 +-
src/random-floats.ts | 17 +-
src/random-from-array.ts | 21 +-
src/random-hex-color.ts | 14 +-
src/random-integers.ts | 45 +-
src/random-letter.ts | 8 +-
src/random-letters.ts | 8 +-
src/random-lower.ts | 7 +-
src/random-lowers.ts | 7 +-
src/random-phone.ts | 43 +
src/random-phrase.ts | 12 +-
src/random-upper.ts | 5 +-
src/random-uppers.ts | 6 +-
src/random-uuid.ts | 7 +-
src/random.ts | 20 +-
tests/phone.test.js | 28 +
umd/index.js | 10 +-
umd/random-boolean.js | 3 +
umd/random-dates.js | 8 +-
umd/random-hex-color.js | 6 +-
umd/random-phone.js | 35 +
umd/random-phrase.js | 6 +-
umd/random-uuid.js | 2 +-
yarn.lock | 1210 ++++++++++++++++++++++++-
86 files changed, 2233 insertions(+), 444 deletions(-)
create mode 100644 .github/workflows/check-md-links.yml
delete mode 100644 .github/workflows/pr-welcome.yml
create mode 100644 .markdownlint.json
create mode 100644 .remarkrc.json
create mode 100644 cjs/random-phone.d.ts
create mode 100644 cjs/random-phone.js
create mode 100644 scripts/validate-diff.sh
create mode 100644 scripts/validate-package-json.js
create mode 100644 src/random-phone.ts
create mode 100644 tests/phone.test.js
create mode 100644 umd/random-phone.js
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/SECURITY.md b/SECURITY.md
index 0fca496..a23cc90 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -2,7 +2,7 @@
## Reporting a Vulnerability
-**First see the [Code of Conduct](CODE_OF_CONDUCT.md) and [Contribution instructions](CONTRIBUTE.md)!**
+**First see the [Code of Conduct](CODE_OF_CONDUCT.md) and [Contribution instructions](CONTRIBUTING.md)!**
If you believe you have discovered a security vulnerability in this project, please email me at . Please include a detailed description of the vulnerability and steps to reproduce it, along with any relevant information on the environment and configuration where the vulnerability was discovered. Please do not disclose the vulnerability publicly until it has been addressed by me.
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..1c619ff 100644
--- a/package.json
+++ b/package.json
@@ -1,50 +1,53 @@
{
- "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 .",
+ "validate-package-json": "node node scripts/validate-package-json.js"
+ },
+ "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==