diff --git a/.babelrc.json b/.babelrc.json
new file mode 100644
index 0000000..60cad8d
--- /dev/null
+++ b/.babelrc.json
@@ -0,0 +1,5 @@
+{
+ "presets": [
+ ["@babel/env", {"modules": false}]
+ ]
+}
\ No newline at end of file
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..53473c2
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,38 @@
+name: Deploy to GitHub Pages
+
+on:
+ push:
+ branches:
+ - master
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+jobs:
+ build-and-deploy:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: 16
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Build docs
+ run: pnpm run docs
+ - name: Copy example folder
+ run: cp -R example docs/example
+
+ - name: Deploy to GitHub Pages
+ uses: JamesIves/github-pages-deploy-action@4.1.1
+ with:
+ branch: gh-pages
+ folder: docs
\ No newline at end of file
diff --git a/.github/workflows/npm-beta-publish.yml b/.github/workflows/npm-beta-publish.yml
new file mode 100644
index 0000000..ac93958
--- /dev/null
+++ b/.github/workflows/npm-beta-publish.yml
@@ -0,0 +1,30 @@
+# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
+# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
+
+name: Publish Beta Package to npm.js
+
+on:
+ push:
+ branches:
+ - dev
+
+jobs:
+ publish-npm:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ id-token: write
+ steps:
+ - uses: actions/checkout@v2
+ - uses: pnpm/action-setup@v2.2.2
+ with:
+ version: 8.7.1
+ - run: pnpm install
+ - run: pnpm lint
+ - run: pnpm test
+ - run: pnpm build
+ - uses: JS-DevTools/npm-publish@v2
+ with:
+ token: ${{secrets.npm_token}}
+ provenance: true
+ tag: beta
\ No newline at end of file
diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml
index 1363357..1f2ae6b 100644
--- a/.github/workflows/npm-publish.yml
+++ b/.github/workflows/npm-publish.yml
@@ -6,25 +6,12 @@ name: Publish Package to npm.js
on:
release:
types: [published]
- push:
- branches:
- - master
+ repository_dispatch:
+ types: [publish-npm]
jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: pnpm/action-setup@v2.2.2
- with:
- version: 8.7.1
- - run: pnpm install
- - run: pnpm lint
- - run: pnpm test
- - run: pnpm build
publish-npm:
- needs: build
runs-on: ubuntu-latest
permissions:
contents: write
@@ -35,6 +22,8 @@ jobs:
with:
version: 8.7.1
- run: pnpm install
+ - run: pnpm lint
+ - run: pnpm test
- run: pnpm build
- uses: JS-DevTools/npm-publish@v2
with:
diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml
new file mode 100644
index 0000000..708b4c7
--- /dev/null
+++ b/.github/workflows/pr-test.yml
@@ -0,0 +1,57 @@
+name: PR Test
+
+on:
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ permissions:
+ checks: write
+ pull-requests: write
+ contents: write
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: 16
+
+ - uses: pnpm/action-setup@v2.2.2
+ with:
+ version: 8.7.1
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Run tests
+ run: pnpm test
+
+ - name: jest coverage report
+ uses: ArtiomTr/jest-coverage-report-action@v2.0-rc.6
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Check test status
+ id: test-status
+ run: echo "::set-output name=status::$(if grep -q 'Test failed' test-results.txt; then echo 'failure'; else echo 'success'; fi)"
+
+ merge:
+ needs: test
+ runs-on: ubuntu-latest
+ if: ${{ needs.test.outputs.status == 'success' }}
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Trigger npm-publish workflow
+ uses: peter-evans/repository-dispatch@v1
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ repository: ishiko732/ts-fsrs
+ event-type: publish-npm
diff --git a/README.md b/README.md
index 5f7cfc9..41fa081 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,8 @@
# About The
+[![ts-fsrs npm version](https://img.shields.io/npm/v/ts-fsrs.svg)](https://www.npmjs.com/package/ts-fsrs)
+[![ts-fsrs beta npm version](https://img.shields.io/npm/v/ts-fsrs/beta.svg)](https://www.npmjs.com/package/ts-fsrs)
+[![Build and Publish](https://github.com/ishiko732/ts-fsrs/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/ishiko732/ts-fsrs/actions/workflows/npm-publish.yml)
+[![Deploy](https://github.com/ishiko732/ts-fsrs/actions/workflows/deploy.yml/badge.svg)](https://github.com/ishiko732/ts-fsrs/actions/workflows/deploy.yml)
ts-fsrs is a TypeScript package used to implement the [Free Spaced Repetition Scheduler (FSRS) algorithm](https://github.com/open-spaced-repetition/free-spaced-repetition-scheduler). It helps
developers apply FSRS to their flashcard applications, there by improving the user learning experience.
@@ -7,15 +11,8 @@ developers apply FSRS to their flashcard applications, there by improving the us
```
npm install ts-fsrs
-```
-
-# Environment Variables
-If you need to customize default parameters, you can modify the values using `.env`/`.env.local`/`.env.production`/`.env.development`.
-
-Copy the [.env.local.example](./example/.env.local.example) file in this directory to .env.local (which will be ignored by Git):
-
-```bash
-cp .env.local.example .env.local
+yarn install ts-fsrs
+pnpm install ts-fsrs
```
# Example
@@ -51,7 +48,9 @@ Grades.forEach(grade => { // [Rating.Again, Rating.Hard, Rating.Good, Rating.Eas
});
```
-> More examples refer to the [Example](https://github.com/ishiko732/ts-fsrs/blob/master/example/index.ts)
+More examples refer:
+- [Browser](https://github.com/ishiko732/ts-fsrs/blob/master/example/example.html) (ts-fsrs package using CDN)
+- [Next.js+Prisma](https://github.com/ishiko732/ts-fsrs-demo)
# Basic Use
diff --git a/__tests__/FSRSV4.test.ts b/__tests__/FSRSV4.test.ts
index eebce69..7def0e7 100644
--- a/__tests__/FSRSV4.test.ts
+++ b/__tests__/FSRSV4.test.ts
@@ -4,6 +4,8 @@ import {
generatorParameters,
FSRS,
createEmptyCard,
+ State,
+ Grade,
Grades,
} from "../src/fsrs";
@@ -47,11 +49,12 @@ describe("FSRS V4 AC by py-fsrs", () => {
],
enable_fuzz: false,
});
+ const grade: Grade[] = [Rating.Again, Rating.Hard, Rating.Good, Rating.Easy];
it("ivl_history", () => {
let card = createEmptyCard();
let now = new Date(2022, 11, 29, 12, 30, 0, 0);
let scheduling_cards = f.repeat(card, now);
- const ratings = [
+ const ratings: Grade[] = [
Rating.Good,
Rating.Good,
Rating.Good,
@@ -68,6 +71,16 @@ describe("FSRS V4 AC by py-fsrs", () => {
];
const ivl_history: number[] = [];
for (const rating of ratings) {
+ for (const check of grade) {
+ const rollbackCard = f.rollback(
+ scheduling_cards[check].card,
+ scheduling_cards[check].log,
+ );
+ expect(rollbackCard).toEqual(card);
+ expect(scheduling_cards[check].log.elapsed_days).toEqual(
+ card.last_review ? now.diff(card.last_review as Date, "days") : 0,
+ );
+ }
card = scheduling_cards[rating].card;
const ivl = card.scheduled_days;
ivl_history.push(ivl);
@@ -79,4 +92,46 @@ describe("FSRS V4 AC by py-fsrs", () => {
0, 5, 16, 43, 106, 236, 0, 0, 12, 25, 47, 85, 147,
]);
});
+
+ it("first repeat", () => {
+ const card = createEmptyCard();
+ const now = new Date(2022, 11, 29, 12, 30, 0, 0);
+ const scheduling_cards = f.repeat(card, now);
+ const grades: Grade[] = [
+ Rating.Again,
+ Rating.Hard,
+ Rating.Good,
+ Rating.Easy,
+ ];
+
+ const stability: number[] = [];
+ const difficulty: number[] = [];
+ const elapsed_days: number[] = [];
+ const scheduled_days: number[] = [];
+ const reps: number[] = [];
+ const lapses: number[] = [];
+ const states: State[] = [];
+ for (const rating of grades) {
+ const first_card = scheduling_cards[rating].card;
+ stability.push(first_card.stability);
+ difficulty.push(first_card.difficulty);
+ reps.push(first_card.reps);
+ lapses.push(first_card.lapses);
+ elapsed_days.push(first_card.elapsed_days);
+ scheduled_days.push(first_card.scheduled_days);
+ states.push(first_card.state);
+ }
+ expect(stability).toEqual([1.14, 1.01, 5.44, 14.67]);
+ expect(difficulty).toEqual([8.4348, 6.8686, 5.3024, 3.7361999999999993]);
+ expect(reps).toEqual([1, 1, 1, 1]);
+ expect(lapses).toEqual([1, 0, 0, 0]);
+ expect(elapsed_days).toEqual([0, 0, 0, 0]);
+ expect(scheduled_days).toEqual([0, 0, 0, 15]);
+ expect(states).toEqual([
+ State.Learning,
+ State.Learning,
+ State.Learning,
+ State.Review,
+ ]);
+ });
});
diff --git a/__tests__/elapsed_days.test.ts b/__tests__/elapsed_days.test.ts
new file mode 100644
index 0000000..1368c28
--- /dev/null
+++ b/__tests__/elapsed_days.test.ts
@@ -0,0 +1,74 @@
+// Ref:https://github.com/ishiko732/ts-fsrs/issues/44
+
+import { fsrs, FSRS, createEmptyCard, Rating, Grade } from "../src/fsrs";
+
+describe("elapsed_days", () => {
+ const f: FSRS = fsrs();
+
+ const createDue = new Date(Date.UTC(2023, 9, 18, 14, 32, 3, 370));
+ const grades: Grade[] = [
+ Rating.Good,
+ Rating.Again,
+ Rating.Again,
+ Rating.Good,
+ ];
+ let currentLog = null;
+ let index = 0;
+ let card = createEmptyCard(createDue);
+ test("first repeat[Rating.Good]", () => {
+ const firstDue = new Date(Date.UTC(2023, 10, 5, 8, 27, 2, 605));
+ const sc = f.repeat(card, firstDue);
+ currentLog = sc[grades[index]].log;
+
+ expect(currentLog.elapsed_days).toEqual(0);
+ // console.log(sc[grades[index]].log)
+ card = sc[grades[index]].card;
+ // console.log(card)
+ index += 1;
+ });
+
+ test("second repeat[Rating.Again]", () => {
+ // 2023-11-08 15:02:09.791,4.93,2023-11-05 08:27:02.605
+ const secondDue = new Date(Date.UTC(2023, 10, 8, 15, 2, 9, 791));
+ expect(card).not.toBeNull()
+ const sc = f.repeat(card, secondDue);
+
+ currentLog = sc[grades[index]].log;
+ expect(currentLog.elapsed_days).toEqual(secondDue.diff(card.last_review as Date,'days')); // 3
+ expect(currentLog.elapsed_days).toEqual(3); // 0
+ card = sc[grades[index]].card;
+ // console.log(card)
+ // console.log(currentLog)
+ index += 1;
+ });
+
+ test("third repeat[Rating.Again]", () => {
+ // 2023-11-08 15:02:30.799,4.93,2023-11-08 15:02:09.791
+ const secondDue = new Date(Date.UTC(2023, 10, 8, 15, 2, 30, 799));
+ expect(card).not.toBeNull()
+ const sc = f.repeat(card, secondDue);
+
+ currentLog = sc[grades[index]].log;
+ expect(currentLog.elapsed_days).toEqual(secondDue.diff(card.last_review as Date,'days')); // 0
+ expect(currentLog.elapsed_days).toEqual(0); // 0
+ // console.log(currentLog);
+ card = sc[grades[index]].card;
+ // console.log(card);
+ index += 1;
+ });
+
+ test("fourth repeat[Rating.Good]", () => {
+ // 2023-11-08 15:04:08.739,4.93,2023-11-08 15:02:30.799
+ const secondDue = new Date(Date.UTC(2023, 10, 8, 15, 4, 8, 739));
+ expect(card).not.toBeNull()
+ const sc = f.repeat(card, secondDue);
+
+ currentLog = sc[grades[index]].log;
+ expect(currentLog.elapsed_days).toEqual(secondDue.diff(card.last_review as Date,'days')); // 0
+ expect(currentLog.elapsed_days).toEqual(0); // 0
+ // console.log(currentLog);
+ card = sc[grades[index]].card;
+ // console.log(card);
+ index += 1;
+ })
+});
diff --git a/__tests__/forget.test.ts b/__tests__/forget.test.ts
new file mode 100644
index 0000000..cc59163
--- /dev/null
+++ b/__tests__/forget.test.ts
@@ -0,0 +1,60 @@
+import { createEmptyCard, fsrs, FSRS, Rating } from "../src/fsrs";
+import { Grade } from "../src/fsrs/models";
+
+describe("FSRS forget", () => {
+ const f: FSRS = fsrs({
+ w: [
+ 1.14, 1.01, 5.44, 14.67, 5.3024, 1.5662, 1.2503, 0.0028, 1.5489, 0.1763,
+ 0.9953, 2.7473, 0.0179, 0.3105, 0.3976, 0.0, 2.0902,
+ ],
+ enable_fuzz: false,
+ });
+ it("forget", () => {
+ const card = createEmptyCard();
+ const now = new Date(2022, 11, 29, 12, 30, 0, 0);
+ const forget_now = new Date(2023, 11, 30, 12, 30, 0, 0);
+ const scheduling_cards = f.repeat(card, now);
+ const grades: Grade[] = [
+ Rating.Again,
+ Rating.Hard,
+ Rating.Good,
+ Rating.Easy,
+ ];
+ for (const grade of grades) {
+ const forgetCard = f.forget(
+ scheduling_cards[grade].card,
+ forget_now,
+ true,
+ );
+ expect(forgetCard.card).toEqual({
+ ...card,
+ due: forget_now,
+ lapses: 0,
+ reps: 0,
+ last_review: scheduling_cards[grade].card.last_review,
+ });
+ expect(forgetCard.log.rating).toEqual(Rating.Manual);
+ expect(() => f.rollback(forgetCard.card, forgetCard.log)).toThrowError(
+ "Cannot rollback a manual rating",
+ );
+ }
+ for (const grade of grades) {
+ const forgetCard = f.forget(
+ scheduling_cards[grade].card,
+ forget_now,
+ false,
+ );
+ expect(forgetCard.card).toEqual({
+ ...card,
+ due: forget_now,
+ lapses: scheduling_cards[grade].card.lapses,
+ reps: scheduling_cards[grade].card.reps,
+ last_review: scheduling_cards[grade].card.last_review,
+ });
+ expect(forgetCard.log.rating).toEqual(Rating.Manual);
+ expect(() => f.rollback(forgetCard.card, forgetCard.log)).toThrowError(
+ "Cannot rollback a manual rating",
+ );
+ }
+ });
+});
diff --git a/__tests__/models.test.ts b/__tests__/models.test.ts
index 688ac3b..539b8f7 100644
--- a/__tests__/models.test.ts
+++ b/__tests__/models.test.ts
@@ -1,5 +1,4 @@
import {
- envParams,
Rating,
RatingType,
State,
@@ -77,30 +76,23 @@ describe("Rating", () => {
});
describe("default FSRSParameters", () => {
- const env = envParams;
+ // const env = envParams;
const params = generatorParameters();
const w_v4 = [
0.4, 0.6, 2.4, 5.8, 4.93, 0.94, 0.86, 0.01, 1.49, 0.14, 0.94, 2.18, 0.05,
0.34, 1.26, 0.29, 2.61,
];
it("default_request_retention", () => {
- expect([0.9, env.FSRS_REQUEST_RETENTION]).toContainEqual(
- params.request_retention,
- );
+ expect(0.9).toEqual(params.request_retention);
});
it("default_maximum_interval", () => {
- expect([36500, env.FSRS_MAXIMUM_INTERVAL]).toContainEqual(
- params.maximum_interval,
- );
+ expect(36500).toEqual(params.maximum_interval);
});
it("default_w ", () => {
- expect([w_v4, env.FSRS_W]).toContainEqual(params.w);
- if (env.FSRS_W) {
- expect(env.FSRS_W.length).toEqual(w_v4.length);
- }
+ expect(w_v4).toEqual(params.w);
});
it("default_enable_fuzz ", () => {
- expect([false, env.FSRS_ENABLE_FUZZ]).toContainEqual(params.enable_fuzz);
+ expect(false).toEqual(params.enable_fuzz);
});
});
diff --git a/__tests__/rollback.test.ts b/__tests__/rollback.test.ts
new file mode 100644
index 0000000..7d523d3
--- /dev/null
+++ b/__tests__/rollback.test.ts
@@ -0,0 +1,41 @@
+import {createEmptyCard, fsrs, FSRS, Grade, Rating} from "../src/fsrs";
+
+describe("FSRS rollback", () => {
+ const f: FSRS = fsrs({
+ w: [
+ 1.14, 1.01, 5.44, 14.67, 5.3024, 1.5662, 1.2503, 0.0028, 1.5489, 0.1763,
+ 0.9953, 2.7473, 0.0179, 0.3105, 0.3976, 0.0, 2.0902,
+ ],
+ enable_fuzz: false,
+ });
+ it("first rollback", () => {
+ const card = createEmptyCard();
+ const now = new Date(2022, 11, 29, 12, 30, 0, 0);
+ const scheduling_cards = f.repeat(card, now);
+ const grade:Grade[] = [Rating.Again, Rating.Hard, Rating.Good, Rating.Easy];
+ for (const rating of grade) {
+ const rollbackCard = f.rollback(
+ scheduling_cards[rating].card,
+ scheduling_cards[rating].log,
+ );
+ expect(rollbackCard).toEqual(card);
+ }
+ });
+
+ it("rollback 2", () => {
+ let card = createEmptyCard();
+ let now = new Date(2022, 11, 29, 12, 30, 0, 0);
+ let scheduling_cards = f.repeat(card, now);
+ card = scheduling_cards["4"].card;
+ now = card.due;
+ scheduling_cards = f.repeat(card, now);
+ const grade:Grade[] = [Rating.Again, Rating.Hard, Rating.Good,Rating.Easy];
+ for (const rating of grade) {
+ const rollbackCard = f.rollback(
+ scheduling_cards[rating].card,
+ scheduling_cards[rating].log,
+ );
+ expect(rollbackCard).toEqual(card);
+ }
+ });
+});
diff --git a/example/.env.local.example b/example/.env.local.example
deleted file mode 100644
index 0f17ba4..0000000
--- a/example/.env.local.example
+++ /dev/null
@@ -1,4 +0,0 @@
-FSRS_REQUEST_RETENTION=0.8
-FSRS_MAXIMUM_INTERVAL=36500
-FSRS_W='[0.4, 0.6, 2.4, 5.8, 4.93, 0.94, 0.86, 0.01, 1.49, 0.14, 0.94, 2.18, 0.05, 0.34, 1.26, 0.29, 2.61]'
-FSRS_ENABLE_FUZZ=true
\ No newline at end of file
diff --git a/example/example.html b/example/example.html
new file mode 100644
index 0000000..65ac543
--- /dev/null
+++ b/example/example.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+ TS-FSRS example
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/example.jsx b/example/example.jsx
new file mode 100644
index 0000000..9f95c80
--- /dev/null
+++ b/example/example.jsx
@@ -0,0 +1,20 @@
+/* eslint-disable no-undef */
+const { generatorParameters, fsrs, createEmptyCard, State, Rating } = tsfsrs
+
+const App = ({ cardRecord, logRecord }) => {
+ const [cards, setCards] = React.useState(cardRecord || [])
+ const [logs, setLogs] = React.useState(logRecord || [])
+ const f = fsrs(generatorParameters())
+ return
+ Current TS-FSRS Version:{tsfsrs.FSRSVersion}
+ Example
+
+
+
+
+
+
+ ;
+};
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render();
\ No newline at end of file
diff --git a/example/example.ts b/example/example.ts
deleted file mode 100644
index 53b88aa..0000000
--- a/example/example.ts
+++ /dev/null
@@ -1,188 +0,0 @@
-// noinspection UnnecessaryLocalVariableJS,DuplicatedCode
-
-import {Card, createEmptyCard, fsrs, FSRSParameters, generatorParameters, Rating, ReviewLog} from "ts-fsrs";
-
-interface example {
- card: Card;
- log: ReviewLog;
-}
-
-const generatorExample1 = (fsrsParameter?: FSRSParameters): example[] => {
- // new -> again -> hard -> good -> easy -> easy
- const params = generatorParameters(fsrsParameter);
- const f = fsrs(params);
- let card = createEmptyCard()
- let now = new Date("2023-10-10 10:00:00");
- let scheduling_cards = f.repeat(card, now)
- const again = scheduling_cards[Rating.Again];
-
- card = again.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const hard = scheduling_cards[Rating.Hard]
- card = hard.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const good = scheduling_cards[Rating.Good]
-
- card = good.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const easy1 = scheduling_cards[Rating.Easy]
-
- card = easy1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const easy2 = scheduling_cards[Rating.Easy]
-
- const data = [again, hard, good, easy1, easy2]
- // data.forEach(item=> print_scheduling_card(item))
- return data;
-}
-
-
-const generatorExample2 = (fsrsParameter?: FSRSParameters): example[] => {
- // new -> hard -> good->again->easy->easy->good->hard->hard
- const params = generatorParameters(fsrsParameter);
- const f = fsrs(params);
- let card = createEmptyCard()
- let now = new Date("2023-10-10 10:00:00");
- let scheduling_cards = f.repeat(card, now);
- const hard1 = scheduling_cards[Rating.Hard];
-
- card = hard1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const good1 = scheduling_cards[Rating.Good];
-
- card = good1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const again = scheduling_cards[Rating.Again];
-
- card = again.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const easy1 = scheduling_cards[Rating.Easy];
-
- card = easy1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const easy2 = scheduling_cards[Rating.Easy];
-
- card = easy2.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const good2 = scheduling_cards[Rating.Good];
-
- card = good2.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const hard2 = scheduling_cards[Rating.Hard];
-
- card = hard2.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const hard3 = scheduling_cards[Rating.Hard];
-
- const data = [hard1, good1, again, easy1, easy2, good2, hard2, hard3];
- return data;
-};
-
-const generatorExample3 = (fsrsParameter?: FSRSParameters): example[] => {
- // new -> good -> good->again->easy->hard->good->again->good
- const params = generatorParameters(fsrsParameter);
- const f = fsrs(params);
- let card = createEmptyCard()
- let now = new Date("2023-10-10 10:00:00");
- let scheduling_cards = f.repeat(card, now);
- const good1 = scheduling_cards[Rating.Good];
-
- card = good1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const good2 = scheduling_cards[Rating.Good];
-
- card = good2.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const again1 = scheduling_cards[Rating.Again];
-
- card = again1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const easy1 = scheduling_cards[Rating.Easy];
-
- card = easy1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const hard = scheduling_cards[Rating.Hard];
-
- card = hard.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const good3 = scheduling_cards[Rating.Good];
-
- card = good3.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const again2 = scheduling_cards[Rating.Again];
-
- card = again2.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const good4 = scheduling_cards[Rating.Good];
-
- const data = [good1, good2, again1, easy1, hard, good3, again2, good4];
- return data;
-};
-
-const generatorExample4 = (fsrsParameter?: FSRSParameters): example[] => {
- // new -> easy -> good->again->easy->hard->good->hard->good
- const params = generatorParameters(fsrsParameter);
- const f = fsrs(params);
- let card = createEmptyCard()
- let now = new Date("2023-10-10 10:00:00");
- let scheduling_cards = f.repeat(card, now);
- const easy1 = scheduling_cards[Rating.Easy];
-
- card = easy1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const good1 = scheduling_cards[Rating.Good];
-
- card = good1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const again1 = scheduling_cards[Rating.Again];
-
- card = again1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const easy2 = scheduling_cards[Rating.Easy];
-
- card = easy2.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const hard1 = scheduling_cards[Rating.Hard];
-
- card = hard1.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const good2 = scheduling_cards[Rating.Good];
-
- card = good2.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const hard2 = scheduling_cards[Rating.Hard];
-
- card = hard2.card;
- now = card.due;
- scheduling_cards = f.repeat(card, now);
- const good3 = scheduling_cards[Rating.Good];
-
- const data = [easy1, good1, again1, easy2, hard2, good2, hard2, good3];
- return data;
-};
-
-export {example, generatorExample1, generatorExample2, generatorExample3, generatorExample4}
\ No newline at end of file
diff --git a/example/exampleComponent.jsx b/example/exampleComponent.jsx
new file mode 100644
index 0000000..306274e
--- /dev/null
+++ b/example/exampleComponent.jsx
@@ -0,0 +1,109 @@
+const { State, Rating,createEmptyCard,generatorParameters } = tsfsrs
+
+const ExampleCard = ({ cardRecord, f, className }) => {
+ return
+
+
+ index |
+ due |
+ state |
+ last_review |
+ stability |
+ difficulty |
+ R |
+ elapsed_days |
+ scheduled_days |
+ reps |
+ lapses |
+
+
+
+ {cardRecord.map((record, index) =>
+ {index + 1} |
+ {record.due.toLocaleString()} |
+ {`${record.state}(${State[record.state]})`} |
+ {record.last_review.toLocaleString()} |
+ {record.stability.toFixed(2)} |
+ {record.difficulty.toFixed(2)} |
+ {f.get_retrievability(record, record.due) || '/'} |
+ {record.elapsed_days} |
+ {record.scheduled_days} |
+ {record.reps} |
+ {record.lapses} |
+
)}
+
+
+
+
+}
+
+const ExampleLog = ({ logRecord, className }) => {
+ return
+
+
+ # |
+ rating |
+ state |
+ due |
+ elapsed_days |
+ scheduled_days |
+ review |
+
+
+
+ {logRecord.map((record) =>
+ {'=>'} |
+ {`${record.rating}(${Rating[record.rating]})`} |
+ {`${record.state}(${State[record.state]})`} |
+ {record.due.toLocaleString()} |
+ {record.elapsed_days} |
+ {record.scheduled_days} |
+ {record.review.toLocaleString()} |
+
)}
+
+
+
+
+}
+
+const ScheduledButton = ({ rating, children, handleClick }) => {
+ return
+}
+
+const ExampleGenerator = ({ f, cards, setCards, setLogs, className }) => {
+ const [review, setReview] = React.useState(new Date())
+ React.useEffect(() => {
+ if (cards.length > 0) {
+ setReview(cards[cards.length - 1].due)
+ }
+ }, [cards])
+ const handleClick = (e, rating) => {
+ console.log(Rating[rating])
+ const preCard = cards.length>0?cards[cards.length - 1]:createEmptyCard(new Date())
+ const scheduling_cards = f.repeat(preCard, preCard.due);
+ console.log(scheduling_cards)
+ setCards(pre => [...pre, scheduling_cards[rating].card])
+ setLogs(pre => [...pre, scheduling_cards[rating].log])
+ }
+ return
+
Again
+
Hard
+
Good
+
Easy
+
Next review:{review.toLocaleString()}
+
+
+}
+
+
+const DefaultParams = () => {
+ const defaultParams = generatorParameters()
+ return
+
Default:
+ {Object.keys(defaultParams).map(key =>
{`${key}:${defaultParams[key]}`}
)}
+
+}
\ No newline at end of file
diff --git a/example/index.ts b/example/index.ts
deleted file mode 100644
index 21fa709..0000000
--- a/example/index.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import {
- fsrs, FSRSVersion, generatorParameters, int,
- Rating,
- State
-} from 'ts-fsrs';
-import {example, generatorExample1, generatorExample2, generatorExample3, generatorExample4} from "./example";
-import seedrandom from 'seedrandom';
-const f=fsrs()
-
-const random_diff=(diff:number)=>{
- const generator = seedrandom(new Date().getTime().toString());
- const fuzz_factor = generator();
- const max_ivl = Math.max(2,diff*0.95-1);
- const min_ivl = diff*1.05+1
- return Math.floor(fuzz_factor * (max_ivl - min_ivl + 1) + min_ivl) as int;
-}
-
-const print_scheduling_card = (item: example) => {
- const diff_day = item.card.due.diff(item.card.last_review as Date,'days')
- const random_day = diff_day==0? 0 as int: random_diff(diff_day)
- console.group(`${Rating[item.log.rating]}`);
- console.table({
- [`${Rating[item.log.rating]}.card:`]: {
- ...item.card,
- due: item.card.due.format(),
- state:`${item.card.state}(${State[item.card.state]})`,
- last_review: item.card.last_review? item.card.last_review.format():"",
- diff: item.card.due.dueFormat(item.card.last_review as Date, true),
- R:f.get_retrievability(item.card,(item.card.last_review as Date).scheduler(random_day,true)),
- Random_Day:random_day==0? 'N/A': random_day+'day'
- }
- });
- console.table({
- [`${Rating[item.log.rating]}.review_log`]:{
- ...item.log,
- rating:`${item.log.rating}(${Rating[item.log.rating]})`,
- state:`${item.log.state}(${State[item.log.state]})`,
- review: item.log.review.format(),
- }
- })
- console.groupEnd();
- console.log('----------------------------------------------------------------')
-}
-
-
-const test = () => {
- generatorExample1().forEach(item => print_scheduling_card(item));
- console.log("------------");
- generatorExample2().forEach(item => print_scheduling_card(item));
- console.log("------------");
- generatorExample3().forEach(item => print_scheduling_card(item));
- console.log("------------");
- generatorExample4().forEach(item => print_scheduling_card(item));
-}
-
-console.log(`FSRSVersion:${FSRSVersion}`)
-console.log('defaultParams',generatorParameters())
-test()
\ No newline at end of file
diff --git a/example/package.json b/example/package.json
deleted file mode 100644
index e9e5947..0000000
--- a/example/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "example",
- "version": "1.0.0",
- "private": true,
- "main": "index.js",
- "scripts": {
- "dev": "ts-node index.ts"
- },
- "dependencies": {
- "ts-fsrs": "file:.yalc/ts-fsrs"
- },
- "devDependencies": {
- "ts-node": "^10.9.1"
- },
- "keywords": [
- "example"
- ],
- "author": "ishiko",
- "license": "ISC"
-}
diff --git a/jest.config.js b/jest.config.js
index 2c93c8f..356c1c3 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -1,9 +1,9 @@
-/** @type {import('ts-jest').JestConfigWithTsJest} */
-module.exports = {
- preset: 'ts-jest',
- testEnvironment: 'node',
- testMatch: [
- '**/__tests__/*.js?(x)',
- '**/__tests__/*.ts?(x)',
- ],
+/** @type {import('ts-jest').JestConfigWithTsJest} */
+export default {
+ preset: 'ts-jest',
+ testEnvironment: 'node',
+ testMatch: [
+ '**/__tests__/*.js?(x)',
+ '**/__tests__/*.ts?(x)',
+ ],
};
\ No newline at end of file
diff --git a/package.json b/package.json
index b807677..6fefbf1 100644
--- a/package.json
+++ b/package.json
@@ -1,46 +1,64 @@
{
"name": "ts-fsrs",
- "version": "3.0.6",
+ "version": "3.1.0",
"description": "ts-fsrs is a TypeScript package used to implement the Free Spaced Repetition Scheduler (FSRS) algorithm. It helps developers apply FSRS to their flashcard applications, thereby improving the user learning experience.",
- "main": "dist/index.js",
+ "main": "dist/ts-fsrs.js",
+ "module": "dist/ts-fsrs.mjs",
+ "browser": "dist/ts-fsrs.umd.js",
"types": "dist/index.d.ts",
+ "type": "module",
"keywords": [
"SuperMemo",
"Anki",
"FSRS"
],
"dependencies": {
- "dotenv": "^16.3.1",
"seedrandom": "^3.0.5"
},
"devDependencies": {
- "@types/jest": "^29.5.5",
- "@types/node": "^20.6.2",
- "@types/seedrandom": "^3.0.5",
- "@typescript-eslint/eslint-plugin": "^6.7.0",
- "@typescript-eslint/parser": "^6.7.0",
- "eslint": "^8.44.0",
+ "@babel/core": "^7.23.3",
+ "@babel/preset-env": "^7.23.3",
+ "@rollup/plugin-alias": "^5.0.1",
+ "@rollup/plugin-babel": "^6.0.4",
+ "@rollup/plugin-commonjs": "^25.0.7",
+ "@rollup/plugin-json": "^6.0.1",
+ "@rollup/plugin-terser": "^0.4.4",
+ "@types/jest": "^29.5.8",
+ "@types/node": "^20.9.1",
+ "@types/seedrandom": "^3.0.8",
+ "@typescript-eslint/eslint-plugin": "^6.11.0",
+ "@typescript-eslint/parser": "^6.11.0",
+ "eslint": "^8.53.0",
"eslint-config-prettier": "^9.0.0",
"jest": "^29.7.0",
- "prettier": "^3.0.3",
+ "prettier": "^3.1.0",
+ "rimraf": "^5.0.5",
+ "rollup": "^4.4.1",
+ "rollup-plugin-typescript2": "^0.36.0",
"ts-jest": "^29.1.1",
- "ts-node": "^10.9.1",
- "typescript": "^5.1.6"
+ "tslib": "^2.6.2",
+ "typedoc": "^0.25.3",
+ "typescript": "^5.2.2"
},
"scripts": {
"lint": "eslint --fix src/ && prettier --write src/",
- "dev": "ts-node src/fsrs/index.ts",
+ "dev": "rollup -c -w",
"test": "jest --passWithNoTests",
- "build": "tsc --project ./tsconfig.json",
+ "prebuild": "rimraf ./dist",
+ "build": "rollup --c ",
+ "build:types": "tsc --project ./tsconfig.json --declaration true",
"major": "npm version major",
"minor": "npm version minor",
"patch": "npm version patch",
- "test_publish": "yalc publish"
+ "test_publish": "yalc publish",
+ "predocs": "rimraf ./docs",
+ "docs": "typedoc src/fsrs --out docs",
+ "clean": "rimraf ./dist ./docs"
},
"author": "ishiko",
"license": "MIT",
"files": [
- "dist/**/*",
+ "dist",
"README.md",
"LICENSE"
],
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ae4b9c1..98c5208 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,50 +5,80 @@ settings:
excludeLinksFromLockfile: false
dependencies:
- dotenv:
- specifier: ^16.3.1
- version: 16.3.1
seedrandom:
specifier: ^3.0.5
version: 3.0.5
devDependencies:
+ '@babel/core':
+ specifier: ^7.23.3
+ version: 7.23.3
+ '@babel/preset-env':
+ specifier: ^7.23.3
+ version: 7.23.3(@babel/core@7.23.3)
+ '@rollup/plugin-alias':
+ specifier: ^5.0.1
+ version: 5.0.1(rollup@4.5.0)
+ '@rollup/plugin-babel':
+ specifier: ^6.0.4
+ version: 6.0.4(@babel/core@7.23.3)(rollup@4.5.0)
+ '@rollup/plugin-commonjs':
+ specifier: ^25.0.7
+ version: 25.0.7(rollup@4.5.0)
+ '@rollup/plugin-json':
+ specifier: ^6.0.1
+ version: 6.0.1(rollup@4.5.0)
+ '@rollup/plugin-terser':
+ specifier: ^0.4.4
+ version: 0.4.4(rollup@4.5.0)
'@types/jest':
- specifier: ^29.5.5
- version: 29.5.5
+ specifier: ^29.5.8
+ version: 29.5.8
'@types/node':
- specifier: ^20.6.2
- version: 20.6.2
+ specifier: ^20.9.1
+ version: 20.9.1
'@types/seedrandom':
- specifier: ^3.0.5
- version: 3.0.5
+ specifier: ^3.0.8
+ version: 3.0.8
'@typescript-eslint/eslint-plugin':
- specifier: ^6.7.0
- version: 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.44.0)(typescript@5.1.6)
+ specifier: ^6.11.0
+ version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.2.2)
'@typescript-eslint/parser':
- specifier: ^6.7.0
- version: 6.7.0(eslint@8.44.0)(typescript@5.1.6)
+ specifier: ^6.11.0
+ version: 6.11.0(eslint@8.54.0)(typescript@5.2.2)
eslint:
- specifier: ^8.44.0
- version: 8.44.0
+ specifier: ^8.53.0
+ version: 8.54.0
eslint-config-prettier:
specifier: ^9.0.0
- version: 9.0.0(eslint@8.44.0)
+ version: 9.0.0(eslint@8.54.0)
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.6.2)(ts-node@10.9.1)
+ version: 29.7.0(@types/node@20.9.1)
prettier:
- specifier: ^3.0.3
- version: 3.0.3
+ specifier: ^3.1.0
+ version: 3.1.0
+ rimraf:
+ specifier: ^5.0.5
+ version: 5.0.5
+ rollup:
+ specifier: ^4.4.1
+ version: 4.5.0
+ rollup-plugin-typescript2:
+ specifier: ^0.36.0
+ version: 0.36.0(rollup@4.5.0)(typescript@5.2.2)
ts-jest:
specifier: ^29.1.1
- version: 29.1.1(@babel/core@7.22.19)(jest@29.7.0)(typescript@5.1.6)
- ts-node:
- specifier: ^10.9.1
- version: 10.9.1(@types/node@20.6.2)(typescript@5.1.6)
+ version: 29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.2.2)
+ tslib:
+ specifier: ^2.6.2
+ version: 2.6.2
+ typedoc:
+ specifier: ^0.25.3
+ version: 0.25.3(typescript@5.2.2)
typescript:
- specifier: ^5.1.6
- version: 5.1.6
+ specifier: ^5.2.2
+ version: 5.2.2
packages:
@@ -62,37 +92,37 @@ packages:
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.19
+ '@jridgewell/trace-mapping': 0.3.20
dev: true
/@babel/code-frame@7.22.13:
resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/highlight': 7.22.13
+ '@babel/highlight': 7.22.20
chalk: 2.4.2
dev: true
- /@babel/compat-data@7.22.9:
- resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==}
+ /@babel/compat-data@7.23.3:
+ resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/core@7.22.19:
- resolution: {integrity: sha512-Q8Yj5X4LHVYTbLCKVz0//2D2aDmHF4xzCdEttYvKOnWvErGsa6geHXD6w46x64n5tP69VfeH+IfSrdyH3MLhwA==}
+ /@babel/core@7.23.3:
+ resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.2.1
'@babel/code-frame': 7.22.13
- '@babel/generator': 7.22.15
+ '@babel/generator': 7.23.3
'@babel/helper-compilation-targets': 7.22.15
- '@babel/helper-module-transforms': 7.22.19(@babel/core@7.22.19)
- '@babel/helpers': 7.22.15
- '@babel/parser': 7.22.16
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3)
+ '@babel/helpers': 7.23.2
+ '@babel/parser': 7.23.3
'@babel/template': 7.22.15
- '@babel/traverse': 7.23.2
- '@babel/types': 7.22.19
- convert-source-map: 1.9.0
+ '@babel/traverse': 7.23.3
+ '@babel/types': 7.23.3
+ convert-source-map: 2.0.0
debug: 4.3.4
gensync: 1.0.0-beta.2
json5: 2.2.3
@@ -101,44 +131,88 @@ packages:
- supports-color
dev: true
- /@babel/generator@7.22.15:
- resolution: {integrity: sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==}
+ /@babel/generator@7.23.3:
+ resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.22.19
+ '@babel/types': 7.23.3
'@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.19
+ '@jridgewell/trace-mapping': 0.3.20
jsesc: 2.5.2
dev: true
- /@babel/generator@7.23.0:
- resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==}
+ /@babel/helper-annotate-as-pure@7.22.5:
+ resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.0
- '@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.19
- jsesc: 2.5.2
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
+ resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.23.3
dev: true
/@babel/helper-compilation-targets@7.22.15:
resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/compat-data': 7.22.9
+ '@babel/compat-data': 7.23.3
'@babel/helper-validator-option': 7.22.15
- browserslist: 4.21.10
+ browserslist: 4.22.1
lru-cache: 5.1.1
semver: 6.3.1
dev: true
- /@babel/helper-environment-visitor@7.22.20:
- resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
+ /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3):
+ resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-member-expression-to-functions': 7.23.0
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ semver: 6.3.1
+ dev: true
+
+ /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.3):
+ resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-annotate-as-pure': 7.22.5
+ regexpu-core: 5.3.2
+ semver: 6.3.1
+ dev: true
+
+ /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ debug: 4.3.4
+ lodash.debounce: 4.0.8
+ resolve: 1.22.8
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /@babel/helper-environment-visitor@7.22.5:
- resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==}
+ /@babel/helper-environment-visitor@7.22.20:
+ resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
engines: {node: '>=6.9.0'}
dev: true
@@ -147,239 +221,1036 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.22.15
- '@babel/types': 7.23.0
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/helper-hoist-variables@7.22.5:
+ resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/helper-member-expression-to-functions@7.23.0:
+ resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/helper-module-imports@7.22.15:
+ resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/helper-validator-identifier': 7.22.20
+ dev: true
+
+ /@babel/helper-optimise-call-expression@7.22.5:
+ resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/helper-plugin-utils@7.22.5:
+ resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.3):
+ resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-wrap-function': 7.22.20
+ dev: true
+
+ /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3):
+ resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-member-expression-to-functions': 7.23.0
+ '@babel/helper-optimise-call-expression': 7.22.5
+ dev: true
+
+ /@babel/helper-simple-access@7.22.5:
+ resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
+ resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/helper-split-export-declaration@7.22.6:
+ resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/helper-string-parser@7.22.5:
+ resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-identifier@7.22.20:
+ resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-option@7.22.15:
+ resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-wrap-function@7.22.20:
+ resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-function-name': 7.23.0
+ '@babel/template': 7.22.15
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/helpers@7.23.2:
+ resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.22.15
+ '@babel/traverse': 7.23.3
+ '@babel/types': 7.23.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/highlight@7.22.20:
+ resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.22.20
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ dev: true
+
+ /@babel/parser@7.23.3:
+ resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.23.3
+ dev: true
+
+ /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.13.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3)
+ dev: true
+
+ /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3):
+ resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ dev: true
+
+ /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3):
+ resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3):
+ resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.3):
+ resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3):
+ resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3):
+ resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3):
+ resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.3):
+ resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3):
+ resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3):
+ resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3)
+ dev: true
+
+ /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3)
+ dev: true
+
+ /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-class-static-block@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.12.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3)
+ dev: true
+
+ /@babel/plugin-transform-classes@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3)
+ '@babel/helper-split-export-declaration': 7.22.6
+ globals: 11.12.0
+ dev: true
+
+ /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/template': 7.22.15
+ dev: true
+
+ /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-dynamic-import@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3)
+ dev: true
+
+ /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-export-namespace-from@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3)
+ dev: true
+
+ /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3)
+ dev: true
+
+ /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3)
dev: true
- /@babel/helper-hoist-variables@7.22.5:
- resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
+ /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
dependencies:
- '@babel/types': 7.23.0
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/helper-module-imports@7.22.15:
- resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
+ /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
dependencies:
- '@babel/types': 7.22.19
+ '@babel/core': 7.23.3
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/helper-module-transforms@7.22.19(@babel/core@7.22.19):
- resolution: {integrity: sha512-m6h1cJvn+OJ+R3jOHp30faq5xKJ7VbjwDj5RGgHuRlU9hrMeKsGC+JpihkR5w1g7IfseCPPtZ0r7/hB4UKaYlA==}
+ /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.0.0
+ '@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
- '@babel/helper-environment-visitor': 7.22.5
- '@babel/helper-module-imports': 7.22.15
+ '@babel/core': 7.23.3
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3)
+ '@babel/helper-plugin-utils': 7.22.5
'@babel/helper-simple-access': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
- '@babel/helper-validator-identifier': 7.22.19
dev: true
- /@babel/helper-plugin-utils@7.22.5:
- resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
+ /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.20
dev: true
- /@babel/helper-simple-access@7.22.5:
- resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
+ /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
dependencies:
- '@babel/types': 7.22.19
+ '@babel/core': 7.23.3
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/helper-split-export-declaration@7.22.6:
- resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
+ /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.3):
+ resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
dependencies:
- '@babel/types': 7.23.0
+ '@babel/core': 7.23.3
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/helper-string-parser@7.22.5:
- resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
+ /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/helper-validator-identifier@7.22.19:
- resolution: {integrity: sha512-Tinq7ybnEPFFXhlYOYFiSjespWQk0dq2dRNAiMdRTOYQzEGqnnNyrTxPYHP5r6wGjlF1rFgABdDV0g8EwD6Qbg==}
+ /@babel/plugin-transform-nullish-coalescing-operator@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3)
dev: true
- /@babel/helper-validator-identifier@7.22.20:
- resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
+ /@babel/plugin-transform-numeric-separator@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3)
dev: true
- /@babel/helper-validator-option@7.22.15:
- resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==}
+ /@babel/plugin-transform-object-rest-spread@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.23.3
+ '@babel/core': 7.23.3
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3)
dev: true
- /@babel/helpers@7.22.15:
- resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==}
+ /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
dependencies:
- '@babel/template': 7.22.15
- '@babel/traverse': 7.23.2
- '@babel/types': 7.22.19
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3)
dev: true
- /@babel/highlight@7.22.13:
- resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==}
+ /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
dependencies:
- '@babel/helper-validator-identifier': 7.22.19
- chalk: 2.4.2
- js-tokens: 4.0.0
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3)
dev: true
- /@babel/parser@7.22.16:
- resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==}
- engines: {node: '>=6.0.0'}
- hasBin: true
+ /@babel/plugin-transform-optional-chaining@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
dependencies:
- '@babel/types': 7.22.19
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3)
dev: true
- /@babel/parser@7.23.0:
- resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==}
- engines: {node: '>=6.0.0'}
- hasBin: true
+ /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
dependencies:
- '@babel/types': 7.23.0
+ '@babel/core': 7.23.3
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.19):
- resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.19):
- resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
+ /@babel/plugin-transform-private-property-in-object@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3)
'@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3)
dev: true
- /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.19):
- resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+ /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.19):
- resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@babel/helper-plugin-utils': 7.22.5
+ regenerator-transform: 0.15.2
dev: true
- /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.19):
- resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.19):
- resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==}
+ /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.19):
- resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
dev: true
- /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.19):
- resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.19):
- resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.19):
- resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.19):
- resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.19):
- resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.19):
- resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3)
'@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.19):
- resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==}
+ /@babel/preset-env@7.23.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/compat-data': 7.23.3
+ '@babel/core': 7.23.3
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.15
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.3)
+ '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-async-generator-functions': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-dynamic-import': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-export-namespace-from': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-json-strings': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-logical-assignment-operators': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3)
+ '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-numeric-separator': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-object-rest-spread': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-optional-catch-binding': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-private-property-in-object': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.3)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.3)
+ babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3)
+ babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.3)
+ babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3)
+ core-js-compat: 3.33.2
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.3):
+ resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
+ dependencies:
+ '@babel/core': 7.23.3
'@babel/helper-plugin-utils': 7.22.5
+ '@babel/types': 7.23.3
+ esutils: 2.0.3
+ dev: true
+
+ /@babel/regjsgen@0.8.0:
+ resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
+ dev: true
+
+ /@babel/runtime@7.23.2:
+ resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.14.0
dev: true
/@babel/template@7.22.15:
@@ -387,39 +1258,30 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.22.13
- '@babel/parser': 7.23.0
- '@babel/types': 7.23.0
+ '@babel/parser': 7.23.3
+ '@babel/types': 7.23.3
dev: true
- /@babel/traverse@7.23.2:
- resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==}
+ /@babel/traverse@7.23.3:
+ resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.22.13
- '@babel/generator': 7.23.0
+ '@babel/generator': 7.23.3
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-hoist-variables': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
- '@babel/parser': 7.23.0
- '@babel/types': 7.23.0
+ '@babel/parser': 7.23.3
+ '@babel/types': 7.23.3
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/types@7.22.19:
- resolution: {integrity: sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-string-parser': 7.22.5
- '@babel/helper-validator-identifier': 7.22.19
- to-fast-properties: 2.0.0
- dev: true
-
- /@babel/types@7.23.0:
- resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==}
+ /@babel/types@7.23.3:
+ resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.22.5
@@ -431,37 +1293,30 @@ packages:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
dev: true
- /@cspotcode/source-map-support@0.8.1:
- resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
- engines: {node: '>=12'}
- dependencies:
- '@jridgewell/trace-mapping': 0.3.9
- dev: true
-
- /@eslint-community/eslint-utils@4.4.0(eslint@8.44.0):
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
- eslint: 8.44.0
+ eslint: 8.54.0
eslint-visitor-keys: 3.4.3
dev: true
- /@eslint-community/regexpp@4.8.1:
- resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==}
+ /@eslint-community/regexpp@4.10.0:
+ resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
- /@eslint/eslintrc@2.1.2:
- resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==}
+ /@eslint/eslintrc@2.1.3:
+ resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
debug: 4.3.4
espree: 9.6.1
- globals: 13.21.0
- ignore: 5.2.4
+ globals: 13.23.0
+ ignore: 5.3.0
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
@@ -470,16 +1325,16 @@ packages:
- supports-color
dev: true
- /@eslint/js@8.44.0:
- resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==}
+ /@eslint/js@8.54.0:
+ resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@humanwhocodes/config-array@0.11.11:
- resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==}
+ /@humanwhocodes/config-array@0.11.13:
+ resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
engines: {node: '>=10.10.0'}
dependencies:
- '@humanwhocodes/object-schema': 1.2.1
+ '@humanwhocodes/object-schema': 2.0.1
debug: 4.3.4
minimatch: 3.1.2
transitivePeerDependencies:
@@ -491,8 +1346,20 @@ packages:
engines: {node: '>=12.22'}
dev: true
- /@humanwhocodes/object-schema@1.2.1:
- resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
+ /@humanwhocodes/object-schema@2.0.1:
+ resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
+ dev: true
+
+ /@isaacs/cliui@8.0.2:
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: /string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: /strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: /wrap-ansi@7.0.0
dev: true
/@istanbuljs/load-nyc-config@1.1.0:
@@ -516,14 +1383,14 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
slash: 3.0.0
dev: true
- /@jest/core@29.7.0(ts-node@10.9.1):
+ /@jest/core@29.7.0:
resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
@@ -537,14 +1404,14 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
ansi-escapes: 4.3.2
chalk: 4.1.2
- ci-info: 3.8.0
+ ci-info: 3.9.0
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@20.6.2)(ts-node@10.9.1)
+ jest-config: 29.7.0(@types/node@20.9.1)
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -572,7 +1439,7 @@ packages:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
jest-mock: 29.7.0
dev: true
@@ -599,7 +1466,7 @@ packages:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -631,15 +1498,15 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@jridgewell/trace-mapping': 0.3.19
- '@types/node': 20.6.2
+ '@jridgewell/trace-mapping': 0.3.20
+ '@types/node': 20.9.1
chalk: 4.1.2
collect-v8-coverage: 1.0.2
exit: 0.1.2
glob: 7.2.3
graceful-fs: 4.2.11
- istanbul-lib-coverage: 3.2.0
- istanbul-lib-instrument: 6.0.0
+ istanbul-lib-coverage: 3.2.2
+ istanbul-lib-instrument: 6.0.1
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 4.0.1
istanbul-reports: 3.1.6
@@ -649,7 +1516,7 @@ packages:
slash: 3.0.0
string-length: 4.0.2
strip-ansi: 6.0.1
- v8-to-istanbul: 9.1.0
+ v8-to-istanbul: 9.1.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -665,7 +1532,7 @@ packages:
resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jridgewell/trace-mapping': 0.3.19
+ '@jridgewell/trace-mapping': 0.3.20
callsites: 3.1.0
graceful-fs: 4.2.11
dev: true
@@ -676,7 +1543,7 @@ packages:
dependencies:
'@jest/console': 29.7.0
'@jest/types': 29.6.3
- '@types/istanbul-lib-coverage': 2.0.4
+ '@types/istanbul-lib-coverage': 2.0.6
collect-v8-coverage: 1.0.2
dev: true
@@ -694,9 +1561,9 @@ packages:
resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@jest/types': 29.6.3
- '@jridgewell/trace-mapping': 0.3.19
+ '@jridgewell/trace-mapping': 0.3.20
babel-plugin-istanbul: 6.1.1
chalk: 4.1.2
convert-source-map: 2.0.0
@@ -718,10 +1585,10 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/schemas': 29.6.3
- '@types/istanbul-lib-coverage': 2.0.4
- '@types/istanbul-reports': 3.0.1
- '@types/node': 20.6.2
- '@types/yargs': 17.0.24
+ '@types/istanbul-lib-coverage': 2.0.6
+ '@types/istanbul-reports': 3.0.4
+ '@types/node': 20.9.1
+ '@types/yargs': 17.0.31
chalk: 4.1.2
dev: true
@@ -731,7 +1598,7 @@ packages:
dependencies:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.15
- '@jridgewell/trace-mapping': 0.3.19
+ '@jridgewell/trace-mapping': 0.3.20
dev: true
/@jridgewell/resolve-uri@3.1.1:
@@ -744,19 +1611,19 @@ packages:
engines: {node: '>=6.0.0'}
dev: true
- /@jridgewell/sourcemap-codec@1.4.15:
- resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+ /@jridgewell/source-map@0.3.5:
+ resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.20
dev: true
- /@jridgewell/trace-mapping@0.3.19:
- resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==}
- dependencies:
- '@jridgewell/resolve-uri': 3.1.1
- '@jridgewell/sourcemap-codec': 1.4.15
+ /@jridgewell/sourcemap-codec@1.4.15:
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
dev: true
- /@jridgewell/trace-mapping@0.3.9:
- resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+ /@jridgewell/trace-mapping@0.3.20:
+ resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
dependencies:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
@@ -783,6 +1650,210 @@ packages:
fastq: 1.15.0
dev: true
+ /@pkgjs/parseargs@0.11.0:
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/plugin-alias@5.0.1(rollup@4.5.0):
+ resolution: {integrity: sha512-JObvbWdOHoMy9W7SU0lvGhDtWq9PllP5mjpAy+TUslZG/WzOId9u80Hsqq1vCUn9pFJ0cxpdcnAv+QzU2zFH3Q==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ rollup: 4.5.0
+ slash: 4.0.0
+ dev: true
+
+ /@rollup/plugin-babel@6.0.4(@babel/core@7.23.3)(rollup@4.5.0):
+ resolution: {integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ '@types/babel__core': ^7.1.9
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ '@types/babel__core':
+ optional: true
+ rollup:
+ optional: true
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-module-imports': 7.22.15
+ '@rollup/pluginutils': 5.0.5(rollup@4.5.0)
+ rollup: 4.5.0
+ dev: true
+
+ /@rollup/plugin-commonjs@25.0.7(rollup@4.5.0):
+ resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.68.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@rollup/pluginutils': 5.0.5(rollup@4.5.0)
+ commondir: 1.0.1
+ estree-walker: 2.0.2
+ glob: 8.1.0
+ is-reference: 1.2.1
+ magic-string: 0.30.5
+ rollup: 4.5.0
+ dev: true
+
+ /@rollup/plugin-json@6.0.1(rollup@4.5.0):
+ resolution: {integrity: sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@rollup/pluginutils': 5.0.5(rollup@4.5.0)
+ rollup: 4.5.0
+ dev: true
+
+ /@rollup/plugin-terser@0.4.4(rollup@4.5.0):
+ resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ rollup: 4.5.0
+ serialize-javascript: 6.0.1
+ smob: 1.4.1
+ terser: 5.24.0
+ dev: true
+
+ /@rollup/pluginutils@4.2.1:
+ resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
+ engines: {node: '>= 8.0.0'}
+ dependencies:
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /@rollup/pluginutils@5.0.5(rollup@4.5.0):
+ resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@types/estree': 1.0.5
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ rollup: 4.5.0
+ dev: true
+
+ /@rollup/rollup-android-arm-eabi@4.5.0:
+ resolution: {integrity: sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA==}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-android-arm64@4.5.0:
+ resolution: {integrity: sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w==}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-darwin-arm64@4.5.0:
+ resolution: {integrity: sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w==}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-darwin-x64@4.5.0:
+ resolution: {integrity: sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ==}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm-gnueabihf@4.5.0:
+ resolution: {integrity: sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm64-gnu@4.5.0:
+ resolution: {integrity: sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm64-musl@4.5.0:
+ resolution: {integrity: sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-x64-gnu@4.5.0:
+ resolution: {integrity: sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-x64-musl@4.5.0:
+ resolution: {integrity: sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-arm64-msvc@4.5.0:
+ resolution: {integrity: sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA==}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-ia32-msvc@4.5.0:
+ resolution: {integrity: sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA==}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-x64-msvc@4.5.0:
+ resolution: {integrity: sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w==}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@sinclair/typebox@0.27.8:
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
dev: true
@@ -799,112 +1870,102 @@ packages:
'@sinonjs/commons': 3.0.0
dev: true
- /@tsconfig/node10@1.0.9:
- resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
- dev: true
-
- /@tsconfig/node12@1.0.11:
- resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
- dev: true
-
- /@tsconfig/node14@1.0.3:
- resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
- dev: true
-
- /@tsconfig/node16@1.0.4:
- resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+ /@types/babel__core@7.20.4:
+ resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==}
+ dependencies:
+ '@babel/parser': 7.23.3
+ '@babel/types': 7.23.3
+ '@types/babel__generator': 7.6.7
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.20.4
dev: true
- /@types/babel__core@7.20.2:
- resolution: {integrity: sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==}
+ /@types/babel__generator@7.6.7:
+ resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==}
dependencies:
- '@babel/parser': 7.22.16
- '@babel/types': 7.22.19
- '@types/babel__generator': 7.6.5
- '@types/babel__template': 7.4.2
- '@types/babel__traverse': 7.20.2
+ '@babel/types': 7.23.3
dev: true
- /@types/babel__generator@7.6.5:
- resolution: {integrity: sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==}
+ /@types/babel__template@7.4.4:
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
dependencies:
- '@babel/types': 7.22.19
+ '@babel/parser': 7.23.3
+ '@babel/types': 7.23.3
dev: true
- /@types/babel__template@7.4.2:
- resolution: {integrity: sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==}
+ /@types/babel__traverse@7.20.4:
+ resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==}
dependencies:
- '@babel/parser': 7.22.16
- '@babel/types': 7.22.19
+ '@babel/types': 7.23.3
dev: true
- /@types/babel__traverse@7.20.2:
- resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==}
- dependencies:
- '@babel/types': 7.22.19
+ /@types/estree@1.0.5:
+ resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
dev: true
- /@types/graceful-fs@4.1.6:
- resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==}
+ /@types/graceful-fs@4.1.9:
+ resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
dependencies:
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
dev: true
- /@types/istanbul-lib-coverage@2.0.4:
- resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
+ /@types/istanbul-lib-coverage@2.0.6:
+ resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
dev: true
- /@types/istanbul-lib-report@3.0.0:
- resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
+ /@types/istanbul-lib-report@3.0.3:
+ resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
dependencies:
- '@types/istanbul-lib-coverage': 2.0.4
+ '@types/istanbul-lib-coverage': 2.0.6
dev: true
- /@types/istanbul-reports@3.0.1:
- resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
+ /@types/istanbul-reports@3.0.4:
+ resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
dependencies:
- '@types/istanbul-lib-report': 3.0.0
+ '@types/istanbul-lib-report': 3.0.3
dev: true
- /@types/jest@29.5.5:
- resolution: {integrity: sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==}
+ /@types/jest@29.5.8:
+ resolution: {integrity: sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==}
dependencies:
expect: 29.7.0
pretty-format: 29.7.0
dev: true
- /@types/json-schema@7.0.13:
- resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==}
+ /@types/json-schema@7.0.15:
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
dev: true
- /@types/node@20.6.2:
- resolution: {integrity: sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==}
+ /@types/node@20.9.1:
+ resolution: {integrity: sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==}
+ dependencies:
+ undici-types: 5.26.5
dev: true
- /@types/seedrandom@3.0.5:
- resolution: {integrity: sha512-kopEpYpFQvQdYsZkZVwht/0THHmTFFYXDaqV/lM45eweJ8kcGVDgZHs0RVTolSq55UPZNmjhKc9r7UvLu/mQQg==}
+ /@types/seedrandom@3.0.8:
+ resolution: {integrity: sha512-TY1eezMU2zH2ozQoAFAQFOPpvP15g+ZgSfTZt31AUUH/Rxtnz3H+A/Sv1Snw2/amp//omibc+AEkTaA8KUeOLQ==}
dev: true
- /@types/semver@7.5.2:
- resolution: {integrity: sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==}
+ /@types/semver@7.5.5:
+ resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==}
dev: true
- /@types/stack-utils@2.0.1:
- resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
+ /@types/stack-utils@2.0.3:
+ resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
dev: true
- /@types/yargs-parser@21.0.0:
- resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
+ /@types/yargs-parser@21.0.3:
+ resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
dev: true
- /@types/yargs@17.0.24:
- resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==}
+ /@types/yargs@17.0.31:
+ resolution: {integrity: sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==}
dependencies:
- '@types/yargs-parser': 21.0.0
+ '@types/yargs-parser': 21.0.3
dev: true
- /@typescript-eslint/eslint-plugin@6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.44.0)(typescript@5.1.6):
- resolution: {integrity: sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==}
+ /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
'@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
@@ -914,26 +1975,26 @@ packages:
typescript:
optional: true
dependencies:
- '@eslint-community/regexpp': 4.8.1
- '@typescript-eslint/parser': 6.7.0(eslint@8.44.0)(typescript@5.1.6)
- '@typescript-eslint/scope-manager': 6.7.0
- '@typescript-eslint/type-utils': 6.7.0(eslint@8.44.0)(typescript@5.1.6)
- '@typescript-eslint/utils': 6.7.0(eslint@8.44.0)(typescript@5.1.6)
- '@typescript-eslint/visitor-keys': 6.7.0
+ '@eslint-community/regexpp': 4.10.0
+ '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.2.2)
+ '@typescript-eslint/scope-manager': 6.11.0
+ '@typescript-eslint/type-utils': 6.11.0(eslint@8.54.0)(typescript@5.2.2)
+ '@typescript-eslint/utils': 6.11.0(eslint@8.54.0)(typescript@5.2.2)
+ '@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4
- eslint: 8.44.0
+ eslint: 8.54.0
graphemer: 1.4.0
- ignore: 5.2.4
+ ignore: 5.3.0
natural-compare: 1.4.0
semver: 7.5.4
- ts-api-utils: 1.0.3(typescript@5.1.6)
- typescript: 5.1.6
+ ts-api-utils: 1.0.3(typescript@5.2.2)
+ typescript: 5.2.2
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/parser@6.7.0(eslint@8.44.0)(typescript@5.1.6):
- resolution: {integrity: sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==}
+ /@typescript-eslint/parser@6.11.0(eslint@8.54.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -942,27 +2003,27 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 6.7.0
- '@typescript-eslint/types': 6.7.0
- '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.1.6)
- '@typescript-eslint/visitor-keys': 6.7.0
+ '@typescript-eslint/scope-manager': 6.11.0
+ '@typescript-eslint/types': 6.11.0
+ '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2)
+ '@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4
- eslint: 8.44.0
- typescript: 5.1.6
+ eslint: 8.54.0
+ typescript: 5.2.2
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/scope-manager@6.7.0:
- resolution: {integrity: sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==}
+ /@typescript-eslint/scope-manager@6.11.0:
+ resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 6.7.0
- '@typescript-eslint/visitor-keys': 6.7.0
+ '@typescript-eslint/types': 6.11.0
+ '@typescript-eslint/visitor-keys': 6.11.0
dev: true
- /@typescript-eslint/type-utils@6.7.0(eslint@8.44.0)(typescript@5.1.6):
- resolution: {integrity: sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==}
+ /@typescript-eslint/type-utils@6.11.0(eslint@8.54.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -971,23 +2032,23 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.1.6)
- '@typescript-eslint/utils': 6.7.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2)
+ '@typescript-eslint/utils': 6.11.0(eslint@8.54.0)(typescript@5.2.2)
debug: 4.3.4
- eslint: 8.44.0
- ts-api-utils: 1.0.3(typescript@5.1.6)
- typescript: 5.1.6
+ eslint: 8.54.0
+ ts-api-utils: 1.0.3(typescript@5.2.2)
+ typescript: 5.2.2
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/types@6.7.0:
- resolution: {integrity: sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==}
+ /@typescript-eslint/types@6.11.0:
+ resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==}
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
- /@typescript-eslint/typescript-estree@6.7.0(typescript@5.1.6):
- resolution: {integrity: sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==}
+ /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2):
+ resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
typescript: '*'
@@ -995,60 +2056,59 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 6.7.0
- '@typescript-eslint/visitor-keys': 6.7.0
+ '@typescript-eslint/types': 6.11.0
+ '@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
- ts-api-utils: 1.0.3(typescript@5.1.6)
- typescript: 5.1.6
+ ts-api-utils: 1.0.3(typescript@5.2.2)
+ typescript: 5.2.2
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/utils@6.7.0(eslint@8.44.0)(typescript@5.1.6):
- resolution: {integrity: sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==}
+ /@typescript-eslint/utils@6.11.0(eslint@8.54.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
- '@types/json-schema': 7.0.13
- '@types/semver': 7.5.2
- '@typescript-eslint/scope-manager': 6.7.0
- '@typescript-eslint/types': 6.7.0
- '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.1.6)
- eslint: 8.44.0
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0)
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.5
+ '@typescript-eslint/scope-manager': 6.11.0
+ '@typescript-eslint/types': 6.11.0
+ '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2)
+ eslint: 8.54.0
semver: 7.5.4
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /@typescript-eslint/visitor-keys@6.7.0:
- resolution: {integrity: sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==}
+ /@typescript-eslint/visitor-keys@6.11.0:
+ resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 6.7.0
+ '@typescript-eslint/types': 6.11.0
eslint-visitor-keys: 3.4.3
dev: true
- /acorn-jsx@5.3.2(acorn@8.10.0):
+ /@ungap/structured-clone@1.2.0:
+ resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
+ dev: true
+
+ /acorn-jsx@5.3.2(acorn@8.11.2):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- acorn: 8.10.0
- dev: true
-
- /acorn-walk@8.2.0:
- resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
- engines: {node: '>=0.4.0'}
+ acorn: 8.11.2
dev: true
- /acorn@8.10.0:
- resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
+ /acorn@8.11.2:
+ resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: true
@@ -1074,6 +2134,15 @@ packages:
engines: {node: '>=8'}
dev: true
+ /ansi-regex@6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /ansi-sequence-parser@1.1.1:
+ resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==}
+ dev: true
+
/ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
@@ -1093,6 +2162,11 @@ packages:
engines: {node: '>=10'}
dev: true
+ /ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+ dev: true
+
/anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
@@ -1101,10 +2175,6 @@ packages:
picomatch: 2.3.1
dev: true
- /arg@4.1.3:
- resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
- dev: true
-
/argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
dependencies:
@@ -1120,17 +2190,17 @@ packages:
engines: {node: '>=8'}
dev: true
- /babel-jest@29.7.0(@babel/core@7.22.19):
+ /babel-jest@29.7.0(@babel/core@7.23.3):
resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.8.0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@jest/transform': 29.7.0
- '@types/babel__core': 7.20.2
+ '@types/babel__core': 7.20.4
babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 29.6.3(@babel/core@7.22.19)
+ babel-preset-jest: 29.6.3(@babel/core@7.23.3)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
@@ -1156,40 +2226,76 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@babel/template': 7.22.15
- '@babel/types': 7.22.19
- '@types/babel__core': 7.20.2
- '@types/babel__traverse': 7.20.2
+ '@babel/types': 7.23.3
+ '@types/babel__core': 7.20.4
+ '@types/babel__traverse': 7.20.4
+ dev: true
+
+ /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.3):
+ resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ dependencies:
+ '@babel/compat-data': 7.23.3
+ '@babel/core': 7.23.3
+ '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.3):
+ resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3)
+ core-js-compat: 3.33.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.3):
+ resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ dependencies:
+ '@babel/core': 7.23.3
+ '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3)
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.19):
+ /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3):
resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.22.19
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.19)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.22.19)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.19)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.19)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.19)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.19)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.19)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.19)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.19)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.19)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.19)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.19)
- dev: true
-
- /babel-preset-jest@29.6.3(@babel/core@7.22.19):
+ '@babel/core': 7.23.3
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3)
+ dev: true
+
+ /babel-preset-jest@29.6.3(@babel/core@7.23.3):
resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
babel-plugin-jest-hoist: 29.6.3
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.19)
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3)
dev: true
/balanced-match@1.0.2:
@@ -1203,6 +2309,12 @@ packages:
concat-map: 0.0.1
dev: true
+ /brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ dependencies:
+ balanced-match: 1.0.2
+ dev: true
+
/braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
@@ -1210,15 +2322,15 @@ packages:
fill-range: 7.0.1
dev: true
- /browserslist@4.21.10:
- resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==}
+ /browserslist@4.22.1:
+ resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001534
- electron-to-chromium: 1.4.523
+ caniuse-lite: 1.0.30001563
+ electron-to-chromium: 1.4.588
node-releases: 2.0.13
- update-browserslist-db: 1.0.11(browserslist@4.21.10)
+ update-browserslist-db: 1.0.13(browserslist@4.22.1)
dev: true
/bs-logger@0.2.6:
@@ -1253,8 +2365,8 @@ packages:
engines: {node: '>=10'}
dev: true
- /caniuse-lite@1.0.30001534:
- resolution: {integrity: sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==}
+ /caniuse-lite@1.0.30001563:
+ resolution: {integrity: sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==}
dev: true
/chalk@2.4.2:
@@ -1279,8 +2391,8 @@ packages:
engines: {node: '>=10'}
dev: true
- /ci-info@3.8.0:
- resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
+ /ci-info@3.9.0:
+ resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
dev: true
@@ -1327,19 +2439,29 @@ packages:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
- /concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ /commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ dev: true
+
+ /commondir@1.0.1:
+ resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
dev: true
- /convert-source-map@1.9.0:
- resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+ /concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: true
/convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
dev: true
- /create-jest@29.7.0(@types/node@20.6.2)(ts-node@10.9.1):
+ /core-js-compat@3.33.2:
+ resolution: {integrity: sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==}
+ dependencies:
+ browserslist: 4.22.1
+ dev: true
+
+ /create-jest@29.7.0(@types/node@20.9.1):
resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -1348,7 +2470,7 @@ packages:
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@20.6.2)(ts-node@10.9.1)
+ jest-config: 29.7.0(@types/node@20.9.1)
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -1358,10 +2480,6 @@ packages:
- ts-node
dev: true
- /create-require@1.1.1:
- resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
- dev: true
-
/cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -1411,11 +2529,6 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
- /diff@4.0.2:
- resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
- engines: {node: '>=0.3.1'}
- dev: true
-
/dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
@@ -1430,13 +2543,12 @@ packages:
esutils: 2.0.3
dev: true
- /dotenv@16.3.1:
- resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==}
- engines: {node: '>=12'}
- dev: false
+ /eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ dev: true
- /electron-to-chromium@1.4.523:
- resolution: {integrity: sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg==}
+ /electron-to-chromium@1.4.588:
+ resolution: {integrity: sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w==}
dev: true
/emittery@0.13.1:
@@ -1448,6 +2560,10 @@ packages:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
+ /emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ dev: true
+
/error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
dependencies:
@@ -1474,13 +2590,13 @@ packages:
engines: {node: '>=10'}
dev: true
- /eslint-config-prettier@9.0.0(eslint@8.44.0):
+ /eslint-config-prettier@9.0.0(eslint@8.54.0):
resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
- eslint: 8.44.0
+ eslint: 8.54.0
dev: true
/eslint-scope@7.2.2:
@@ -1496,18 +2612,19 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /eslint@8.44.0:
- resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==}
+ /eslint@8.54.0:
+ resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
- '@eslint-community/regexpp': 4.8.1
- '@eslint/eslintrc': 2.1.2
- '@eslint/js': 8.44.0
- '@humanwhocodes/config-array': 0.11.11
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0)
+ '@eslint-community/regexpp': 4.10.0
+ '@eslint/eslintrc': 2.1.3
+ '@eslint/js': 8.54.0
+ '@humanwhocodes/config-array': 0.11.13
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
+ '@ungap/structured-clone': 1.2.0
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
@@ -1523,10 +2640,9 @@ packages:
file-entry-cache: 6.0.1
find-up: 5.0.0
glob-parent: 6.0.2
- globals: 13.21.0
+ globals: 13.23.0
graphemer: 1.4.0
- ignore: 5.2.4
- import-fresh: 3.3.0
+ ignore: 5.3.0
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
@@ -1538,7 +2654,6 @@ packages:
natural-compare: 1.4.0
optionator: 0.9.3
strip-ansi: 6.0.1
- strip-json-comments: 3.1.1
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
@@ -1548,8 +2663,8 @@ packages:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- acorn: 8.10.0
- acorn-jsx: 5.3.2(acorn@8.10.0)
+ acorn: 8.11.2
+ acorn-jsx: 5.3.2(acorn@8.11.2)
eslint-visitor-keys: 3.4.3
dev: true
@@ -1578,6 +2693,10 @@ packages:
engines: {node: '>=4.0'}
dev: true
+ /estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+ dev: true
+
/esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
@@ -1618,8 +2737,8 @@ packages:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
dev: true
- /fast-glob@3.3.1:
- resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
+ /fast-glob@3.3.2:
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -1653,7 +2772,7 @@ packages:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
- flat-cache: 3.1.0
+ flat-cache: 3.2.0
dev: true
/fill-range@7.0.1:
@@ -1663,6 +2782,15 @@ packages:
to-regex-range: 5.0.1
dev: true
+ /find-cache-dir@3.3.2:
+ resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==}
+ engines: {node: '>=8'}
+ dependencies:
+ commondir: 1.0.1
+ make-dir: 3.1.0
+ pkg-dir: 4.2.0
+ dev: true
+
/find-up@4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
@@ -1679,17 +2807,34 @@ packages:
path-exists: 4.0.0
dev: true
- /flat-cache@3.1.0:
- resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==}
- engines: {node: '>=12.0.0'}
+ /flat-cache@3.2.0:
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
+ engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
- flatted: 3.2.8
- keyv: 4.5.3
+ flatted: 3.2.9
+ keyv: 4.5.4
rimraf: 3.0.2
dev: true
- /flatted@3.2.8:
- resolution: {integrity: sha512-6qu0W+A94UKNJRs3ffE8s/fWSHQbjqdNx8elGAe95IqnJA77P68TFz4+2cwC28ouAibiZdGBeV6DsvvMg+4vhQ==}
+ /flatted@3.2.9:
+ resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
+ dev: true
+
+ /foreground-child@3.1.1:
+ resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
+ engines: {node: '>=14'}
+ dependencies:
+ cross-spawn: 7.0.3
+ signal-exit: 4.1.0
+ dev: true
+
+ /fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
dev: true
/fs.realpath@1.0.0:
@@ -1704,8 +2849,8 @@ packages:
dev: true
optional: true
- /function-bind@1.1.1:
- resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ /function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
dev: true
/gensync@1.0.0-beta.2:
@@ -1742,6 +2887,18 @@ packages:
is-glob: 4.0.3
dev: true
+ /glob@10.3.10:
+ resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+ dependencies:
+ foreground-child: 3.1.1
+ jackspeak: 2.3.6
+ minimatch: 9.0.3
+ minipass: 7.0.4
+ path-scurry: 1.10.1
+ dev: true
+
/glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
dependencies:
@@ -1753,13 +2910,24 @@ packages:
path-is-absolute: 1.0.1
dev: true
+ /glob@8.1.0:
+ resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 5.1.6
+ once: 1.4.0
+ dev: true
+
/globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
dev: true
- /globals@13.21.0:
- resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==}
+ /globals@13.23.0:
+ resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==}
engines: {node: '>=8'}
dependencies:
type-fest: 0.20.2
@@ -1771,8 +2939,8 @@ packages:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
- fast-glob: 3.3.1
- ignore: 5.2.4
+ fast-glob: 3.3.2
+ ignore: 5.3.0
merge2: 1.4.1
slash: 3.0.0
dev: true
@@ -1795,11 +2963,11 @@ packages:
engines: {node: '>=8'}
dev: true
- /has@1.0.3:
- resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
- engines: {node: '>= 0.4.0'}
+ /hasown@2.0.0:
+ resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
+ engines: {node: '>= 0.4'}
dependencies:
- function-bind: 1.1.1
+ function-bind: 1.1.2
dev: true
/html-escaper@2.0.2:
@@ -1811,8 +2979,8 @@ packages:
engines: {node: '>=10.17.0'}
dev: true
- /ignore@5.2.4:
- resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
+ /ignore@5.3.0:
+ resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
engines: {node: '>= 4'}
dev: true
@@ -1853,10 +3021,10 @@ packages:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
dev: true
- /is-core-module@2.13.0:
- resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
+ /is-core-module@2.13.1:
+ resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
dependencies:
- has: 1.0.3
+ hasown: 2.0.0
dev: true
/is-extglob@2.1.1:
@@ -1891,6 +3059,12 @@ packages:
engines: {node: '>=8'}
dev: true
+ /is-reference@1.2.1:
+ resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
+ dependencies:
+ '@types/estree': 1.0.5
+ dev: true
+
/is-stream@2.0.1:
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
engines: {node: '>=8'}
@@ -1900,8 +3074,8 @@ packages:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
- /istanbul-lib-coverage@3.2.0:
- resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
+ /istanbul-lib-coverage@3.2.2:
+ resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
engines: {node: '>=8'}
dev: true
@@ -1909,23 +3083,23 @@ packages:
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
engines: {node: '>=8'}
dependencies:
- '@babel/core': 7.22.19
- '@babel/parser': 7.22.16
+ '@babel/core': 7.23.3
+ '@babel/parser': 7.23.3
'@istanbuljs/schema': 0.1.3
- istanbul-lib-coverage: 3.2.0
+ istanbul-lib-coverage: 3.2.2
semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: true
- /istanbul-lib-instrument@6.0.0:
- resolution: {integrity: sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==}
+ /istanbul-lib-instrument@6.0.1:
+ resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==}
engines: {node: '>=10'}
dependencies:
- '@babel/core': 7.22.19
- '@babel/parser': 7.22.16
+ '@babel/core': 7.23.3
+ '@babel/parser': 7.23.3
'@istanbuljs/schema': 0.1.3
- istanbul-lib-coverage: 3.2.0
+ istanbul-lib-coverage: 3.2.2
semver: 7.5.4
transitivePeerDependencies:
- supports-color
@@ -1935,7 +3109,7 @@ packages:
resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
engines: {node: '>=10'}
dependencies:
- istanbul-lib-coverage: 3.2.0
+ istanbul-lib-coverage: 3.2.2
make-dir: 4.0.0
supports-color: 7.2.0
dev: true
@@ -1945,7 +3119,7 @@ packages:
engines: {node: '>=10'}
dependencies:
debug: 4.3.4
- istanbul-lib-coverage: 3.2.0
+ istanbul-lib-coverage: 3.2.2
source-map: 0.6.1
transitivePeerDependencies:
- supports-color
@@ -1959,6 +3133,15 @@ packages:
istanbul-lib-report: 3.0.1
dev: true
+ /jackspeak@2.3.6:
+ resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+ dev: true
+
/jest-changed-files@29.7.0:
resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -1976,7 +3159,7 @@ packages:
'@jest/expect': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
chalk: 4.1.2
co: 4.6.0
dedent: 1.5.1
@@ -1989,7 +3172,7 @@ packages:
jest-util: 29.7.0
p-limit: 3.1.0
pretty-format: 29.7.0
- pure-rand: 6.0.3
+ pure-rand: 6.0.4
slash: 3.0.0
stack-utils: 2.0.6
transitivePeerDependencies:
@@ -1997,7 +3180,7 @@ packages:
- supports-color
dev: true
- /jest-cli@29.7.0(@types/node@20.6.2)(ts-node@10.9.1):
+ /jest-cli@29.7.0(@types/node@20.9.1):
resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -2007,14 +3190,14 @@ packages:
node-notifier:
optional: true
dependencies:
- '@jest/core': 29.7.0(ts-node@10.9.1)
+ '@jest/core': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@20.6.2)(ts-node@10.9.1)
+ create-jest: 29.7.0(@types/node@20.9.1)
exit: 0.1.2
import-local: 3.1.0
- jest-config: 29.7.0(@types/node@20.6.2)(ts-node@10.9.1)
+ jest-config: 29.7.0(@types/node@20.9.1)
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -2025,7 +3208,7 @@ packages:
- ts-node
dev: true
- /jest-config@29.7.0(@types/node@20.6.2)(ts-node@10.9.1):
+ /jest-config@29.7.0(@types/node@20.9.1):
resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
@@ -2037,13 +3220,13 @@ packages:
ts-node:
optional: true
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
'@jest/test-sequencer': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.6.2
- babel-jest: 29.7.0(@babel/core@7.22.19)
+ '@types/node': 20.9.1
+ babel-jest: 29.7.0(@babel/core@7.23.3)
chalk: 4.1.2
- ci-info: 3.8.0
+ ci-info: 3.9.0
deepmerge: 4.3.1
glob: 7.2.3
graceful-fs: 4.2.11
@@ -2060,7 +3243,6 @@ packages:
pretty-format: 29.7.0
slash: 3.0.0
strip-json-comments: 3.1.1
- ts-node: 10.9.1(@types/node@20.6.2)(typescript@5.1.6)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -2101,7 +3283,7 @@ packages:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
jest-mock: 29.7.0
jest-util: 29.7.0
dev: true
@@ -2116,8 +3298,8 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/graceful-fs': 4.1.6
- '@types/node': 20.6.2
+ '@types/graceful-fs': 4.1.9
+ '@types/node': 20.9.1
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -2154,7 +3336,7 @@ packages:
dependencies:
'@babel/code-frame': 7.22.13
'@jest/types': 29.6.3
- '@types/stack-utils': 2.0.1
+ '@types/stack-utils': 2.0.3
chalk: 4.1.2
graceful-fs: 4.2.11
micromatch: 4.0.5
@@ -2168,7 +3350,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
jest-util: 29.7.0
dev: true
@@ -2209,7 +3391,7 @@ packages:
jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0)
jest-util: 29.7.0
jest-validate: 29.7.0
- resolve: 1.22.6
+ resolve: 1.22.8
resolve.exports: 2.0.2
slash: 3.0.0
dev: true
@@ -2223,7 +3405,7 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@@ -2254,7 +3436,7 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
chalk: 4.1.2
cjs-module-lexer: 1.2.3
collect-v8-coverage: 1.0.2
@@ -2277,15 +3459,15 @@ packages:
resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/core': 7.22.19
- '@babel/generator': 7.22.15
- '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.19)
- '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.19)
- '@babel/types': 7.22.19
+ '@babel/core': 7.23.3
+ '@babel/generator': 7.23.3
+ '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3)
+ '@babel/types': 7.23.3
'@jest/expect-utils': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.19)
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3)
chalk: 4.1.2
expect: 29.7.0
graceful-fs: 4.2.11
@@ -2306,9 +3488,9 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
chalk: 4.1.2
- ci-info: 3.8.0
+ ci-info: 3.9.0
graceful-fs: 4.2.11
picomatch: 2.3.1
dev: true
@@ -2331,7 +3513,7 @@ packages:
dependencies:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -2343,13 +3525,13 @@ packages:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@types/node': 20.6.2
+ '@types/node': 20.9.1
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
dev: true
- /jest@29.7.0(@types/node@20.6.2)(ts-node@10.9.1):
+ /jest@29.7.0(@types/node@20.9.1):
resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -2359,10 +3541,10 @@ packages:
node-notifier:
optional: true
dependencies:
- '@jest/core': 29.7.0(ts-node@10.9.1)
+ '@jest/core': 29.7.0
'@jest/types': 29.6.3
import-local: 3.1.0
- jest-cli: 29.7.0(@types/node@20.6.2)(ts-node@10.9.1)
+ jest-cli: 29.7.0(@types/node@20.9.1)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -2389,6 +3571,11 @@ packages:
argparse: 2.0.1
dev: true
+ /jsesc@0.5.0:
+ resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
+ hasBin: true
+ dev: true
+
/jsesc@2.5.2:
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
engines: {node: '>=4'}
@@ -2417,8 +3604,20 @@ packages:
hasBin: true
dev: true
- /keyv@4.5.3:
- resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==}
+ /jsonc-parser@3.2.0:
+ resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
+ dev: true
+
+ /jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+ dev: true
+
+ /keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
dependencies:
json-buffer: 3.0.1
dev: true
@@ -2459,6 +3658,10 @@ packages:
p-locate: 5.0.0
dev: true
+ /lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+ dev: true
+
/lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
dev: true
@@ -2467,6 +3670,13 @@ packages:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
dev: true
+ /lru-cache@10.0.2:
+ resolution: {integrity: sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==}
+ engines: {node: 14 || >=16.14}
+ dependencies:
+ semver: 7.5.4
+ dev: true
+
/lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
dependencies:
@@ -2480,6 +3690,24 @@ packages:
yallist: 4.0.0
dev: true
+ /lunr@2.3.9:
+ resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
+ dev: true
+
+ /magic-string@0.30.5:
+ resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
+ dev: true
+
+ /make-dir@3.1.0:
+ resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
+ engines: {node: '>=8'}
+ dependencies:
+ semver: 6.3.1
+ dev: true
+
/make-dir@4.0.0:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines: {node: '>=10'}
@@ -2497,6 +3725,12 @@ packages:
tmpl: 1.0.5
dev: true
+ /marked@4.3.0:
+ resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==}
+ engines: {node: '>= 12'}
+ hasBin: true
+ dev: true
+
/merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
dev: true
@@ -2525,6 +3759,25 @@ packages:
brace-expansion: 1.1.11
dev: true
+ /minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: true
+
+ /minimatch@9.0.3:
+ resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: true
+
+ /minipass@7.0.4:
+ resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dev: true
+
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
@@ -2647,6 +3900,14 @@ packages:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true
+ /path-scurry@1.10.1:
+ resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dependencies:
+ lru-cache: 10.0.2
+ minipass: 7.0.4
+ dev: true
+
/path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
@@ -2678,8 +3939,8 @@ packages:
engines: {node: '>= 0.8.0'}
dev: true
- /prettier@3.0.3:
- resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==}
+ /prettier@3.1.0:
+ resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==}
engines: {node: '>=14'}
hasBin: true
dev: true
@@ -2701,23 +3962,69 @@ packages:
sisteransi: 1.0.5
dev: true
- /punycode@2.3.0:
- resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
+ /punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
dev: true
- /pure-rand@6.0.3:
- resolution: {integrity: sha512-KddyFewCsO0j3+np81IQ+SweXLDnDQTs5s67BOnrYmYe/yNmUhttQyGsYzy8yUnoljGAQ9sl38YB4vH8ur7Y+w==}
+ /pure-rand@6.0.4:
+ resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==}
dev: true
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: true
+ /randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: true
+
/react-is@18.2.0:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
dev: true
+ /regenerate-unicode-properties@10.1.1:
+ resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
+ engines: {node: '>=4'}
+ dependencies:
+ regenerate: 1.4.2
+ dev: true
+
+ /regenerate@1.4.2:
+ resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+ dev: true
+
+ /regenerator-runtime@0.14.0:
+ resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
+ dev: true
+
+ /regenerator-transform@0.15.2:
+ resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
+ dependencies:
+ '@babel/runtime': 7.23.2
+ dev: true
+
+ /regexpu-core@5.3.2:
+ resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ '@babel/regjsgen': 0.8.0
+ regenerate: 1.4.2
+ regenerate-unicode-properties: 10.1.1
+ regjsparser: 0.9.1
+ unicode-match-property-ecmascript: 2.0.0
+ unicode-match-property-value-ecmascript: 2.1.0
+ dev: true
+
+ /regjsparser@0.9.1:
+ resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
+ hasBin: true
+ dependencies:
+ jsesc: 0.5.0
+ dev: true
+
/require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@@ -2745,11 +4052,11 @@ packages:
engines: {node: '>=10'}
dev: true
- /resolve@1.22.6:
- resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==}
+ /resolve@1.22.8:
+ resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
dependencies:
- is-core-module: 2.13.0
+ is-core-module: 2.13.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: true
@@ -2766,12 +4073,59 @@ packages:
glob: 7.2.3
dev: true
+ /rimraf@5.0.5:
+ resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dependencies:
+ glob: 10.3.10
+ dev: true
+
+ /rollup-plugin-typescript2@0.36.0(rollup@4.5.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw==}
+ peerDependencies:
+ rollup: '>=1.26.3'
+ typescript: '>=2.4.0'
+ dependencies:
+ '@rollup/pluginutils': 4.2.1
+ find-cache-dir: 3.3.2
+ fs-extra: 10.1.0
+ rollup: 4.5.0
+ semver: 7.5.4
+ tslib: 2.6.2
+ typescript: 5.2.2
+ dev: true
+
+ /rollup@4.5.0:
+ resolution: {integrity: sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.5.0
+ '@rollup/rollup-android-arm64': 4.5.0
+ '@rollup/rollup-darwin-arm64': 4.5.0
+ '@rollup/rollup-darwin-x64': 4.5.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.5.0
+ '@rollup/rollup-linux-arm64-gnu': 4.5.0
+ '@rollup/rollup-linux-arm64-musl': 4.5.0
+ '@rollup/rollup-linux-x64-gnu': 4.5.0
+ '@rollup/rollup-linux-x64-musl': 4.5.0
+ '@rollup/rollup-win32-arm64-msvc': 4.5.0
+ '@rollup/rollup-win32-ia32-msvc': 4.5.0
+ '@rollup/rollup-win32-x64-msvc': 4.5.0
+ fsevents: 2.3.3
+ dev: true
+
/run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
queue-microtask: 1.2.3
dev: true
+ /safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ dev: true
+
/seedrandom@3.0.5:
resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==}
dev: false
@@ -2789,6 +4143,12 @@ packages:
lru-cache: 6.0.0
dev: true
+ /serialize-javascript@6.0.1:
+ resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
+ dependencies:
+ randombytes: 2.1.0
+ dev: true
+
/shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -2801,10 +4161,24 @@ packages:
engines: {node: '>=8'}
dev: true
+ /shiki@0.14.5:
+ resolution: {integrity: sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==}
+ dependencies:
+ ansi-sequence-parser: 1.1.1
+ jsonc-parser: 3.2.0
+ vscode-oniguruma: 1.7.0
+ vscode-textmate: 8.0.0
+ dev: true
+
/signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
+ /signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+ dev: true
+
/sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
dev: true
@@ -2814,6 +4188,15 @@ packages:
engines: {node: '>=8'}
dev: true
+ /slash@4.0.0:
+ resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /smob@1.4.1:
+ resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==}
+ dev: true
+
/source-map-support@0.5.13:
resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
dependencies:
@@ -2821,6 +4204,13 @@ packages:
source-map: 0.6.1
dev: true
+ /source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+ dev: true
+
/source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
@@ -2854,6 +4244,15 @@ packages:
strip-ansi: 6.0.1
dev: true
+ /string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+ dev: true
+
/strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
@@ -2861,6 +4260,13 @@ packages:
ansi-regex: 5.0.1
dev: true
+ /strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-regex: 6.0.1
+ dev: true
+
/strip-bom@4.0.0:
resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
engines: {node: '>=8'}
@@ -2902,6 +4308,17 @@ packages:
engines: {node: '>= 0.4'}
dev: true
+ /terser@5.24.0:
+ resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ '@jridgewell/source-map': 0.3.5
+ acorn: 8.11.2
+ commander: 2.20.3
+ source-map-support: 0.5.21
+ dev: true
+
/test-exclude@6.0.0:
resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
engines: {node: '>=8'}
@@ -2931,16 +4348,16 @@ packages:
is-number: 7.0.0
dev: true
- /ts-api-utils@1.0.3(typescript@5.1.6):
+ /ts-api-utils@1.0.3(typescript@5.2.2):
resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
engines: {node: '>=16.13.0'}
peerDependencies:
typescript: '>=4.2.0'
dependencies:
- typescript: 5.1.6
+ typescript: 5.2.2
dev: true
- /ts-jest@29.1.1(@babel/core@7.22.19)(jest@29.7.0)(typescript@5.1.6):
+ /ts-jest@29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.2.2):
resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -2961,48 +4378,21 @@ packages:
esbuild:
optional: true
dependencies:
- '@babel/core': 7.22.19
+ '@babel/core': 7.23.3
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
- jest: 29.7.0(@types/node@20.6.2)(ts-node@10.9.1)
+ jest: 29.7.0(@types/node@20.9.1)
jest-util: 29.7.0
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
semver: 7.5.4
- typescript: 5.1.6
+ typescript: 5.2.2
yargs-parser: 21.1.1
dev: true
- /ts-node@10.9.1(@types/node@20.6.2)(typescript@5.1.6):
- resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
- hasBin: true
- peerDependencies:
- '@swc/core': '>=1.2.50'
- '@swc/wasm': '>=1.2.50'
- '@types/node': '*'
- typescript: '>=2.7'
- peerDependenciesMeta:
- '@swc/core':
- optional: true
- '@swc/wasm':
- optional: true
- dependencies:
- '@cspotcode/source-map-support': 0.8.1
- '@tsconfig/node10': 1.0.9
- '@tsconfig/node12': 1.0.11
- '@tsconfig/node14': 1.0.3
- '@tsconfig/node16': 1.0.4
- '@types/node': 20.6.2
- acorn: 8.10.0
- acorn-walk: 8.2.0
- arg: 4.1.3
- create-require: 1.1.1
- diff: 4.0.2
- make-error: 1.3.6
- typescript: 5.1.6
- v8-compile-cache-lib: 3.0.1
- yn: 3.1.1
+ /tslib@2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
dev: true
/type-check@0.4.0:
@@ -3027,19 +4417,65 @@ packages:
engines: {node: '>=10'}
dev: true
- /typescript@5.1.6:
- resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==}
+ /typedoc@0.25.3(typescript@5.2.2):
+ resolution: {integrity: sha512-Ow8Bo7uY1Lwy7GTmphRIMEo6IOZ+yYUyrc8n5KXIZg1svpqhZSWgni2ZrDhe+wLosFS8yswowUzljTAV/3jmWw==}
+ engines: {node: '>= 16'}
+ hasBin: true
+ peerDependencies:
+ typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x
+ dependencies:
+ lunr: 2.3.9
+ marked: 4.3.0
+ minimatch: 9.0.3
+ shiki: 0.14.5
+ typescript: 5.2.2
+ dev: true
+
+ /typescript@5.2.2:
+ resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
engines: {node: '>=14.17'}
hasBin: true
dev: true
- /update-browserslist-db@1.0.11(browserslist@4.21.10):
- resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
+ /undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ dev: true
+
+ /unicode-canonical-property-names-ecmascript@2.0.0:
+ resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /unicode-match-property-ecmascript@2.0.0:
+ resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
+ engines: {node: '>=4'}
+ dependencies:
+ unicode-canonical-property-names-ecmascript: 2.0.0
+ unicode-property-aliases-ecmascript: 2.1.0
+ dev: true
+
+ /unicode-match-property-value-ecmascript@2.1.0:
+ resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /unicode-property-aliases-ecmascript@2.1.0:
+ resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+ dev: true
+
+ /update-browserslist-db@1.0.13(browserslist@4.22.1):
+ resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
- browserslist: 4.21.10
+ browserslist: 4.22.1
escalade: 3.1.1
picocolors: 1.0.0
dev: true
@@ -3047,20 +4483,24 @@ packages:
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
- punycode: 2.3.0
- dev: true
-
- /v8-compile-cache-lib@3.0.1:
- resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+ punycode: 2.3.1
dev: true
- /v8-to-istanbul@9.1.0:
- resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==}
+ /v8-to-istanbul@9.1.3:
+ resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==}
engines: {node: '>=10.12.0'}
dependencies:
- '@jridgewell/trace-mapping': 0.3.19
- '@types/istanbul-lib-coverage': 2.0.4
- convert-source-map: 1.9.0
+ '@jridgewell/trace-mapping': 0.3.20
+ '@types/istanbul-lib-coverage': 2.0.6
+ convert-source-map: 2.0.0
+ dev: true
+
+ /vscode-oniguruma@1.7.0:
+ resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==}
+ dev: true
+
+ /vscode-textmate@8.0.0:
+ resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==}
dev: true
/walker@1.0.8:
@@ -3086,6 +4526,15 @@ packages:
strip-ansi: 6.0.1
dev: true
+ /wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+ dev: true
+
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
@@ -3129,11 +4578,6 @@ packages:
yargs-parser: 21.1.1
dev: true
- /yn@3.1.1:
- resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
- engines: {node: '>=6'}
- dev: true
-
/yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
diff --git a/rollup.config.js b/rollup.config.js
new file mode 100644
index 0000000..78f6fa1
--- /dev/null
+++ b/rollup.config.js
@@ -0,0 +1,70 @@
+import path, { dirname } from "path";
+import { fileURLToPath } from "url";
+import commonjs from "@rollup/plugin-commonjs";
+import { babel } from "@rollup/plugin-babel";
+import alias from "@rollup/plugin-alias";
+import ts from "rollup-plugin-typescript2";
+import terser from "@rollup/plugin-terser";
+
+const resolve = (p) => {
+ return path.resolve(dirname(fileURLToPath(import.meta.url)), p);
+};
+const builds = {
+ "ts-fsrs.cjs": {
+ entry: resolve("src/fsrs/index.ts"),
+ dest: (name) => `dist/${name}.js`,
+ format: "cjs",
+ env: "production",
+ external: ["seedrandom", "dotenv"],
+ },
+ "ts-fsrs": {
+ entry: resolve("src/fsrs/index.ts"),
+ dest: (name) => `dist/${name}.js`,
+ format: "esm",
+ env: "production",
+ external: ["seedrandom", "dotenv"],
+ // "ts-fsrs.umd": {
+ // entry: resolve("src/fsrs/index.ts"),
+ // dest: (name) => `dist/${name}.js`,
+ // format: "umd",
+ // env: "production",
+ // globals: {
+ // seedrandom: "seedrandom",
+ // dotenv:"dotenv",
+ // },
+ // external: ["seedrandom", "dotenv"],
+ // },
+ }
+};
+const getConfig = (name) => {
+ const opts = builds[name];
+ const config = {
+ input: opts.entry,
+ external: opts.external,
+ plugins: [
+ commonjs(),
+ babel({ babelHelpers: "bundled" }),
+ alias({
+ entries: {
+ src: resolve("src"),
+ },
+ }),
+ terser(),
+ ts({
+ tsconfig: resolve("./tsconfig.json"),
+ }),
+ ].concat(opts.plugins, []),
+ output: {
+ file: opts.dest(name),
+ format: opts.format,
+ name: opts.name || "ts-fsrs",
+ sourcemap: true,
+ },
+ };
+ if (opts.globals) {
+ config.output.globals = opts.globals;
+ }
+ return config;
+};
+
+export default Object.keys(builds).map(getConfig);
diff --git a/src/fsrs/algorithm.ts b/src/fsrs/algorithm.ts
index dba1789..cb942cc 100644
--- a/src/fsrs/algorithm.ts
+++ b/src/fsrs/algorithm.ts
@@ -1,6 +1,7 @@
import pseudorandom from "seedrandom";
-import { generatorParameters, SchedulingCard } from "./index";
-import { FSRSParameters, Rating } from "./models";
+import { generatorParameters } from "./default";
+import {SchedulingCard} from './scheduler'
+import {FSRSParameters, Grade, Rating} from "./models";
import type { int } from "./type";
// Ref: https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm#fsrs-v4
@@ -77,7 +78,7 @@ export class FSRSAlgorithm {
* @param g Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
* @return Stability (interval when R=90%)
*/
- init_stability(g: number): number {
+ init_stability(g: Grade): number {
return Math.max(this.param.w[g - 1], 0.1);
}
@@ -86,10 +87,10 @@ export class FSRSAlgorithm {
* $$D_0(G) = w_4 - (G-3) \cdot w_5$$
* $$\min \{\max \{D_0(G),1\},10\}$$
* where the D_0(3)=w_4 when the first rating is good.
- * @param {number} g Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
+ * @param {Grade} g Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
* @return {number} Difficulty D \in [1,10]
*/
- init_difficulty(g: number): number {
+ init_difficulty(g: Grade): number {
return Math.min(
Math.max(this.param.w[4] - (g - 3) * this.param.w[5], 1),
10,
@@ -130,10 +131,10 @@ export class FSRSAlgorithm {
* $$next_d = D - w_6 \cdot (R - 2)$$
* $$D^\prime(D,R) = w_5 \cdot D_0(2) +(1 - w_5) \cdot next_d$$
* @param {number} d Difficulty D \in [1,10]
- * @param {Rating} g Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
+ * @param {Grade} g Grade (rating at Anki) [1.again,2.hard,3.good,4.easy]
* @return {number} next_D
*/
- next_difficulty(d: number, g: number): number {
+ next_difficulty(d: number, g: Grade): number {
const next_d = d - this.param.w[6] * (g - 3);
return this.constrain_difficulty(
this.mean_reversion(this.param.w[4], next_d),
@@ -166,10 +167,10 @@ export class FSRSAlgorithm {
* @param {number} d Difficulty D \in [1,10]
* @param {number} s Stability (interval when R=90%)
* @param {number} r Retrievability (probability of recall)
- * @param {Rating} g Grade (Rating[0.again,1.hard,2.good,3.easy])
+ * @param {Grade} g Grade (Rating[0.again,1.hard,2.good,3.easy])
* @return {number} S^\prime_r new stability after recall
*/
- next_recall_stability(d: number, s: number, r: number, g: Rating): number {
+ next_recall_stability(d: number, s: number, r: number, g: Grade): number {
const hard_penalty = Rating.Hard === g ? this.param.w[15] : 1;
const easy_bound = Rating.Easy === g ? this.param.w[16] : 1;
return (
diff --git a/src/fsrs/default.ts b/src/fsrs/default.ts
index 8eddf0c..e7cddd3 100644
--- a/src/fsrs/default.ts
+++ b/src/fsrs/default.ts
@@ -1,38 +1,19 @@
-import { Card, FSRSParameters, State, FSRS } from "./index";
-import dotenv from "dotenv";
-import { EnvParams } from "./type";
+import { Card, DateInput, FSRSParameters, State } from "./models";
+import { fixDate } from "./help";
-dotenv.config({ path: `./.env.local` });
-dotenv.config({ path: `./.env.production` });
-dotenv.config({ path: `./.env.` });
-dotenv.config({ path: `./.env.development` });
-
-export const envParams: EnvParams = {
- FSRS_REQUEST_RETENTION: Number(process.env.FSRS_REQUEST_RETENTION),
- FSRS_MAXIMUM_INTERVAL: Number(process.env.FSRS_MAXIMUM_INTERVAL),
- FSRS_W: process.env.FSRS_W
- ? JSON.parse(process.env.FSRS_W as string)
- : undefined,
- FSRS_ENABLE_FUZZ: Boolean(process.env.FSRS_ENABLE_FUZZ),
-};
-
-export const default_request_retention = !isNaN(
- envParams.FSRS_REQUEST_RETENTION,
-)
- ? envParams.FSRS_REQUEST_RETENTION
- : 0.9;
-export const default_maximum_interval = !isNaN(envParams.FSRS_MAXIMUM_INTERVAL)
- ? envParams.FSRS_MAXIMUM_INTERVAL
- : 36500;
-export const default_w = envParams.FSRS_W || [
+export const default_request_retention = 0.9;
+export const default_maximum_interval = 36500;
+export const default_w = [
0.4, 0.6, 2.4, 5.8, 4.93, 0.94, 0.86, 0.01, 1.49, 0.14, 0.94, 2.18, 0.05,
0.34, 1.26, 0.29, 2.61,
];
-export const default_enable_fuzz = envParams.FSRS_ENABLE_FUZZ || false;
+export const default_enable_fuzz = false;
-export const FSRSVersion: string = "3.0.6";
+export const FSRSVersion: string = "3.1.0";
-export const generatorParameters = (props?: Partial): FSRSParameters => {
+export const generatorParameters = (
+ props?: Partial,
+): FSRSParameters => {
return {
request_retention: props?.request_retention || default_request_retention,
maximum_interval: props?.maximum_interval || default_maximum_interval,
@@ -41,9 +22,9 @@ export const generatorParameters = (props?: Partial): FSRSParame
};
};
-export const createEmptyCard = (now?: Date): Card => {
+export const createEmptyCard = (now?: DateInput): Card => {
return {
- due: now || new Date(),
+ due: now ? fixDate(now) : new Date(),
stability: 0,
difficulty: 0,
elapsed_days: 0,
@@ -51,9 +32,6 @@ export const createEmptyCard = (now?: Date): Card => {
reps: 0,
lapses: 0,
state: State.New,
+ last_review: undefined,
};
};
-
-export const fsrs = (params?: Partial): FSRS => {
- return new FSRS(params || {});
-};
diff --git a/src/fsrs/fsrs.ts b/src/fsrs/fsrs.ts
index 46fbb23..6b39d68 100644
--- a/src/fsrs/fsrs.ts
+++ b/src/fsrs/fsrs.ts
@@ -1,6 +1,17 @@
-import { SchedulingCard } from "./index";
-import { fixDate, fixState } from "./help";
-import { FSRSParameters, Card, State, CardInput, DateInput, RecordLog } from "./models";
+import { SchedulingCard } from "./scheduler";
+import { fixDate, fixRating, fixState } from "./help";
+import {
+ Card,
+ CardInput,
+ DateInput,
+ FSRSParameters,
+ Rating,
+ RecordLog,
+ RecordLogItem,
+ ReviewLog,
+ ReviewLogInput,
+ State,
+} from "./models";
import type { int } from "./type";
import { FSRSAlgorithm } from "./algorithm";
@@ -9,27 +20,33 @@ export class FSRS extends FSRSAlgorithm {
super(param);
}
- preProcess(_card: CardInput, _now: DateInput) {
- const card: Card = {
+ private preProcessCard(_card: CardInput): Card {
+ return {
..._card,
state: fixState(_card.state),
due: fixDate(_card.due),
last_review: _card.last_review ? fixDate(_card.last_review) : undefined,
};
- const now = fixDate(_now);
- return { card, now };
+ }
+
+ private preProcessDate(_date: DateInput): Date {
+ return fixDate(_date);
+ }
+
+ private preProcessLog(_log: ReviewLogInput): ReviewLog {
+ return {
+ ..._log,
+ rating: fixRating(_log.rating),
+ state: fixState(_log.state),
+ review: fixDate(_log.review),
+ };
}
repeat = (card: CardInput, now: DateInput): RecordLog => {
- const process = this.preProcess(card, now);
- card = process.card;
- now = process.now;
- card.elapsed_days =
- card.state === State.New ? 0 : now.diff(card.last_review as Date, "days"); //相距时间
- card.last_review = now; // 上次复习时间
- card.reps += 1;
- const s = new SchedulingCard(card).update_state(card.state);
- this.seed = String(card.last_review.getTime()) + String(card.elapsed_days);
+ card = this.preProcessCard(card);
+ now = this.preProcessDate(now);
+ const s = new SchedulingCard(card, now).update_state(card.state);
+ this.seed = String(now.getTime()) + String(card.reps);
let easy_interval, good_interval, hard_interval;
switch (card.state) {
case State.New:
@@ -73,9 +90,8 @@ export class FSRS extends FSRSAlgorithm {
};
get_retrievability = (card: Card, now: Date): undefined | string => {
- const process = this.preProcess(card, now);
- card = process.card;
- now = process.now;
+ card = this.preProcessCard(card);
+ now = this.preProcessDate(now);
if (card.state !== State.Review) {
return undefined;
}
@@ -84,4 +100,81 @@ export class FSRS extends FSRSAlgorithm {
(this.current_retrievability(t, card.stability) * 100).toFixed(2) + "%"
);
};
+
+ rollback = (card: CardInput, log: ReviewLogInput): Card => {
+ card = this.preProcessCard(card);
+ log = this.preProcessLog(log);
+ if (log.rating === Rating.Manual) {
+ throw new Error("Cannot rollback a manual rating");
+ }
+ let last_due, last_review, last_lapses;
+ switch (log.state) {
+ case State.New:
+ last_due = log.due;
+ last_review = undefined;
+ last_lapses = 0;
+ break;
+ case State.Learning:
+ case State.Relearning:
+ case State.Review:
+ last_due = log.review;
+ last_review = log.due;
+ last_lapses =
+ card.lapses -
+ (log.rating === Rating.Again && log.state === State.Review ? 1 : 0);
+ break;
+ }
+
+ return {
+ ...card,
+ due: last_due,
+ stability: log.stability,
+ difficulty: log.difficulty,
+ elapsed_days: log.last_elapsed_days,
+ scheduled_days: log.scheduled_days,
+ reps: Math.max(0, card.reps - 1),
+ lapses: Math.max(0, last_lapses),
+ state: log.state,
+ last_review: last_review,
+ };
+ };
+
+ forget = (
+ card: CardInput,
+ now: DateInput,
+ reset_count: boolean = false,
+ ): RecordLogItem => {
+ card = this.preProcessCard(card);
+ now = this.preProcessDate(now);
+ const scheduled_days =
+ card.state === State.New ? 0 : now.diff(card.last_review as Date, "days");
+ const forget_log: ReviewLog = {
+ rating: Rating.Manual,
+ state: card.state,
+ due: card.due,
+ stability: card.stability,
+ difficulty: card.difficulty,
+ elapsed_days: 0,
+ last_elapsed_days: card.elapsed_days,
+ scheduled_days: scheduled_days,
+ review: now,
+ };
+ const forget_card: Card = {
+ ...card,
+ due: now,
+ stability: 0,
+ difficulty: 0,
+ elapsed_days: 0,
+ scheduled_days: 0,
+ reps: reset_count ? 0 : card.reps,
+ lapses: reset_count ? 0 : card.lapses,
+ state: State.New,
+ last_review: card.last_review,
+ };
+ return { card: forget_card, log: forget_log };
+ };
}
+
+export const fsrs = (params?: Partial) => {
+ return new FSRS(params || {});
+};
\ No newline at end of file
diff --git a/src/fsrs/help.ts b/src/fsrs/help.ts
index 09e3782..c422e11 100644
--- a/src/fsrs/help.ts
+++ b/src/fsrs/help.ts
@@ -1,5 +1,5 @@
import type { int, unit } from "./type";
-import { Rating, State } from "./models";
+import {Grade, Rating, State} from "./models";
declare global {
export interface Date {
@@ -144,4 +144,5 @@ export function fixRating(value: unknown): Rating {
throw new Error(`Invalid rating:[${value}]`);
}
-export const Grades = [Rating.Again, Rating.Hard, Rating.Good, Rating.Easy];
\ No newline at end of file
+
+export const Grades: Grade[] = [Rating.Again, Rating.Hard, Rating.Good, Rating.Easy];
\ No newline at end of file
diff --git a/src/fsrs/index.ts b/src/fsrs/index.ts
index 1d3688c..abb5411 100644
--- a/src/fsrs/index.ts
+++ b/src/fsrs/index.ts
@@ -6,15 +6,16 @@ export {
default_enable_fuzz,
FSRSVersion,
generatorParameters,
- createEmptyCard,
- fsrs,
- envParams
+ createEmptyCard
} from "./default";
export {
date_scheduler,
date_diff,
formatDate,
show_diff_message,
+ fixState,
+ fixDate,
+ fixRating,
Grades
} from "./help";
@@ -27,8 +28,9 @@ export type {
RecordLogItem,
StateType,
RatingType,
+ Grade,
CardInput,
DateInput
} from "./models";
export { State, Rating } from "./models";
-export { FSRS } from "./fsrs";
\ No newline at end of file
+export { FSRS,fsrs } from "./fsrs";
\ No newline at end of file
diff --git a/src/fsrs/models.ts b/src/fsrs/models.ts
index c0516e2..fa7084f 100644
--- a/src/fsrs/models.ts
+++ b/src/fsrs/models.ts
@@ -10,16 +10,25 @@ export enum State {
export type RatingType = "Again" | "Hard" | "Good" | "Easy";
export enum Rating {
+ Manual = 0,
Again = 1,
Hard = 2,
Good = 3,
Easy = 4,
}
+type ExcludeManual = Exclude;
+
+export type Grade = ExcludeManual;
+
export interface ReviewLog {
rating: Rating;
state: State;
+ due:Date;
+ stability: number;
+ difficulty: number;
elapsed_days: number;
+ last_elapsed_days: number;
scheduled_days: number;
review: Date;
}
@@ -27,7 +36,7 @@ export type RecordLogItem = {
card: Card; log: ReviewLog
}
export type RecordLog = {
- [key in Rating]: RecordLogItem;
+ [key in Grade]: RecordLogItem;
};
export interface Card {
@@ -44,6 +53,10 @@ export interface Card {
export type CardInput = Card & { state: StateType | State };
export type DateInput = Date | number | string;
+export type ReviewLogInput = ReviewLog & {
+ rating: RatingType | Rating;
+ state: StateType | State;
+};
export interface FSRSParameters {
request_retention: number;
diff --git a/src/fsrs/scheduler.ts b/src/fsrs/scheduler.ts
index 493531a..c94f2a8 100644
--- a/src/fsrs/scheduler.ts
+++ b/src/fsrs/scheduler.ts
@@ -6,6 +6,8 @@ export class SchedulingCard {
hard: Card;
good: Card;
easy: Card;
+ last_review: Date;
+ last_elapsed_days: number;
private copy(card: Card): Card {
return {
@@ -13,7 +15,13 @@ export class SchedulingCard {
};
}
- constructor(card: Card) {
+ constructor(card: Card, now: Date) {
+ this.last_review = card.last_review || card.due;
+ this.last_elapsed_days = card.elapsed_days;
+ card.elapsed_days =
+ card.state === State.New ? 0 : now.diff(card.last_review as Date, "days"); //相距时间
+ card.last_review = now; // 上次复习时间
+ card.reps += 1;
this.again = this.copy(card);
this.hard = this.copy(card);
this.good = this.copy(card);
@@ -69,8 +77,12 @@ export class SchedulingCard {
log: {
rating: Rating.Again,
state: card.state,
- elapsed_days: this.again.scheduled_days,
- scheduled_days: card.elapsed_days,
+ due: this.last_review,
+ stability: card.stability,
+ difficulty: card.difficulty,
+ elapsed_days: card.elapsed_days,
+ last_elapsed_days: this.last_elapsed_days,
+ scheduled_days: card.scheduled_days,
review: now,
},
},
@@ -79,8 +91,12 @@ export class SchedulingCard {
log: {
rating: Rating.Hard,
state: card.state,
- elapsed_days: this.hard.scheduled_days,
- scheduled_days: card.elapsed_days,
+ due: this.last_review,
+ stability: card.stability,
+ difficulty: card.difficulty,
+ elapsed_days: card.elapsed_days,
+ last_elapsed_days: this.last_elapsed_days,
+ scheduled_days: card.scheduled_days,
review: now,
},
},
@@ -89,8 +105,12 @@ export class SchedulingCard {
log: {
rating: Rating.Good,
state: card.state,
- elapsed_days: this.good.scheduled_days,
- scheduled_days: card.elapsed_days,
+ due: this.last_review,
+ stability: card.stability,
+ difficulty: card.difficulty,
+ elapsed_days: card.elapsed_days,
+ last_elapsed_days: this.last_elapsed_days,
+ scheduled_days: card.scheduled_days,
review: now,
},
},
@@ -99,8 +119,12 @@ export class SchedulingCard {
log: {
rating: Rating.Easy,
state: card.state,
- elapsed_days: this.easy.scheduled_days,
- scheduled_days: card.elapsed_days,
+ due: this.last_review,
+ stability: card.stability,
+ difficulty: card.difficulty,
+ elapsed_days: card.elapsed_days,
+ last_elapsed_days: this.last_elapsed_days,
+ scheduled_days: card.scheduled_days,
review: now,
},
},
diff --git a/src/fsrs/type.ts b/src/fsrs/type.ts
index 1d53154..4aced0a 100644
--- a/src/fsrs/type.ts
+++ b/src/fsrs/type.ts
@@ -1,10 +1,3 @@
export type unit = "days" | "minutes";
export type int = number & { __int__: void };
export type double = number & { __double__: void };
-
-export interface EnvParams{
- FSRS_REQUEST_RETENTION:number,
- FSRS_MAXIMUM_INTERVAL:number,
- FSRS_W?:number[],
- FSRS_ENABLE_FUZZ?:boolean
-}
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index 25fdd9f..f612557 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -11,11 +11,8 @@
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
/* Language and Environment */
- "target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
- "lib": [
- "ES2022",
- "dom"
- ], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ "lib": ["esnext", "dom", "dom.iterable"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
// "jsx": "preserve", /* Specify what JSX code is generated. */
// "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
@@ -28,9 +25,9 @@
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
/* Modules */
- "module": "commonjs", /* Specify what module code is generated. */
+ "module": "ESNext", /* Specify what module code is generated. */
// "rootDir": "./", /* Specify the root folder within your source files. */
- // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
+ "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
@@ -50,7 +47,7 @@
"declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
- // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
+ "sourceMap": true, /* Create source map files for emitted JavaScript files. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
"outDir": "./dist", /* Specify an output folder for all emitted files. */
// "removeComments": true, /* Disable emitting comments. */
@@ -104,5 +101,6 @@
"skipLibCheck": true /* Skip type checking all .d.ts files. */
},
"include": ["src"],
- "exclude": ["node_modules", "**/__tests__/*"]
+ "exclude": ["node_modules", "**/__tests__/*"],
+ "detectCycles": true
}