diff --git a/.github/workflows/is-semantic-pr.yml b/.github/workflows/is-semantic-pr.yml index a41a36975..2a8f41259 100644 --- a/.github/workflows/is-semantic-pr.yml +++ b/.github/workflows/is-semantic-pr.yml @@ -8,6 +8,6 @@ jobs: if: ${{ startsWith(github.head_ref, 'depfu/batch_dev/') != true }} steps: - name: 🤖 is-semantic-release - uses: sebbo2002/action-is-semantic-pr@v1.0.2 + uses: sebbo2002/action-is-semantic-pr@main with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-bot.yml b/.github/workflows/release-bot.yml index 685c0ae60..23644bdea 100644 --- a/.github/workflows/release-bot.yml +++ b/.github/workflows/release-bot.yml @@ -12,16 +12,16 @@ jobs: if: ${{ github.repository != 'sebbo2002/js-template' }} steps: - name: ☁️ Checkout Project - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: ☁️ Checkout ReleaseBot - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: sebbo2002/release-bot path: ./.actions/release-bot - name: 🔧 Setup node uses: actions/setup-node@v3 with: - node-version: '14' + node-version: '20' cache: 'npm' - name: 📦 Install Dependencies run: npm ci diff --git a/.github/workflows/test-release.yml b/.github/workflows/test-release.yml index b60ffb00e..dfb10b2ed 100644 --- a/.github/workflows/test-release.yml +++ b/.github/workflows/test-release.yml @@ -15,17 +15,15 @@ jobs: if: github.repository != 'sebbo2002/js-template' && (contains(toJson(github.event.commits.*.message), '[skip ci]') == false || github.ref == 'refs/heads/main') strategy: matrix: - node: [14.x, 16.x, 18.x] + node: [16.x, 18.x, 20.x] steps: - name: ☁️ Checkout Project - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: 🔧 Setup node.js uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} cache: 'npm' - - name: 🔧 Upgrade npm - run: npm install -g npm@latest - name: 📦 Install dependencies run: npm ci - name: ⏳ Run tests @@ -37,7 +35,7 @@ jobs: if: github.repository != 'sebbo2002/js-template' && (contains(toJson(github.event.commits.*.message), '[skip ci]') == false || github.ref == 'refs/heads/main') steps: - name: ☁️ Checkout Project - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: 🔧 Setup node.js uses: actions/setup-node@v3 with: @@ -55,7 +53,7 @@ jobs: if: contains(toJson(github.event.commits.*.message), '[skip ci]') == false || github.ref == 'refs/heads/main' steps: - name: ☁️ Checkout Project - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: 🔧 Setup node.js uses: actions/setup-node@v3 with: @@ -69,6 +67,11 @@ jobs: name: Release runs-on: ubuntu-latest concurrency: release + permissions: + contents: write + issues: write + pull-requests: write + id-token: write needs: - coverage - tests @@ -76,11 +79,12 @@ jobs: if: ${{ github.repository != 'sebbo2002/js-template' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop') }} steps: - name: ☁️ Checkout Project - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: 🔧 Setup node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20.x + cache: 'npm' - name: 📦 Install dependencies run: npm ci - name: 📂 Create docs folder @@ -92,6 +96,7 @@ jobs: GH_TOKEN: ${{ secrets.GH_TOKEN }} GH_OWNER: ${{ github.repository_owner }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NPM_CONFIG_PROVENANCE: true - name: 🔃 Merge main back into develop if: ${{ github.ref == 'refs/heads/main' }} uses: everlytic/branch-merge@1.1.5 diff --git a/CHANGELOG.md b/CHANGELOG.md index eb505080e..50257b288 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,6 @@ ## [5.0.1](https://github.com/sebbo2002/ical-generator/compare/v5.0.0...v5.0.1) (2023-08-17) -### Bug Fixes - -* double-quotes and missing filename variable ([30fcccd](https://github.com/sebbo2002/ical-generator/commit/30fcccdfb1253c37f9211833a6d74ecbf953b892)) -* indentation, semicolons and quoting ([2dd4d24](https://github.com/sebbo2002/ical-generator/commit/2dd4d2494d18af843a22005a61627a3461ec29e2)) - -## [5.0.1-develop.1](https://github.com/sebbo2002/ical-generator/compare/v5.0.0...v5.0.1-develop.1) (2023-07-30) - - ### Bug Fixes * double-quotes and missing filename variable ([30fcccd](https://github.com/sebbo2002/ical-generator/commit/30fcccdfb1253c37f9211833a6d74ecbf953b892)) @@ -22,18 +14,6 @@ * Deprecate node.js v14 / v17 ([7a2de45](https://github.com/sebbo2002/ical-generator/commit/7a2de45c12f19a1ec441b3a004f4aa935efc197c)) -### BREAKING CHANGES - -* The node.js versions v14 and v17 are no longer maintained and are therefore no longer supported. See https://nodejs.dev/en/about/releases/ for more details on node.js release cycles. - -# [5.0.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v4.1.0...v5.0.0-develop.1) (2023-06-14) - - -### Build System - -* Deprecate node.js v14 / v17 ([7a2de45](https://github.com/sebbo2002/ical-generator/commit/7a2de45c12f19a1ec441b3a004f4aa935efc197c)) - - ### BREAKING CHANGES * The node.js versions v14 and v17 are no longer maintained and are therefore no longer supported. See https://nodejs.dev/en/about/releases/ for more details on node.js release cycles. @@ -48,28 +28,6 @@ * revert package-lock.json ([a8d8f2d](https://github.com/sebbo2002/ical-generator/commit/a8d8f2d45b039e80689e3cf9ac774645d6b3ccc9)) -### Features - -* Support trigger related behavior ([54743df](https://github.com/sebbo2002/ical-generator/commit/54743df1cce615f3df2c155c51928674afc2e3d7)) - -# [4.1.0-develop.3](https://github.com/sebbo2002/ical-generator/compare/v4.1.0-develop.2...v4.1.0-develop.3) (2023-05-02) - - -### Bug Fixes - -* Allow `null` return value for Luxon 3.3's DateTime.toJSON() ([bee19a8](https://github.com/sebbo2002/ical-generator/commit/bee19a8e70bc690b93175c2da2a35240c55032bd)), closes [#482](https://github.com/sebbo2002/ical-generator/issues/482) [#485](https://github.com/sebbo2002/ical-generator/issues/485) - -# [4.1.0-develop.2](https://github.com/sebbo2002/ical-generator/compare/v4.1.0-develop.1...v4.1.0-develop.2) (2023-04-29) - -# [4.1.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v4.0.0...v4.1.0-develop.1) (2023-04-24) - - -### Bug Fixes - -* revent changes to package.json version ([916e460](https://github.com/sebbo2002/ical-generator/commit/916e460af591ff1ebb1c757dfc9762667331f598)) -* revert package-lock.json ([a8d8f2d](https://github.com/sebbo2002/ical-generator/commit/a8d8f2d45b039e80689e3cf9ac774645d6b3ccc9)) - - ### Features * Support trigger related behavior ([54743df](https://github.com/sebbo2002/ical-generator/commit/54743df1cce615f3df2c155c51928674afc2e3d7)) @@ -100,50 +58,6 @@ * From now on, only node.js ^14.8.0 || >=16.0.0 are supported * Only Support for node.js ^12.20.0 || >=14.13.1 -# [4.0.0-develop.2](https://github.com/sebbo2002/ical-generator/compare/v4.0.0-develop.1...v4.0.0-develop.2) (2023-03-22) - - -### Build System - -* Deprecate node.js 12 ([426588b](https://github.com/sebbo2002/ical-generator/commit/426588b4bb7bde2924bbc92006ca839e960872e1)) -* Native ESM support ([7b86a4f](https://github.com/sebbo2002/ical-generator/commit/7b86a4f1187c387a3a5792e1fb72d822b04e3631)) - - -### BREAKING CHANGES - -* From now on, only node.js ^14.8.0 || >=16.0.0 are supported -* Only Support for node.js ^12.20.0 || >=14.13.1 - -# [4.0.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.6.2-develop.4...v4.0.0-develop.1) (2023-03-17) - - -### Features - -* ESM Module ([7e1f07a](https://github.com/sebbo2002/ical-generator/commit/7e1f07afe6ff60100df61887e6a063b382f75340)) - - -### BREAKING CHANGES - -* Importing the generator with `const ical = require('ical-generator');` (introduced with 2.1.0 / #253) will not work anymore, please use `const { default: ical } = require('ical-generator');` or move to fancy ESM imports (`import ical from 'ical-generator' ;`). - -## [3.6.2-develop.4](https://github.com/sebbo2002/ical-generator/compare/v3.6.2-develop.3...v3.6.2-develop.4) (2023-02-19) - -## [3.6.2-develop.3](https://github.com/sebbo2002/ical-generator/compare/v3.6.2-develop.2...v3.6.2-develop.3) (2023-02-10) - - -### Bug Fixes - -* Update escaping for quoted values ([faf5c70](https://github.com/sebbo2002/ical-generator/commit/faf5c70771fb62284cd9db936b0f5812e8353730)), closes [#463](https://github.com/sebbo2002/ical-generator/issues/463) - -## [3.6.2-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.6.2-develop.1...v3.6.2-develop.2) (2023-02-05) - - -### Bug Fixes - -* **Event:** Add `RRULE:` prefix in event.repeating() if it's not already there ([92c2034](https://github.com/sebbo2002/ical-generator/commit/92c2034cae51c0e8199b6cf1746adfe7bdc85a60)), closes [#459](https://github.com/sebbo2002/ical-generator/issues/459) - -## [3.6.2-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.6.1...v3.6.2-develop.1) (2023-01-03) - ## [3.6.1](https://github.com/sebbo2002/ical-generator/compare/v3.6.0...v3.6.1) (2022-12-27) @@ -151,27 +65,9 @@ * **Event:** Return floating repeating until/excluded dates if floating ([011123e](https://github.com/sebbo2002/ical-generator/commit/011123ee284f8355203f2a2f2f2dc06b22e478af)), closes [#442](https://github.com/sebbo2002/ical-generator/issues/442) -## [3.6.1-develop.3](https://github.com/sebbo2002/ical-generator/compare/v3.6.1-develop.2...v3.6.1-develop.3) (2022-12-20) - - -### Bug Fixes - -* **Event:** Return floating repeating until/excluded dates if floating ([011123e](https://github.com/sebbo2002/ical-generator/commit/011123ee284f8355203f2a2f2f2dc06b22e478af)), closes [#442](https://github.com/sebbo2002/ical-generator/issues/442) - -## [3.6.1-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.6.1-develop.1...v3.6.1-develop.2) (2022-12-11) - -## [3.6.1-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.6.0...v3.6.1-develop.1) (2022-12-04) - # [3.6.0](https://github.com/sebbo2002/ical-generator/compare/v3.5.2...v3.6.0) (2022-10-11) -### Features - -* **Event:** Update `bySetPos` and `byMonthDay` ([b19e94b](https://github.com/sebbo2002/ical-generator/commit/b19e94bdc9408acfb6e64d93de614ad25edb4ad0)), closes [#430](https://github.com/sebbo2002/ical-generator/issues/430) - -# [3.6.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.5.2...v3.6.0-develop.1) (2022-10-10) - - ### Features * **Event:** Update `bySetPos` and `byMonthDay` ([b19e94b](https://github.com/sebbo2002/ical-generator/commit/b19e94bdc9408acfb6e64d93de614ad25edb4ad0)), closes [#430](https://github.com/sebbo2002/ical-generator/issues/430) @@ -183,27 +79,9 @@ * Include source files in npm module to allow sourcemap resolving ([2760b75](https://github.com/sebbo2002/ical-generator/commit/2760b75e67c2eb224ae1c38e8de94b4056cda7c2)), closes [#426](https://github.com/sebbo2002/ical-generator/issues/426) -## [3.5.2-develop.3](https://github.com/sebbo2002/ical-generator/compare/v3.5.2-develop.2...v3.5.2-develop.3) (2022-09-24) - -## [3.5.2-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.5.2-develop.1...v3.5.2-develop.2) (2022-09-24) - - -### Bug Fixes - -* Include source files in npm module to allow sourcemap resolving ([2760b75](https://github.com/sebbo2002/ical-generator/commit/2760b75e67c2eb224ae1c38e8de94b4056cda7c2)), closes [#426](https://github.com/sebbo2002/ical-generator/issues/426) - -## [3.5.2-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.5.1...v3.5.2-develop.1) (2022-08-30) - ## [3.5.1](https://github.com/sebbo2002/ical-generator/compare/v3.5.0...v3.5.1) (2022-07-28) -### Bug Fixes - -* Remove private property from moment stub ([792adb6](https://github.com/sebbo2002/ical-generator/commit/792adb6985b88b69756916343d4c5c7929f5a82d)), closes [#411](https://github.com/sebbo2002/ical-generator/issues/411) - -## [3.5.1-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.5.0...v3.5.1-develop.1) (2022-07-28) - - ### Bug Fixes * Remove private property from moment stub ([792adb6](https://github.com/sebbo2002/ical-generator/commit/792adb6985b88b69756916343d4c5c7929f5a82d)), closes [#411](https://github.com/sebbo2002/ical-generator/issues/411) @@ -215,40 +93,8 @@ * Replace external types with stub types ([56cffc7](https://github.com/sebbo2002/ical-generator/commit/56cffc7a4e9f741e779d445bfaf749b6885a4504)), closes [#405](https://github.com/sebbo2002/ical-generator/issues/405) -# [3.5.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.4.4-develop.8...v3.5.0-develop.1) (2022-07-25) - - -### Features - -* Replace external types with stub types ([56cffc7](https://github.com/sebbo2002/ical-generator/commit/56cffc7a4e9f741e779d445bfaf749b6885a4504)), closes [#405](https://github.com/sebbo2002/ical-generator/issues/405) - -## [3.4.4-develop.8](https://github.com/sebbo2002/ical-generator/compare/v3.4.4-develop.7...v3.4.4-develop.8) (2022-07-06) - -## [3.4.4-develop.7](https://github.com/sebbo2002/ical-generator/compare/v3.4.4-develop.6...v3.4.4-develop.7) (2022-06-10) - -## [3.4.4-develop.6](https://github.com/sebbo2002/ical-generator/compare/v3.4.4-develop.5...v3.4.4-develop.6) (2022-06-09) - -## [3.4.4-develop.5](https://github.com/sebbo2002/ical-generator/compare/v3.4.4-develop.4...v3.4.4-develop.5) (2022-06-07) - -## [3.4.4-develop.4](https://github.com/sebbo2002/ical-generator/compare/v3.4.4-develop.3...v3.4.4-develop.4) (2022-06-03) - -## [3.4.4-develop.3](https://github.com/sebbo2002/ical-generator/compare/v3.4.4-develop.2...v3.4.4-develop.3) (2022-05-22) - -## [3.4.4-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.4.4-develop.1...v3.4.4-develop.2) (2022-05-19) - - -### Reverts - -* Revert "ci: Remove GH_TOKEN and use GITHUB_TOKEN" ([b5c2eb6](https://github.com/sebbo2002/ical-generator/commit/b5c2eb66170b38bda1e49ad5bb5cf02bd13eb8e4)) - -## [3.4.4-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.4.3...v3.4.4-develop.1) (2022-05-19) - ## [3.4.3](https://github.com/sebbo2002/ical-generator/compare/v3.4.2...v3.4.3) (2022-05-14) -## [3.4.3-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.4.3-develop.1...v3.4.3-develop.2) (2022-05-13) - -## [3.4.3-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.4.2...v3.4.3-develop.1) (2022-05-01) - ## [3.4.2](https://github.com/sebbo2002/ical-generator/compare/v3.4.1...v3.4.2) (2022-04-28) @@ -256,21 +102,8 @@ * Do not escape quotes when not required ([08a4d62](https://github.com/sebbo2002/ical-generator/commit/08a4d626045c586302792b112c35496dd676af1d)), closes [#377](https://github.com/sebbo2002/ical-generator/issues/377) -## [3.4.2-develop.3](https://github.com/sebbo2002/ical-generator/compare/v3.4.2-develop.2...v3.4.2-develop.3) (2022-04-28) - -## [3.4.2-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.4.2-develop.1...v3.4.2-develop.2) (2022-04-27) - - -### Bug Fixes - -* Do not escape quotes when not required ([08a4d62](https://github.com/sebbo2002/ical-generator/commit/08a4d626045c586302792b112c35496dd676af1d)), closes [#377](https://github.com/sebbo2002/ical-generator/issues/377) - -## [3.4.2-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.4.1...v3.4.2-develop.1) (2022-04-09) - ## [3.4.1](https://github.com/sebbo2002/ical-generator/compare/v3.4.0...v3.4.1) (2022-03-31) -## [3.4.1-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.4.0...v3.4.1-develop.1) (2022-03-31) - # [3.4.0](https://github.com/sebbo2002/ical-generator/compare/v3.3.0...v3.4.0) (2022-03-21) @@ -288,13 +121,6 @@ ## [3.2.1](https://github.com/sebbo2002/ical-generator/compare/v3.2.0...v3.2.1) (2022-01-28) -### Bug Fixes - -* Update error URLs ([2628464](https://github.com/sebbo2002/ical-generator/commit/262846466808a043b4b241a17b38503c7949e78f)), closes [#343](https://github.com/sebbo2002/ical-generator/issues/343) - -## [3.2.1-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.2.0...v3.2.1-develop.1) (2022-01-18) - - ### Bug Fixes * Update error URLs ([2628464](https://github.com/sebbo2002/ical-generator/commit/262846466808a043b4b241a17b38503c7949e78f)), closes [#343](https://github.com/sebbo2002/ical-generator/issues/343) @@ -307,20 +133,6 @@ * **Attendee:** Print RSVP also if rsvp is set to false ([27e5166](https://github.com/sebbo2002/ical-generator/commit/27e51668710c3f6eff4c3ad4c5e64028444aca05)), closes [#340](https://github.com/sebbo2002/ical-generator/issues/340) -### Features - -* **Events:** Add `createAttachment` / `attachments` ([12a382f](https://github.com/sebbo2002/ical-generator/commit/12a382fedb798460891d327bd9c112b1c97c38ee)), closes [#335](https://github.com/sebbo2002/ical-generator/issues/335) - -# [3.2.0-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.2.0-develop.1...v3.2.0-develop.2) (2022-01-10) - - -### Bug Fixes - -* **Attendee:** Print RSVP also if rsvp is set to false ([27e5166](https://github.com/sebbo2002/ical-generator/commit/27e51668710c3f6eff4c3ad4c5e64028444aca05)), closes [#340](https://github.com/sebbo2002/ical-generator/issues/340) - -# [3.2.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.1.1...v3.2.0-develop.1) (2022-01-03) - - ### Features * **Events:** Add `createAttachment` / `attachments` ([12a382f](https://github.com/sebbo2002/ical-generator/commit/12a382fedb798460891d327bd9c112b1c97c38ee)), closes [#335](https://github.com/sebbo2002/ical-generator/issues/335) @@ -328,13 +140,6 @@ ## [3.1.1](https://github.com/sebbo2002/ical-generator/compare/v3.1.0...v3.1.1) (2021-12-13) -### Bug Fixes - -* **CI:** Fix DockerHub container release ([01b7534](https://github.com/sebbo2002/ical-generator/commit/01b753406d1f1ef24a949c7d7b946d99b779d013)) - -## [3.1.1-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.1.0...v3.1.1-develop.1) (2021-12-06) - - ### Bug Fixes * **CI:** Fix DockerHub container release ([01b7534](https://github.com/sebbo2002/ical-generator/commit/01b753406d1f1ef24a949c7d7b946d99b779d013)) @@ -353,30 +158,6 @@ * **event:** Add support for event class ([a227aa2](https://github.com/sebbo2002/ical-generator/commit/a227aa27d293305e307861149aad3888caf5eafe)) * **Event:** Handle `timezone('UTC')` correctly ([781dc3d](https://github.com/sebbo2002/ical-generator/commit/781dc3d67296cef67652e8a97600f7678d6ac191)), closes [#328](https://github.com/sebbo2002/ical-generator/issues/328) -# [3.1.0-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.1.0-develop.1...v3.1.0-develop.2) (2021-11-08) - - -### Features - -* **Calendar:** Handle `timezone('UTC')` correctly ([c0745e5](https://github.com/sebbo2002/ical-generator/commit/c0745e50101d3f29e51ddecce7da4a4e445ccc81)), closes [#328](https://github.com/sebbo2002/ical-generator/issues/328) -* **Event:** Handle `timezone('UTC')` correctly ([781dc3d](https://github.com/sebbo2002/ical-generator/commit/781dc3d67296cef67652e8a97600f7678d6ac191)), closes [#328](https://github.com/sebbo2002/ical-generator/issues/328) - -# [3.1.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.0.2-develop.2...v3.1.0-develop.1) (2021-11-05) - - -### Features - -* **event:** Add support for event class ([a227aa2](https://github.com/sebbo2002/ical-generator/commit/a227aa27d293305e307861149aad3888caf5eafe)) - -## [3.0.2-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.0.2-develop.1...v3.0.2-develop.2) (2021-11-04) - - -### Bug Fixes - -* Remove Blob usage to support modern browsers ([c4e33d3](https://github.com/sebbo2002/ical-generator/commit/c4e33d3405338f42cc299cc927b851a67a88b3ad)), closes [#325](https://github.com/sebbo2002/ical-generator/issues/325) - -## [3.0.2-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.0.1...v3.0.2-develop.1) (2021-10-08) - ## [3.0.1](https://github.com/sebbo2002/ical-generator/compare/v3.0.0...v3.0.1) (2021-10-01) @@ -384,19 +165,6 @@ * **Event:** Append address to `LOCATION` even without `radius` / `geo` ([09ea62e](https://github.com/sebbo2002/ical-generator/commit/09ea62eb073bd79e66c8905841a93810fcea0634)), closes [#314](https://github.com/sebbo2002/ical-generator/issues/314) -## [3.0.1-develop.4](https://github.com/sebbo2002/ical-generator/compare/v3.0.1-develop.3...v3.0.1-develop.4) (2021-09-28) - -## [3.0.1-develop.3](https://github.com/sebbo2002/ical-generator/compare/v3.0.1-develop.2...v3.0.1-develop.3) (2021-09-20) - - -### Bug Fixes - -* **Event:** Append address to `LOCATION` even without `radius` / `geo` ([09ea62e](https://github.com/sebbo2002/ical-generator/commit/09ea62eb073bd79e66c8905841a93810fcea0634)), closes [#314](https://github.com/sebbo2002/ical-generator/issues/314) - -## [3.0.1-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.0.1-develop.1...v3.0.1-develop.2) (2021-09-02) - -## [3.0.1-develop.1](https://github.com/sebbo2002/ical-generator/compare/v3.0.0...v3.0.1-develop.1) (2021-08-31) - # [3.0.0](https://github.com/sebbo2002/ical-generator/compare/v2.2.0...v3.0.0) (2021-07-31) # [3.0.0-develop.8](https://github.com/sebbo2002/ical-generator/compare/v3.0.0-develop.7...v3.0.0-develop.8) (2021-08-26) diff --git a/README.md b/README.md index a6f3e4c92..ca287c6b1 100755 --- a/README.md +++ b/README.md @@ -25,14 +25,15 @@ to generate subscriptionable calendar feeds.

+## ⚠️ Migration to v6 +In version 6 some breaking changes were made to make `ical-generator` even better. A short list of +these breaking changes and how you can adapt your code can be found in our +[Migration Guide](https://github.com/sebbo2002/ical-generator/wiki/Migration-Guide:-v5-%E2%86%92-v6). + ## 📦 Installation npm install ical-generator - # For TypeScript Users - # (see "I use Typescript and get TS2307: Cannot find module errors" section below) - npm i -D @types/node rrule moment-timezone moment dayjs @types/luxon - ## ⚡️ Quick Start @@ -53,10 +54,16 @@ calendar.createEvent({ url: 'http://sebbo.net/' }); -http.createServer((req, res) => calendar.serve(res)) - .listen(3000, '127.0.0.1', () => { - console.log('Server running at http://127.0.0.1:3000/'); +http.createServer((req, res) => { + res.writeHead(200, { + 'Content-Type': 'text/calendar; charset=utf-8', + 'Content-Disposition': 'attachment; filename="calendar.ics"' }); + + res.end(calendar.toString()); +}).listen(3000, '127.0.0.1', () => { + console.log('Server running at http://127.0.0.1:3000/'); +}); ``` See the [examples](./examples) folder for more examples. @@ -114,19 +121,6 @@ npm run browser-test ## 🙋 FAQ -### What's `Error: Can't resolve 'fs'`? -`ical-generator` uses the node.js `fs` module to save your calendar on the filesystem. In browser environments, you usually don't need this, so if you pass `null` for fs in your bundler. In webpack this looks like this: - -```json -{ - "resolve": { - "fallback": { - "fs": false - } - } -} -``` - ### Where's the changelog? It's [here](https://github.com/sebbo2002/ical-generator/blob/develop/CHANGELOG.md). If you need the changelog for `ical-generator` 1.x.x and older, you'll find it [here](https://github.com/sebbo2002/ical-generator/blob/25338b8bf98f9afd3c88849e735fa33fa45fb766/CHANGELOG.md). diff --git a/examples/example-deno.ts b/examples/example-deno.ts new file mode 100644 index 000000000..d9d3af684 --- /dev/null +++ b/examples/example-deno.ts @@ -0,0 +1,18 @@ +'use strict'; + +import ical from 'npm:ical-generator'; + +const cal = ical(); +const event = cal.createEvent({ + start: new Date(), + end: new Date(), + summary: 'Example Event', + description: 'It works ;)', + organizer: 'Organizer\'s Name ', + url: 'https://example.com' +}); + +// update event's description +event.description('It still works ;)'); + +console.log(cal.toString()); diff --git a/examples/example-express.js b/examples/example-express.js index bfbdd5660..55f17cd28 100755 --- a/examples/example-express.js +++ b/examples/example-express.js @@ -20,7 +20,12 @@ const cal = ical({ const app = express(); app.get('/calendar', (req, res) => { - cal.serve(res); + res.writeHead(200, { + 'Content-Type': 'text/calendar; charset=utf-8', + 'Content-Disposition': 'attachment; filename="calendar.ics"' + }); + + res.end(cal.toString()); }); app.listen(3000); diff --git a/examples/example-http.js b/examples/example-http.js index e9b6bbdab..e2944a714 100755 --- a/examples/example-http.js +++ b/examples/example-http.js @@ -18,7 +18,12 @@ const cal = ical({ }); http.createServer(function (req, res) { - cal.serve(res); + res.writeHead(200, { + 'Content-Type': 'text/calendar; charset=utf-8', + 'Content-Disposition': 'attachment; filename="calendar.ics"' + }); + + res.end(cal.toString()); }).listen(3000, '127.0.0.1', function () { console.log('Server running at http://127.0.0.1:3000/'); }); diff --git a/examples/example-koa.js b/examples/example-koa.js index 834eeed3b..255c70fbd 100755 --- a/examples/example-koa.js +++ b/examples/example-koa.js @@ -20,9 +20,13 @@ const cal = ical({ const app = new Koa(); app.use(ctx => { - ctx.status = 200; // Koa defaults to 404 when it sees that status is unset - ctx.respond = false; // mark request as handled for Koa - cal.serve(ctx.res); + ctx.status = 200; + ctx.respond = false; + + ctx.set('Content-Type', 'text/calendar; charset=utf-8'); + ctx.set('Content-Disposition', 'attachment; filename="calendar.ics"'); + + ctx.body = cal.toString(); }); app.listen(3000); diff --git a/examples/example-micro.js b/examples/example-micro.js index b2a11f11e..0e1c4ac57 100644 --- a/examples/example-micro.js +++ b/examples/example-micro.js @@ -18,7 +18,12 @@ const cal = ical({ // start with $ micro example/example-micro.js module.exports = (req, res) => { - cal.serve(res); + res.writeHead(200, { + 'Content-Type': 'text/calendar; charset=utf-8', + 'Content-Disposition': 'attachment; filename="calendar.ics"' + }); + + res.end(cal.toString()); }; diff --git a/examples/example-quickstart.js b/examples/example-quickstart.js index c90bc73f4..cc2eb9018 100644 --- a/examples/example-quickstart.js +++ b/examples/example-quickstart.js @@ -14,7 +14,14 @@ calendar.createEvent({ url: 'http://sebbo.net/' }); -http.createServer((req, res) => calendar.serve(res)) +http.createServer((req, res) => { + res.writeHead(200, { + 'Content-Type': 'text/calendar; charset=utf-8', + 'Content-Disposition': 'attachment; filename="calendar.ics"' + }); + + res.end(calendar.toString()); +}) .listen(3000, '127.0.0.1', () => { console.log('Server running at http://127.0.0.1:3000/'); }); diff --git a/package-lock.json b/package-lock.json index a00f03451..acfcf8295 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,38 +12,36 @@ "uuid-random": "^1.3.2" }, "devDependencies": { - "@qiwi/semantic-release-gh-pages-plugin": "^5.2.6", + "@qiwi/semantic-release-gh-pages-plugin": "^5.2.8", "@semantic-release/changelog": "^6.0.3", "@semantic-release/exec": "^6.0.3", "@semantic-release/git": "^10.0.1", - "@semantic-release/npm": "^10.0.4", + "@semantic-release/npm": "^11.0.0", "@touch4it/ical-timezones": "^1.9.0", - "@types/luxon": "^3.3.1", - "@types/mocha": "^10.0.1", - "@types/node": "^20.4.2", - "@typescript-eslint/eslint-plugin": "^6.2.1", - "@typescript-eslint/parser": "^6.2.1", + "@types/luxon": "^3.3.2", + "@types/mocha": "^10.0.2", + "@typescript-eslint/eslint-plugin": "^6.8.0", + "@typescript-eslint/parser": "^6.8.0", "c8": "^8.0.1", - "dayjs": "^1.11.9", - "eslint": "^8.45.0", - "eslint-plugin-jsonc": "^2.9.0", + "dayjs": "^1.11.10", + "eslint": "^8.51.0", + "eslint-plugin-jsonc": "^2.10.0", "esm": "^3.2.25", "license-checker": "^25.0.1", - "luxon": "^3.3.0", + "luxon": "^3.4.3", "mocha": "^10.2.0", "mochawesome": "^7.1.3", "moment": "^2.29.4", "moment-timezone": "^0.5.43", "nyc": "^15.1.0", - "portfinder": "^1.0.32", "rrule": "^2.7.2", - "semantic-release": "^21.0.7", + "semantic-release": "^22.0.5", "semantic-release-license": "^1.0.2", "source-map-support": "^0.5.21", "ts-node": "^10.9.1", "tsup": "^7.2.0", - "typedoc": "^0.24.8", - "typescript": "^5.1.5" + "typedoc": "^0.25.2", + "typescript": "^5.2.2" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -52,7 +50,6 @@ "@touch4it/ical-timezones": ">=1.6.0", "@types/luxon": ">= 1.26.0", "@types/mocha": ">= 8.2.1", - "@types/node": ">= 15.0.0", "dayjs": ">= 1.10.0", "luxon": ">= 1.26.0", "moment": ">= 2.29.0", @@ -99,17 +96,89 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", @@ -168,26 +237,28 @@ } }, "node_modules/@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@babel/helper-compilation-targets": { @@ -217,39 +288,35 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -338,21 +405,30 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" @@ -382,13 +458,13 @@ } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -467,9 +543,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -479,32 +555,33 @@ } }, "node_modules/@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@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", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -522,12 +599,13 @@ } }, "node_modules/@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -939,9 +1017,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -980,18 +1058,18 @@ } }, "node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", + "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -1107,6 +1185,20 @@ "node": ">=8" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", @@ -1116,6 +1208,15 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", @@ -1348,9 +1449,9 @@ } }, "node_modules/@qiwi/semantic-release-gh-pages-plugin": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/@qiwi/semantic-release-gh-pages-plugin/-/semantic-release-gh-pages-plugin-5.2.6.tgz", - "integrity": "sha512-D3zOzTMbzdzv/NXraEVdvmA4Tn125udIK6FDn3pqKsBAIGGZ5ypu1jVPuJrZ6V/e8uT9IOIYnz3phqkBBT3Lfg==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@qiwi/semantic-release-gh-pages-plugin/-/semantic-release-gh-pages-plugin-5.2.8.tgz", + "integrity": "sha512-nUxPladlyQ0rK8JdQdAbxYBx3YG/68CsCKTuOC6VsuAAcnPSstjiLfmrAvu5GOyYSW4Qg3+kVMbZeYFQgJM6VA==", "dev": true, "dependencies": { "@qiwi/substrate": "^2.0.4", @@ -1362,13 +1463,13 @@ "aggregate-error": "^3.1.0", "debug": "^4.3.4", "execa": "^5.1.1", - "gh-pages": "^5.0.0", - "git-url-parse": "^12.0.0", + "gh-pages": "^6.0.0", + "git-url-parse": "^13.1.0", "lodash": "^4.17.21", "queuefy": "^1.2.1", "read-pkg": "^5.2.0", "then-request": "^6.0.2", - "tslib": "^2.6.0" + "tslib": "^2.6.1" } }, "node_modules/@qiwi/substrate": { @@ -1436,69 +1537,26 @@ } }, "node_modules/@semantic-release/commit-analyzer": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-10.0.1.tgz", - "integrity": "sha512-9ejHzTAijYs9z246sY/dKBatmOPcd0GQ7lH4MgLCkv1q4GCiDZRkjHJkaQZXZVaK7mJybS+sH3Ng6G8i3pYMGQ==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-11.0.0.tgz", + "integrity": "sha512-uEXyf4Z0AWJuxI9TbSQP5kkIYqus1/E1NcmE7pIv6d6/m/5EJcNWAGR4FOo34vrV26FhEaRVkxFfYzp/M7BKIg==", "dev": true, "dependencies": { - "conventional-changelog-angular": "^6.0.0", - "conventional-commits-filter": "^3.0.0", - "conventional-commits-parser": "^4.0.0", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", "debug": "^4.0.0", "import-from": "^4.0.0", "lodash-es": "^4.17.21", "micromatch": "^4.0.2" }, "engines": { - "node": ">=18" + "node": "^18.17 || >=20.6.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" } }, - "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-changelog-angular": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", - "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-commits-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", - "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", - "dev": true, - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-commits-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", - "dev": true, - "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/@semantic-release/error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", @@ -1685,19 +1743,19 @@ } }, "node_modules/@semantic-release/npm": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.4.tgz", - "integrity": "sha512-6R3timIQ7VoL2QWRkc9DG8v74RQtRp7UOe/2KbNaqwJ815qOibAv65bH3RtTEhs4axEaHoZf7HDgFs5opaZ9Jw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.0.tgz", + "integrity": "sha512-ozNCiPUp14Xp2rgeY7j96yFTEhDncLSWOJr0IAUr888+ax6fH5xgYkNVv08vpkV8C5GIXBgnGd9coRiOCD6oqQ==", "dev": true, "dependencies": { "@semantic-release/error": "^4.0.0", - "aggregate-error": "^4.0.1", - "execa": "^7.0.0", + "aggregate-error": "^5.0.0", + "execa": "^8.0.0", "fs-extra": "^11.0.0", "lodash-es": "^4.17.21", "nerf-dart": "^1.0.0", "normalize-url": "^8.0.0", - "npm": "^9.5.0", + "npm": "^10.0.0", "rc": "^1.2.8", "read-pkg": "^8.0.0", "registry-auth-token": "^5.0.0", @@ -1705,38 +1763,38 @@ "tempy": "^3.0.0" }, "engines": { - "node": ">=18" + "node": "^18.17 || >=20" }, "peerDependencies": { "semantic-release": ">=20.1.0" } }, "node_modules/@semantic-release/npm/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, "dependencies": { - "clean-stack": "^4.0.0", + "clean-stack": "^5.2.0", "indent-string": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/npm/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", "dev": true, "dependencies": { "escape-string-regexp": "5.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1755,28 +1813,40 @@ } }, "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/@semantic-release/npm/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@semantic-release/npm/node_modules/hosted-git-info": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", @@ -1790,12 +1860,12 @@ } }, "node_modules/@semantic-release/npm/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "engines": { - "node": ">=14.18.0" + "node": ">=16.17.0" } }, "node_modules/@semantic-release/npm/node_modules/indent-string": { @@ -1967,6 +2037,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/npm/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@semantic-release/npm/node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -1992,178 +2074,73 @@ } }, "node_modules/@semantic-release/release-notes-generator": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-11.0.1.tgz", - "integrity": "sha512-4deWsiY4Rg80oc9Ms11N20BIDgYkPMys4scNYQpi2Njdrtw5Z55nXKNsUN3kn6Sy/nI9dqqbp5L63TL4luI5Bw==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-12.0.0.tgz", + "integrity": "sha512-m7Ds8ComP1KJgA2Lke2xMwE1TOOU40U7AzP4lT8hJ2tUAeicziPz/1GeDFmRkTOkMFlfHvE6kuvMkvU+mIzIDQ==", "dev": true, "dependencies": { - "conventional-changelog-angular": "^5.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", + "conventional-changelog-angular": "^7.0.0", + "conventional-changelog-writer": "^7.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", "debug": "^4.0.0", - "get-stream": "^6.0.0", + "get-stream": "^7.0.0", "import-from": "^4.0.0", "into-stream": "^7.0.0", "lodash-es": "^4.17.21", - "read-pkg-up": "^9.0.0" + "read-pkg-up": "^10.0.0" }, "engines": { - "node": ">=18" + "node": "^18.17 || >=20.6.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", + "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "node_modules/@sindresorhus/is": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz", + "integrity": "sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==", "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/@touch4it/ical-timezones": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@touch4it/ical-timezones/-/ical-timezones-1.9.0.tgz", + "integrity": "sha512-UAiZMrFlgMdOIaJDPsKu5S7OecyMLr3GGALJTYkRgHmsHAA/8Ixm1qD09ELP2X7U1lqgrctEgvKj9GzMbczC+g==", "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 14.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true }, - "node_modules/@semantic-release/release-notes-generator/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@touch4it/ical-timezones": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@touch4it/ical-timezones/-/ical-timezones-1.9.0.tgz", - "integrity": "sha512-UAiZMrFlgMdOIaJDPsKu5S7OecyMLr3GGALJTYkRgHmsHAA/8Ixm1qD09ELP2X7U1lqgrctEgvKj9GzMbczC+g==", - "dev": true, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.8.tgz", - "integrity": "sha512-LM6XwBhjZRls1qJGpiM/It09SntEwe9M0riXRfQ9s6XlJQG0JPGl92ET18LtGeYh/GuOtafIXqwZeqLOd0FNFQ==", - "dev": true + "node_modules/@tsconfig/node12": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.8.tgz", + "integrity": "sha512-LM6XwBhjZRls1qJGpiM/It09SntEwe9M0riXRfQ9s6XlJQG0JPGl92ET18LtGeYh/GuOtafIXqwZeqLOd0FNFQ==", + "dev": true }, "node_modules/@tsconfig/node14": { "version": "1.0.1", @@ -2223,9 +2200,9 @@ "dev": true }, "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", + "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", "dev": true }, "node_modules/@types/lodash": { @@ -2235,21 +2212,15 @@ "dev": true }, "node_modules/@types/luxon": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.1.tgz", - "integrity": "sha512-XOS5nBcgEeP2PpcqJHjCWhUCAzGfXIU8ILOSLpx2FhxqMW9KdxgCGXNOEKGVBfveKtIpztHzKK5vSRVLyW/NqA==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.2.tgz", + "integrity": "sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ==", "dev": true }, "node_modules/@types/mocha": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.2.tgz", + "integrity": "sha512-NaHL0+0lLNhX6d9rs+NSt97WH/gIlRHmszXbQ/8/MV/eVcFNdeJ/GYhrFuUc8K7WuPhRhTSdMkCp8VMzhUq85w==", "dev": true }, "node_modules/@types/ms": { @@ -2259,9 +2230,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.4.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", - "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==", + "version": "20.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.3.tgz", + "integrity": "sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -2286,27 +2257,26 @@ } }, "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.1.tgz", - "integrity": "sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.8.0.tgz", + "integrity": "sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/type-utils": "6.2.1", - "@typescript-eslint/utils": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/scope-manager": "6.8.0", + "@typescript-eslint/type-utils": "6.8.0", + "@typescript-eslint/utils": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", "natural-compare": "^1.4.0", - "natural-compare-lite": "^1.4.0", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -2328,15 +2298,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.2.1.tgz", - "integrity": "sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.8.0.tgz", + "integrity": "sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/typescript-estree": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/scope-manager": "6.8.0", + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/typescript-estree": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0", "debug": "^4.3.4" }, "engines": { @@ -2356,13 +2326,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.2.1.tgz", - "integrity": "sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz", + "integrity": "sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1" + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2373,13 +2343,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.2.1.tgz", - "integrity": "sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.8.0.tgz", + "integrity": "sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.2.1", - "@typescript-eslint/utils": "6.2.1", + "@typescript-eslint/typescript-estree": "6.8.0", + "@typescript-eslint/utils": "6.8.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -2400,9 +2370,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.2.1.tgz", - "integrity": "sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.8.0.tgz", + "integrity": "sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2413,13 +2383,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.1.tgz", - "integrity": "sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz", + "integrity": "sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2440,17 +2410,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.2.1.tgz", - "integrity": "sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.8.0.tgz", + "integrity": "sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/typescript-estree": "6.2.1", + "@typescript-eslint/scope-manager": "6.8.0", + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/typescript-estree": "6.8.0", "semver": "^7.5.4" }, "engines": { @@ -2465,12 +2435,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.1.tgz", - "integrity": "sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz", + "integrity": "sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.2.1", + "@typescript-eslint/types": "6.8.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -2568,27 +2538,27 @@ } }, "node_modules/ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", + "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", "dev": true, "dependencies": { - "type-fest": "^1.0.2" + "type-fest": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2700,7 +2670,7 @@ "node_modules/array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true }, "node_modules/array-union": { @@ -2721,30 +2691,12 @@ "node": ">=0.10.0" } }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -2972,23 +2924,6 @@ "node": ">=6" } }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001237", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz", @@ -3034,6 +2969,15 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -3133,10 +3077,13 @@ } }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true, + "engines": { + "node": ">=16" + } }, "node_modules/commondir": { "version": "1.0.1", @@ -3186,81 +3133,62 @@ } }, "node_modules/conventional-changelog-angular": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz", - "integrity": "sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", "dev": true, "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz", + "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==", "dev": true, "dependencies": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", + "conventional-commits-filter": "^4.0.0", "handlebars": "^4.7.7", "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" + "meow": "^12.0.1", + "semver": "^7.5.2", + "split2": "^4.0.0" }, "bin": { - "conventional-changelog-writer": "cli.js" + "conventional-changelog-writer": "cli.mjs" }, "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node": ">=16" } }, "node_modules/conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", + "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", "dev": true, - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-commits-parser": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz", - "integrity": "sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", "dev": true, "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" }, "bin": { - "conventional-commits-parser": "cli.js" + "conventional-commits-parser": "cli.mjs" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/convert-source-map": { @@ -3358,19 +3286,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/dayjs": { - "version": "1.11.9", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", - "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==", + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", "dev": true }, "node_modules/debug": { @@ -3408,28 +3327,6 @@ "node": ">=0.10.0" } }, - "node_modules/decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -3554,49 +3451,67 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "dev": true + }, "node_modules/env-ci": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.0.0.tgz", - "integrity": "sha512-Q3cjr1tX9xwigprw4G8M3o7PIOO/1LYji6TyGsbD1WfMmD23etZvhgmPXJqkP788yH4dgSSK7oaIMuaayUJIfg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-10.0.0.tgz", + "integrity": "sha512-U4xcd/utDYFgMh0yWj07R1H6L5fwhVbmxBCpnL0DbVSDZVnsC82HONw0wxtxNkIAcua3KtbomQvIk5xFZGAQJw==", "dev": true, "dependencies": { - "execa": "^7.0.0", + "execa": "^8.0.0", "java-properties": "^1.0.2" }, "engines": { - "node": "^16.14 || >=18" + "node": "^18.17 || >=20.6.1" } }, "node_modules/env-ci/node_modules/execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/env-ci/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/env-ci/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "engines": { - "node": ">=14.18.0" + "node": ">=16.17.0" } }, "node_modules/env-ci/node_modules/is-stream": { @@ -3665,6 +3580,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/env-ci/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/env-ci/node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -3757,27 +3684,27 @@ } }, "node_modules/eslint": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", - "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", + "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.51.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -3810,13 +3737,26 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, "node_modules/eslint-plugin-jsonc": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.9.0.tgz", - "integrity": "sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.10.0.tgz", + "integrity": "sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", + "eslint-compat-utils": "^0.1.2", "jsonc-eslint-parser": "^2.0.4", "natural-compare": "^1.4.0" }, @@ -3830,11 +3770,15 @@ "eslint": ">=6.0.0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -3842,21 +3786,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -3864,14 +3798,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", @@ -3948,15 +3879,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -3969,10 +3891,10 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -4277,9 +4199,9 @@ ] }, "node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -4376,17 +4298,17 @@ } }, "node_modules/gh-pages": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-5.0.0.tgz", - "integrity": "sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.0.0.tgz", + "integrity": "sha512-FXZWJRsvP/fK2HJGY+Di6FRNHvqFF6gOIELaopDjXXgjeOYSNURcuYwEO/6bwuq6koP5Lnkvnr5GViXzuOB89g==", "dev": true, "dependencies": { "async": "^3.2.4", - "commander": "^2.18.0", + "commander": "^11.0.0", "email-addresses": "^5.0.0", "filenamify": "^4.3.0", "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", + "fs-extra": "^11.1.1", "globby": "^6.1.0" }, "bin": { @@ -4415,20 +4337,6 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, - "node_modules/gh-pages/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/gh-pages/node_modules/globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", @@ -4445,15 +4353,6 @@ "node": ">=0.10.0" } }, - "node_modules/gh-pages/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/gh-pages/node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -4463,15 +4362,6 @@ "node": ">=0.10.0" } }, - "node_modules/gh-pages/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/git-log-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", @@ -4506,22 +4396,22 @@ } }, "node_modules/git-up": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-6.0.0.tgz", - "integrity": "sha512-6RUFSNd1c/D0xtGnyWN2sxza2bZtZ/EmI9448n6rCZruFwV/ezeEn2fJP7XnUQGwf0RAtd/mmUCbtH6JPYA2SA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", + "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", "dev": true, "dependencies": { "is-ssh": "^1.4.0", - "parse-url": "^7.0.2" + "parse-url": "^8.1.0" } }, "node_modules/git-url-parse": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-12.0.0.tgz", - "integrity": "sha512-I6LMWsxV87vysX1WfsoglXsXg6GjQRKq7+Dgiseo+h0skmp5Hp2rzmcEIRQot9CPA+uzU7x1x7jZdqvTFGnB+Q==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", + "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", "dev": true, "dependencies": { - "git-up": "^6.0.0" + "git-up": "^7.0.0" } }, "node_modules/glob": { @@ -4557,9 +4447,9 @@ } }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -4604,13 +4494,13 @@ "dev": true }, "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -4624,15 +4514,6 @@ "uglify-js": "^3.1.4" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -4713,15 +4594,24 @@ } }, "node_modules/hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, + "engines": { + "node": "14 || >=16.14" } }, "node_modules/html-escaper": { @@ -4975,15 +4865,6 @@ "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -5012,15 +4893,15 @@ } }, "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dev": true, "dependencies": { - "text-extensions": "^1.0.0" + "text-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-typedarray": { @@ -5337,7 +5218,7 @@ "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" @@ -5359,15 +5240,6 @@ "node": "*" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -5609,12 +5481,6 @@ "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", "dev": true }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", - "dev": true - }, "node_modules/lodash.isobject": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", @@ -5698,9 +5564,9 @@ "dev": true }, "node_modules/luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz", + "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==", "dev": true, "engines": { "node": ">=12" @@ -5736,18 +5602,6 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "node_modules/map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/marked": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", @@ -5761,29 +5615,29 @@ } }, "node_modules/marked-terminal": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz", - "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-6.0.0.tgz", + "integrity": "sha512-6rruICvqRfA4N+Mvdc0UyDbLA0A0nI5omtARIlin3P2F+aNc3EbW91Rd9HTuD0v9qWyHmNIu8Bt40gAnPfldsg==", "dev": true, "dependencies": { - "ansi-escapes": "^5.0.0", + "ansi-escapes": "^6.2.0", "cardinal": "^2.1.1", - "chalk": "^5.0.0", - "cli-table3": "^0.6.1", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.2.0" + "chalk": "^5.3.0", + "cli-table3": "^0.6.3", + "node-emoji": "^2.1.0", + "supports-hyperlinks": "^3.0.0" }, "engines": { - "node": ">=14.13.1 || >=16.0.0" + "node": ">=16.0.0" }, "peerDependencies": { - "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + "marked": ">=1 <10" } }, "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -5793,37 +5647,12 @@ } }, "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=16.10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5899,15 +5728,6 @@ "node": ">=6" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5926,20 +5746,6 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -6155,15 +5961,6 @@ "node": ">=12" } }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -6220,12 +6017,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -6239,12 +6030,15 @@ "dev": true }, "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.0.tgz", + "integrity": "sha512-tcsBm9C6FmPN5Wo7OjFi9lgMyJjvkAeirmjR/ax8Ttfqy4N8PoFic26uqFTIgayHPNI5FH4ltUvfh9kHzwcK9A==", "dev": true, "dependencies": { - "lodash": "^4.17.21" + "@sindresorhus/is": "^3.1.2", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" } }, "node_modules/node-fetch": { @@ -6321,18 +6115,18 @@ } }, "node_modules/normalize-package-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", - "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", "dev": true, "dependencies": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/normalize-path": { @@ -6344,29 +6138,20 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm": { - "version": "9.6.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.3.tgz", - "integrity": "sha512-KMAw6cJF5JGPJz/NtsU8H1sMqb34qPGnSMaSWrVO8bzxOdAXJNAtDXATvLl0lflrImIze1FZCqocM8wdIu3Sfg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.2.0.tgz", + "integrity": "sha512-Auyq6d4cfg/SY4URjZE2aePLOPzK4lUD+qyMxY/7HbxAvCnOCKtMlyLPcbLSOq9lhEGBZN800S1o+UmfjA5dTg==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", "@npmcli/config", + "@npmcli/fs", "@npmcli/map-workspaces", "@npmcli/package-json", + "@npmcli/promise-spawn", "@npmcli/run-script", + "@sigstore/tuf", "abbrev", "archy", "cacache", @@ -6402,6 +6187,7 @@ "ms", "node-gyp", "nopt", + "normalize-package-data", "npm-audit-report", "npm-install-checks", "npm-package-arg", @@ -6416,10 +6202,11 @@ "proc-log", "qrcode-terminal", "read", - "read-package-json", - "read-package-json-fast", "semver", + "spdx-expression-parse", "ssri", + "strip-ansi", + "supports-color", "tar", "text-table", "tiny-relative-date", @@ -6431,78 +6218,83 @@ "dev": true, "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^6.2.6", - "@npmcli/config": "^6.1.5", - "@npmcli/map-workspaces": "^3.0.3", - "@npmcli/package-json": "^3.0.0", - "@npmcli/run-script": "^6.0.0", + "@npmcli/arborist": "^7.2.0", + "@npmcli/config": "^8.0.0", + "@npmcli/fs": "^3.1.0", + "@npmcli/map-workspaces": "^3.0.4", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.1", + "@sigstore/tuf": "^2.1.0", "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^17.0.5", - "chalk": "^4.1.2", + "cacache": "^18.0.0", + "chalk": "^5.3.0", "ci-info": "^3.8.0", "cli-columns": "^4.0.0", "cli-table3": "^0.6.3", "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", - "fs-minipass": "^3.0.1", - "glob": "^9.3.1", + "fs-minipass": "^3.0.3", + "glob": "^10.3.10", "graceful-fs": "^4.2.11", - "hosted-git-info": "^6.1.1", - "ini": "^3.0.1", - "init-package-json": "^5.0.0", + "hosted-git-info": "^7.0.1", + "ini": "^4.1.1", + "init-package-json": "^6.0.0", "is-cidr": "^4.0.2", "json-parse-even-better-errors": "^3.0.0", - "libnpmaccess": "^7.0.2", - "libnpmdiff": "^5.0.14", - "libnpmexec": "^5.0.14", - "libnpmfund": "^4.0.14", - "libnpmhook": "^9.0.3", - "libnpmorg": "^5.0.3", - "libnpmpack": "^5.0.14", - "libnpmpublish": "^7.1.3", - "libnpmsearch": "^6.0.2", - "libnpmteam": "^5.0.3", - "libnpmversion": "^4.0.2", - "make-fetch-happen": "^11.0.3", - "minimatch": "^7.4.3", - "minipass": "^4.2.5", + "libnpmaccess": "^8.0.1", + "libnpmdiff": "^6.0.2", + "libnpmexec": "^7.0.2", + "libnpmfund": "^5.0.0", + "libnpmhook": "^10.0.0", + "libnpmorg": "^6.0.1", + "libnpmpack": "^6.0.2", + "libnpmpublish": "^9.0.1", + "libnpmsearch": "^7.0.0", + "libnpmteam": "^6.0.0", + "libnpmversion": "^5.0.0", + "make-fetch-happen": "^13.0.0", + "minimatch": "^9.0.3", + "minipass": "^7.0.4", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^9.3.1", - "nopt": "^7.1.0", - "npm-audit-report": "^4.0.0", - "npm-install-checks": "^6.1.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-profile": "^7.0.1", - "npm-registry-fetch": "^14.0.3", + "node-gyp": "^9.4.0", + "nopt": "^7.2.0", + "normalize-package-data": "^6.0.0", + "npm-audit-report": "^5.0.0", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-profile": "^9.0.0", + "npm-registry-fetch": "^16.0.0", "npm-user-validate": "^2.0.0", "npmlog": "^7.0.1", "p-map": "^4.0.0", - "pacote": "^15.1.1", + "pacote": "^17.0.4", "parse-conflict-json": "^3.0.1", "proc-log": "^3.0.0", "qrcode-terminal": "^0.12.0", - "read": "^2.0.0", - "read-package-json": "^6.0.1", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.8", - "ssri": "^10.0.1", - "tar": "^6.1.13", + "read": "^2.1.0", + "semver": "^7.5.4", + "spdx-expression-parse": "^3.0.1", + "ssri": "^10.0.5", + "strip-ansi": "^6.0.1", + "supports-color": "^9.4.0", + "tar": "^6.2.0", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", "validate-npm-package-name": "^5.0.0", - "which": "^3.0.0", - "write-file-atomic": "^5.0.0" + "which": "^4.0.0", + "write-file-atomic": "^5.0.1" }, "bin": { "npm": "bin/npm-cli.js", "npx": "bin/npx-cli.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-normalize-package-bin": { @@ -6533,20 +6325,149 @@ "node": ">=0.1.90" } }, - "node_modules/npm/node_modules/@gar/promisify": { - "version": "1.1.3", + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", "dev": true, "inBundle": true, "license": "MIT" }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/npm/node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", "dev": true, "inBundle": true, "license": "ISC" }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/agent/node_modules/agent-base": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/@npmcli/agent/node_modules/http-proxy-agent": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent": { + "version": "7.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent": { + "version": "8.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "6.2.6", + "version": "7.2.0", "dev": true, "inBundle": true, "license": "ISC", @@ -6555,59 +6476,60 @@ "@npmcli/fs": "^3.1.0", "@npmcli/installed-package-contents": "^2.0.2", "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^5.0.0", + "@npmcli/metavuln-calculator": "^7.0.0", "@npmcli/name-from-folder": "^2.0.0", "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^3.0.0", - "@npmcli/query": "^3.0.0", - "@npmcli/run-script": "^6.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/query": "^3.0.1", + "@npmcli/run-script": "^7.0.1", "bin-links": "^4.0.1", - "cacache": "^17.0.4", + "cacache": "^18.0.0", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^6.1.1", + "hosted-git-info": "^7.0.1", "json-parse-even-better-errors": "^3.0.0", "json-stringify-nice": "^1.1.4", - "minimatch": "^7.4.2", + "minimatch": "^9.0.0", "nopt": "^7.0.0", - "npm-install-checks": "^6.0.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-registry-fetch": "^14.0.3", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", "npmlog": "^7.0.1", - "pacote": "^15.0.8", + "pacote": "^17.0.4", "parse-conflict-json": "^3.0.0", "proc-log": "^3.0.0", "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.1", + "promise-call-limit": "^1.0.2", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", - "ssri": "^10.0.1", + "ssri": "^10.0.5", "treeverse": "^3.0.0", - "walk-up-path": "^1.0.0" + "walk-up-path": "^3.0.1" }, "bin": { "arborist": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "6.1.5", + "version": "8.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/map-workspaces": "^3.0.2", - "ini": "^3.0.0", + "ci-info": "^3.8.0", + "ini": "^4.1.0", "nopt": "^7.0.0", "proc-log": "^3.0.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.5", - "walk-up-path": "^1.0.0" + "walk-up-path": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/disparity-colors": { @@ -6635,22 +6557,22 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "4.0.4", + "version": "5.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { @@ -6670,14 +6592,14 @@ } }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.3", + "version": "3.0.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/name-from-folder": "^2.0.0", - "glob": "^9.3.1", - "minimatch": "^7.4.2", + "glob": "^10.2.2", + "minimatch": "^9.0.0", "read-package-json-fast": "^3.0.0" }, "engines": { @@ -6685,31 +6607,18 @@ } }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "5.0.0", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "cacache": "^17.0.0", + "cacache": "^18.0.0", "json-parse-even-better-errors": "^3.0.0", - "pacote": "^15.0.0", + "pacote": "^17.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/name-from-folder": { @@ -6731,31 +6640,37 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "3.0.0", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^3.0.0" - }, + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/query": { - "version": "3.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -6767,23 +6682,45 @@ } }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "6.0.0", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", + "@npmcli/promise-spawn": "^7.0.0", "node-gyp": "^9.0.0", "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.1.0", + "version": "0.2.1", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -6791,6 +6728,33 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@tootallnate/once": { "version": "2.0.0", "dev": true, @@ -6800,16 +6764,26 @@ "node": ">= 10" } }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@tufjs/models": { - "version": "1.0.1", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "minimatch": "^7.4.2" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/abbrev": { @@ -6846,13 +6820,11 @@ } }, "node_modules/npm/node_modules/agentkeepalive": { - "version": "4.3.0", + "version": "4.5.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", "humanize-ms": "^1.2.1" }, "engines": { @@ -6948,7 +6920,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/bin-links": { - "version": "4.0.1", + "version": "4.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -7014,40 +6986,35 @@ } }, "node_modules/npm/node_modules/cacache": { - "version": "17.0.5", + "version": "18.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^9.3.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/chalk": { - "version": "4.1.2", + "version": "5.3.0", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" @@ -7202,6 +7169,35 @@ "inBundle": true, "license": "ISC" }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/npm/node_modules/cssesc": { "version": "3.0.0", "dev": true, @@ -7255,15 +7251,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/depd": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/npm/node_modules/diff": { "version": "5.1.0", "dev": true, @@ -7273,6 +7260,12 @@ "node": ">=0.3.1" } }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, "node_modules/npm/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, @@ -7322,6 +7315,12 @@ "node": ">=0.8.x" } }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, "node_modules/npm/node_modules/fastest-levenshtein": { "version": "1.0.16", "dev": true, @@ -7331,13 +7330,29 @@ "node": ">= 4.9.1" } }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/npm/node_modules/fs-minipass": { - "version": "3.0.1", + "version": "3.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "minipass": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -7356,7 +7371,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/gauge": { - "version": "5.0.0", + "version": "5.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -7365,7 +7380,7 @@ "color-support": "^1.1.3", "console-control-strings": "^1.1.0", "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", + "signal-exit": "^4.0.1", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.5" @@ -7375,15 +7390,19 @@ } }, "node_modules/npm/node_modules/glob": { - "version": "9.3.1", + "version": "10.3.10", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -7410,15 +7429,6 @@ "node": ">= 0.4.0" } }, - "node_modules/npm/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/has-unicode": { "version": "2.0.1", "dev": true, @@ -7426,15 +7436,15 @@ "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { - "version": "6.1.1", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/http-cache-semantics": { @@ -7513,12 +7523,12 @@ "license": "BSD-3-Clause" }, "node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.2", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "minimatch": "^7.4.2" + "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -7542,12 +7552,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/infer-owner": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/inflight": { "version": "1.0.6", "dev": true, @@ -7565,30 +7569,30 @@ "license": "ISC" }, "node_modules/npm/node_modules/ini": { - "version": "3.0.1", + "version": "4.1.1", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/init-package-json": { - "version": "5.0.0", + "version": "6.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "promzard": "^1.0.0", "read": "^2.0.0", - "read-package-json": "^6.0.0", + "read-package-json": "^7.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/ip": { @@ -7619,7 +7623,7 @@ } }, "node_modules/npm/node_modules/is-core-module": { - "version": "2.11.0", + "version": "2.12.1", "dev": true, "inBundle": true, "license": "MIT", @@ -7651,6 +7655,24 @@ "inBundle": true, "license": "ISC" }, + "node_modules/npm/node_modules/jackspeak": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/npm/node_modules/json-parse-even-better-errors": { "version": "3.0.0", "dev": true, @@ -7679,7 +7701,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/just-diff": { - "version": "6.0.0", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "MIT" @@ -7691,211 +7713,206 @@ "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "7.0.2", + "version": "8.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3" + "npm-package-arg": "^11.0.1", + "npm-registry-fetch": "^16.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "5.0.14", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.6", + "@npmcli/arborist": "^7.2.0", "@npmcli/disparity-colors": "^3.0.0", "@npmcli/installed-package-contents": "^2.0.2", "binary-extensions": "^2.2.0", "diff": "^5.1.0", - "minimatch": "^7.4.2", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8", - "tar": "^6.1.13" + "minimatch": "^9.0.0", + "npm-package-arg": "^11.0.1", + "pacote": "^17.0.4", + "tar": "^6.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "5.0.14", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.6", - "@npmcli/run-script": "^6.0.0", - "chalk": "^4.1.0", + "@npmcli/arborist": "^7.2.0", + "@npmcli/run-script": "^7.0.1", "ci-info": "^3.7.1", - "npm-package-arg": "^10.1.0", + "npm-package-arg": "^11.0.1", "npmlog": "^7.0.1", - "pacote": "^15.0.8", + "pacote": "^17.0.4", "proc-log": "^3.0.0", "read": "^2.0.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", - "walk-up-path": "^1.0.0" + "walk-up-path": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "4.0.14", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.6" + "@npmcli/arborist": "^7.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "9.0.3", + "version": "10.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^16.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "5.0.3", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^16.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "5.0.14", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.6", - "@npmcli/run-script": "^6.0.0", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8" + "@npmcli/arborist": "^7.2.0", + "@npmcli/run-script": "^7.0.1", + "npm-package-arg": "^11.0.1", + "pacote": "^17.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "7.1.3", + "version": "9.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "ci-info": "^3.6.1", - "normalize-package-data": "^5.0.0", - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3", + "normalize-package-data": "^6.0.0", + "npm-package-arg": "^11.0.1", + "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0", "semver": "^7.3.7", - "sigstore": "^1.0.0", - "ssri": "^10.0.1" + "sigstore": "^2.1.0", + "ssri": "^10.0.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "6.0.2", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^16.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "5.0.3", + "version": "6.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^16.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "4.0.2", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^4.0.1", - "@npmcli/run-script": "^6.0.0", + "@npmcli/git": "^5.0.3", + "@npmcli/run-script": "^7.0.1", "json-parse-even-better-errors": "^3.0.0", "proc-log": "^3.0.0", "semver": "^7.3.7" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/lru-cache": { - "version": "7.18.3", + "version": "10.0.1", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": ">=12" + "node": "14 || >=16.14" } }, "node_modules/npm/node_modules/make-fetch-happen": { - "version": "11.0.3", + "version": "13.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", "ssri": "^10.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/minimatch": { - "version": "7.4.3", + "version": "9.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -7903,19 +7920,19 @@ "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/npm/node_modules/minipass": { - "version": "4.2.5", + "version": "7.0.4", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/npm/node_modules/minipass-collect": { @@ -7943,12 +7960,12 @@ } }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "3.0.1", + "version": "3.0.4", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "minipass": "^4.0.0", + "minipass": "^7.0.3", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -8115,15 +8132,16 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "9.3.1", + "version": "9.4.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", + "make-fetch-happen": "^11.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -8138,19 +8156,6 @@ "node": "^12.13 || ^14.13 || >=16" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { "version": "1.1.1", "dev": true, @@ -8181,32 +8186,26 @@ } }, "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { - "version": "16.1.3", + "version": "17.1.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", + "ssri": "^10.0.0", "tar": "^6.1.11", - "unique-filename": "^2.0.0" + "unique-filename": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": { @@ -8219,26 +8218,29 @@ } }, "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob": { - "version": "8.1.0", + "version": "10.3.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", + "version": "9.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -8246,19 +8248,19 @@ "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/fs-minipass": { - "version": "2.1.0", + "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass": { + "version": "7.0.3", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, "engines": { - "node": ">= 8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/npm/node_modules/node-gyp/node_modules/gauge": { @@ -8300,31 +8302,39 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/npm/node_modules/node-gyp/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { - "version": "10.2.1", + "version": "11.1.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "ssri": "^10.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { @@ -8340,34 +8350,14 @@ } }, "node_modules/npm/node_modules/node-gyp/node_modules/minipass": { - "version": "3.3.6", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { "version": "6.0.0", "dev": true, @@ -8412,41 +8402,11 @@ "node": ">= 6" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/ssri": { - "version": "9.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": { - "version": "3.0.0", + "node_modules/npm/node_modules/node-gyp/node_modules/signal-exit": { + "version": "3.0.7", "dev": true, "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "license": "ISC" }, "node_modules/npm/node_modules/node-gyp/node_modules/which": { "version": "2.0.2", @@ -8464,7 +8424,7 @@ } }, "node_modules/npm/node_modules/nopt": { - "version": "7.1.0", + "version": "7.2.0", "dev": true, "inBundle": true, "license": "ISC", @@ -8479,28 +8439,25 @@ } }, "node_modules/npm/node_modules/normalize-package-data": { - "version": "5.0.0", + "version": "6.0.0", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-audit-report": { - "version": "4.0.0", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "chalk": "^4.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -8518,7 +8475,7 @@ } }, "node_modules/npm/node_modules/npm-install-checks": { - "version": "6.1.0", + "version": "6.2.0", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -8530,7 +8487,7 @@ } }, "node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "3.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -8539,22 +8496,22 @@ } }, "node_modules/npm/node_modules/npm-package-arg": { - "version": "10.1.0", + "version": "11.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "proc-log": "^3.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-packlist": { - "version": "7.0.4", + "version": "8.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -8566,49 +8523,49 @@ } }, "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "8.0.1", + "version": "9.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-profile": { - "version": "7.0.1", + "version": "9.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^14.0.0", + "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "14.0.3", + "version": "16.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "proc-log": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-user-validate": { @@ -8660,27 +8617,27 @@ } }, "node_modules/npm/node_modules/pacote": { - "version": "15.1.1", + "version": "17.0.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^4.0.0", + "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", + "read-package-json": "^7.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", + "sigstore": "^2.0.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -8688,7 +8645,7 @@ "pacote": "lib/bin.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/parse-conflict-json": { @@ -8714,24 +8671,33 @@ "node": ">=0.10.0" } }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/path-scurry": { - "version": "1.6.1", + "version": "1.10.1", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=14" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.11", + "version": "6.0.13", "dev": true, "inBundle": true, "license": "MIT", @@ -8771,7 +8737,7 @@ } }, "node_modules/npm/node_modules/promise-call-limit": { - "version": "1.0.1", + "version": "1.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -8819,7 +8785,7 @@ } }, "node_modules/npm/node_modules/read": { - "version": "2.0.0", + "version": "2.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -8840,18 +8806,18 @@ } }, "node_modules/npm/node_modules/read-package-json": { - "version": "6.0.1", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "glob": "^9.3.0", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", + "normalize-package-data": "^6.0.0", "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/read-package-json-fast": { @@ -8868,7 +8834,7 @@ } }, "node_modules/npm/node_modules/readable-stream": { - "version": "4.3.0", + "version": "4.4.0", "dev": true, "inBundle": true, "license": "MIT", @@ -8949,8 +8915,22 @@ } }, "node_modules/npm/node_modules/safe-buffer": { - "version": "5.1.2", + "version": "5.2.1", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "inBundle": true, "license": "MIT" }, @@ -8962,7 +8942,7 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", "dev": true, "inBundle": true, "license": "ISC", @@ -8994,27 +8974,52 @@ "inBundle": true, "license": "ISC" }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/signal-exit": { - "version": "3.0.7", + "version": "4.0.2", "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/npm/node_modules/sigstore": { - "version": "1.2.0", + "version": "2.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" - }, - "bin": { - "sigstore": "bin/sigstore.js" + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.1.0", + "@sigstore/tuf": "^2.1.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/smart-buffer": { @@ -9088,24 +9093,24 @@ "license": "CC0-1.0" }, "node_modules/npm/node_modules/ssri": { - "version": "10.0.1", + "version": "10.0.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "minipass": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/string_decoder": { - "version": "1.1.1", + "version": "1.3.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "node_modules/npm/node_modules/string-width": { @@ -9122,6 +9127,21 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/strip-ansi": { "version": "6.0.1", "dev": true, @@ -9134,27 +9154,40 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/npm/node_modules/tar": { - "version": "6.1.13", + "version": "6.2.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -9187,6 +9220,15 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", "dev": true, @@ -9209,16 +9251,17 @@ } }, "node_modules/npm/node_modules/tuf-js": { - "version": "1.1.2", + "version": "2.1.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@tufjs/models": "1.0.1", - "make-fetch-happen": "^11.0.1" + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/unique-filename": { @@ -9274,7 +9317,7 @@ } }, "node_modules/npm/node_modules/walk-up-path": { - "version": "1.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC" @@ -9289,18 +9332,27 @@ } }, "node_modules/npm/node_modules/which": { - "version": "3.0.0", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" } }, "node_modules/npm/node_modules/wide-align": { @@ -9312,20 +9364,117 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/npm/node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/write-file-atomic": { - "version": "5.0.0", + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "5.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9819,24 +9968,21 @@ } }, "node_modules/parse-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-5.0.0.tgz", - "integrity": "sha512-qOpH55/+ZJ4jUu/oLO+ifUKjFPNZGfnPJtzvGzKN/4oLMil5m9OH4VpOj6++9/ytJcfks4kzH2hhi87GL/OU9A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", + "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", "dev": true, "dependencies": { "protocols": "^2.0.0" } }, "node_modules/parse-url": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-7.0.2.tgz", - "integrity": "sha512-PqO4Z0eCiQ08Wj6QQmrmp5YTTxpYfONdOEamrtvK63AmzXpcavIVQubGHxOEwiIoDZFb8uDOoQFS0NCcjqIYQg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", + "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", "dev": true, "dependencies": { - "is-ssh": "^1.4.0", - "normalize-url": "^6.1.0", - "parse-path": "^5.0.0", - "protocols": "^2.0.1" + "parse-path": "^7.0.0" } }, "node_modules/path-exists": { @@ -10076,29 +10222,6 @@ "node": ">=8" } }, - "node_modules/portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", - "dev": true, - "dependencies": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/postcss-load-config": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", @@ -10196,16 +10319,6 @@ "node": ">=6" } }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -10250,15 +10363,6 @@ "tslib": "^2.5.0" } }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -10379,81 +10483,181 @@ } }, "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz", + "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==", "dev": true, "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "find-up": "^6.3.0", + "read-pkg": "^8.1.0", + "type-fest": "^4.2.0" }, "engines": { - "node": ">=8" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-pkg-up/node_modules/lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/parse-json": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.0.tgz", + "integrity": "sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/parse-json/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", + "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.4.0.tgz", + "integrity": "sha512-HT3RRs7sTfY22KuPQJkD/XjbTbxgP2Je5HPt6H6JEGvcjHd5Lqru75EbrP3tb4FYjNJ+DjLp+MNQTFQU0mhXNw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg/node_modules/hosted-git-info": { @@ -10531,19 +10735,6 @@ "node": ">=8.10.0" } }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", @@ -10694,30 +10885,30 @@ "dev": true }, "node_modules/semantic-release": { - "version": "21.0.7", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.7.tgz", - "integrity": "sha512-peRDSXN+hF8EFSKzze90ff/EnAmgITHQ/a3SZpRV3479ny0BIZWEJ33uX6/GlOSKdaSxo9hVRDyv2/u2MuF+Bw==", + "version": "22.0.5", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-22.0.5.tgz", + "integrity": "sha512-ESCEQsZlBj1DWMA84RthaJzQHHnihoGk49s9nUxHfRNUNZelLE9JZrE94bHO2Y00EWb7iwrzr1OYhv5QNVmf8A==", "dev": true, "dependencies": { - "@semantic-release/commit-analyzer": "^10.0.0", + "@semantic-release/commit-analyzer": "^11.0.0", "@semantic-release/error": "^4.0.0", "@semantic-release/github": "^9.0.0", - "@semantic-release/npm": "^10.0.2", - "@semantic-release/release-notes-generator": "^11.0.0", - "aggregate-error": "^4.0.1", + "@semantic-release/npm": "^11.0.0", + "@semantic-release/release-notes-generator": "^12.0.0", + "aggregate-error": "^5.0.0", "cosmiconfig": "^8.0.0", "debug": "^4.0.0", - "env-ci": "^9.0.0", - "execa": "^7.0.0", + "env-ci": "^10.0.0", + "execa": "^8.0.0", "figures": "^5.0.0", "find-versions": "^5.1.0", "get-stream": "^6.0.0", "git-log-parser": "^1.2.0", "hook-std": "^3.0.0", - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "lodash-es": "^4.17.21", - "marked": "^5.0.0", - "marked-terminal": "^5.1.1", + "marked": "^9.0.0", + "marked-terminal": "^6.0.0", "micromatch": "^4.0.2", "p-each-series": "^3.0.0", "p-reduce": "^3.0.0", @@ -10732,7 +10923,7 @@ "semantic-release": "bin/semantic-release.js" }, "engines": { - "node": ">=18" + "node": "^18.17 || >=20.6.1" } }, "node_modules/semantic-release-license": { @@ -10742,31 +10933,31 @@ "dev": true }, "node_modules/semantic-release/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, "dependencies": { - "clean-stack": "^4.0.0", + "clean-stack": "^5.2.0", "indent-string": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/semantic-release/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", "dev": true, "dependencies": { "escape-string-regexp": "5.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10799,63 +10990,47 @@ } }, "node_modules/semantic-release/node_modules/execa": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.0.0.tgz", - "integrity": "sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/semantic-release/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "node_modules/semantic-release/node_modules/execa/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/semantic-release/node_modules/human-signals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", - "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "engines": { - "node": ">=14.18.0" + "node": ">=16.17.0" } }, "node_modules/semantic-release/node_modules/indent-string": { @@ -10882,192 +11057,53 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/semantic-release/node_modules/lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/semantic-release/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/semantic-release/node_modules/marked": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.0.tgz", - "integrity": "sha512-z3/nBe7aTI8JDszlYLk7dDVNpngjw0o1ZJtrA9kIfkkHcIF+xH7mO23aISl4WxP83elU+MFROgahqdpd05lMEQ==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.2.tgz", + "integrity": "sha512-qoKMJqK0w6vkLk8+KnKZAH6neUZSNaQqVZ/h2yZ9S7CbLuFHyS2viB0jnqcWF9UKjwsAbMrQtnQhdmdvOVOw9w==", "dev": true, "bin": { "marked": "bin/marked.js" }, "engines": { - "node": ">= 18" + "node": ">= 16" } }, "node_modules/semantic-release/node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/semantic-release/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/p-reduce": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", - "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/parse-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", - "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - }, + "dev": true, "engines": { - "node": ">=16" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "node_modules/semantic-release/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "node_modules/semantic-release/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, "engines": { "node": ">=12" }, @@ -11075,36 +11111,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/read-pkg": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.0.0.tgz", - "integrity": "sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==", + "node_modules/semantic-release/node_modules/p-reduce": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", + "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^5.0.0", - "parse-json": "^7.0.0", - "type-fest": "^3.8.0" - }, "engines": { - "node": ">=16" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/read-pkg-up": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.0.0.tgz", - "integrity": "sha512-jgmKiS//w2Zs+YbX039CorlkOp8FIVbSAN8r8GJHDsGlmNPXo+VeHkqAwCiQVTTx5/LwLZTcEw59z3DvcLbr0g==", + "node_modules/semantic-release/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^8.0.0", - "type-fest": "^3.12.0" - }, "engines": { - "node": ">=16" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11119,25 +11144,25 @@ "node": ">=8" } }, - "node_modules/semantic-release/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/semantic-release/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/semantic-release/node_modules/type-fest": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.0.tgz", - "integrity": "sha512-Gur3yQGM9qiLNs0KPP7LPgeRbio2QTt4xXouobMCarR0/wyW3F+F/+OWwshg3NG0Adon7uQfSZBpB46NfhoF1A==", + "node_modules/semantic-release/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "engines": { - "node": ">=14.16" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11170,18 +11195,6 @@ "node": ">=12" } }, - "node_modules/semantic-release/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -11389,6 +11402,18 @@ "node": ">=4" } }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "dev": true, + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -11509,39 +11534,13 @@ "spdx-ranges": "^2.0.0" } }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/split2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, "engines": { - "node": ">= 6" + "node": ">= 10.x" } }, "node_modules/sprintf-js": { @@ -11613,18 +11612,6 @@ "node": ">=6" } }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -11721,16 +11708,16 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, "node_modules/tcomb": { @@ -11814,12 +11801,15 @@ } }, "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", "dev": true, "engines": { - "node": ">=0.10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/text-table": { @@ -11880,32 +11870,9 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -11960,15 +11927,6 @@ "node": ">=0.6" } }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/trim-repeated": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", @@ -12172,24 +12130,24 @@ } }, "node_modules/typedoc": { - "version": "0.24.8", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz", - "integrity": "sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.2.tgz", + "integrity": "sha512-286F7BeATBiWe/qC4PCOCKlSTwfnsLbC/4cZ68oGBbvAqb9vV33quEOXx7q176OXotD+JdEerdQ1OZGJ818lnA==", "dev": true, "dependencies": { "lunr": "^2.3.9", "marked": "^4.3.0", - "minimatch": "^9.0.0", + "minimatch": "^9.0.3", "shiki": "^0.14.1" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { - "node": ">= 14.14" + "node": ">= 16" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x" } }, "node_modules/typedoc/node_modules/brace-expansion": { @@ -12202,9 +12160,9 @@ } }, "node_modules/typedoc/node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -12217,9 +12175,9 @@ } }, "node_modules/typescript": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.5.tgz", - "integrity": "sha512-FOH+WN/DQjUvN6WgW+c4Ml3yi0PH+a/8q+kNIfRehv1wLhWONedw85iu+vQ39Wp49IzTJEsZ2lyLXpBF7mkF1g==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -12242,6 +12200,15 @@ "node": ">=0.8.0" } }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/unique-string": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", @@ -12600,12 +12567,71 @@ "dev": true }, "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/compat-data": { @@ -12652,21 +12678,26 @@ } }, "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } } } }, @@ -12690,33 +12721,29 @@ } } }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { @@ -12784,18 +12811,24 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.22.5" } }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true }, "@babel/helper-validator-option": { @@ -12816,13 +12849,13 @@ } }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "dependencies": { @@ -12885,35 +12918,36 @@ } }, "@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true }, "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } - }, - "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", + }, + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@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", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -12927,12 +12961,13 @@ } }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -13128,9 +13163,9 @@ "dev": true }, "@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -13162,15 +13197,15 @@ } }, "@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", + "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "dev": true }, "@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -13254,12 +13289,29 @@ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, "@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", @@ -13441,9 +13493,9 @@ } }, "@qiwi/semantic-release-gh-pages-plugin": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/@qiwi/semantic-release-gh-pages-plugin/-/semantic-release-gh-pages-plugin-5.2.6.tgz", - "integrity": "sha512-D3zOzTMbzdzv/NXraEVdvmA4Tn125udIK6FDn3pqKsBAIGGZ5ypu1jVPuJrZ6V/e8uT9IOIYnz3phqkBBT3Lfg==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@qiwi/semantic-release-gh-pages-plugin/-/semantic-release-gh-pages-plugin-5.2.8.tgz", + "integrity": "sha512-nUxPladlyQ0rK8JdQdAbxYBx3YG/68CsCKTuOC6VsuAAcnPSstjiLfmrAvu5GOyYSW4Qg3+kVMbZeYFQgJM6VA==", "dev": true, "requires": { "@qiwi/substrate": "^2.0.4", @@ -13455,13 +13507,13 @@ "aggregate-error": "^3.1.0", "debug": "^4.3.4", "execa": "^5.1.1", - "gh-pages": "^5.0.0", - "git-url-parse": "^12.0.0", + "gh-pages": "^6.0.0", + "git-url-parse": "^13.1.0", "lodash": "^4.17.21", "queuefy": "^1.2.1", "read-pkg": "^5.2.0", "then-request": "^6.0.2", - "tslib": "^2.6.0" + "tslib": "^2.6.1" } }, "@qiwi/substrate": { @@ -13522,51 +13574,18 @@ } }, "@semantic-release/commit-analyzer": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-10.0.1.tgz", - "integrity": "sha512-9ejHzTAijYs9z246sY/dKBatmOPcd0GQ7lH4MgLCkv1q4GCiDZRkjHJkaQZXZVaK7mJybS+sH3Ng6G8i3pYMGQ==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-11.0.0.tgz", + "integrity": "sha512-uEXyf4Z0AWJuxI9TbSQP5kkIYqus1/E1NcmE7pIv6d6/m/5EJcNWAGR4FOo34vrV26FhEaRVkxFfYzp/M7BKIg==", "dev": true, "requires": { - "conventional-changelog-angular": "^6.0.0", - "conventional-commits-filter": "^3.0.0", - "conventional-commits-parser": "^4.0.0", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", "debug": "^4.0.0", "import-from": "^4.0.0", "lodash-es": "^4.17.21", "micromatch": "^4.0.2" - }, - "dependencies": { - "conventional-changelog-angular": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", - "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", - "dev": true, - "requires": { - "compare-func": "^2.0.0" - } - }, - "conventional-commits-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", - "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", - "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.1" - } - }, - "conventional-commits-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", - "dev": true, - "requires": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" - } - } } }, "@semantic-release/error": { @@ -13698,19 +13717,19 @@ } }, "@semantic-release/npm": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.4.tgz", - "integrity": "sha512-6R3timIQ7VoL2QWRkc9DG8v74RQtRp7UOe/2KbNaqwJ815qOibAv65bH3RtTEhs4axEaHoZf7HDgFs5opaZ9Jw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.0.tgz", + "integrity": "sha512-ozNCiPUp14Xp2rgeY7j96yFTEhDncLSWOJr0IAUr888+ax6fH5xgYkNVv08vpkV8C5GIXBgnGd9coRiOCD6oqQ==", "dev": true, "requires": { "@semantic-release/error": "^4.0.0", - "aggregate-error": "^4.0.1", - "execa": "^7.0.0", + "aggregate-error": "^5.0.0", + "execa": "^8.0.0", "fs-extra": "^11.0.0", "lodash-es": "^4.17.21", "nerf-dart": "^1.0.0", "normalize-url": "^8.0.0", - "npm": "^9.5.0", + "npm": "^10.0.0", "rc": "^1.2.8", "read-pkg": "^8.0.0", "registry-auth-token": "^5.0.0", @@ -13719,19 +13738,19 @@ }, "dependencies": { "aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, "requires": { - "clean-stack": "^4.0.0", + "clean-stack": "^5.2.0", "indent-string": "^5.0.0" } }, "clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", "dev": true, "requires": { "escape-string-regexp": "5.0.0" @@ -13744,22 +13763,28 @@ "dev": true }, "execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" } }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true + }, "hosted-git-info": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", @@ -13770,9 +13795,9 @@ } }, "human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true }, "indent-string": { @@ -13878,6 +13903,12 @@ "type-fest": "^3.8.0" } }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, "strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -13893,103 +13924,37 @@ } }, "@semantic-release/release-notes-generator": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-11.0.1.tgz", - "integrity": "sha512-4deWsiY4Rg80oc9Ms11N20BIDgYkPMys4scNYQpi2Njdrtw5Z55nXKNsUN3kn6Sy/nI9dqqbp5L63TL4luI5Bw==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-12.0.0.tgz", + "integrity": "sha512-m7Ds8ComP1KJgA2Lke2xMwE1TOOU40U7AzP4lT8hJ2tUAeicziPz/1GeDFmRkTOkMFlfHvE6kuvMkvU+mIzIDQ==", "dev": true, "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", + "conventional-changelog-angular": "^7.0.0", + "conventional-changelog-writer": "^7.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", "debug": "^4.0.0", - "get-stream": "^6.0.0", + "get-stream": "^7.0.0", "import-from": "^4.0.0", "into-stream": "^7.0.0", "lodash-es": "^4.17.21", - "read-pkg-up": "^9.0.0" + "read-pkg-up": "^10.0.0" }, "dependencies": { - "find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - } - }, - "locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "requires": { - "p-locate": "^6.0.0" - } - }, - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "requires": { - "p-limit": "^4.0.0" - } - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - }, - "read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dev": true, - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - } - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "get-stream": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", + "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", "dev": true } } }, + "@sindresorhus/is": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz", + "integrity": "sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==", + "dev": true + }, "@touch4it/ical-timezones": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@touch4it/ical-timezones/-/ical-timezones-1.9.0.tgz", @@ -14066,9 +14031,9 @@ "dev": true }, "@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", + "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", "dev": true }, "@types/lodash": { @@ -14078,21 +14043,15 @@ "dev": true }, "@types/luxon": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.1.tgz", - "integrity": "sha512-XOS5nBcgEeP2PpcqJHjCWhUCAzGfXIU8ILOSLpx2FhxqMW9KdxgCGXNOEKGVBfveKtIpztHzKK5vSRVLyW/NqA==", - "dev": true - }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.2.tgz", + "integrity": "sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ==", "dev": true }, "@types/mocha": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.2.tgz", + "integrity": "sha512-NaHL0+0lLNhX6d9rs+NSt97WH/gIlRHmszXbQ/8/MV/eVcFNdeJ/GYhrFuUc8K7WuPhRhTSdMkCp8VMzhUq85w==", "dev": true }, "@types/ms": { @@ -14102,9 +14061,9 @@ "dev": true }, "@types/node": { - "version": "20.4.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", - "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==", + "version": "20.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.3.tgz", + "integrity": "sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA==", "dev": true }, "@types/normalize-package-data": { @@ -14129,80 +14088,79 @@ } }, "@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.1.tgz", - "integrity": "sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.8.0.tgz", + "integrity": "sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/type-utils": "6.2.1", - "@typescript-eslint/utils": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/scope-manager": "6.8.0", + "@typescript-eslint/type-utils": "6.8.0", + "@typescript-eslint/utils": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", "natural-compare": "^1.4.0", - "natural-compare-lite": "^1.4.0", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" } }, "@typescript-eslint/parser": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.2.1.tgz", - "integrity": "sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.8.0.tgz", + "integrity": "sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/typescript-estree": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/scope-manager": "6.8.0", + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/typescript-estree": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.2.1.tgz", - "integrity": "sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz", + "integrity": "sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==", "dev": true, "requires": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1" + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0" } }, "@typescript-eslint/type-utils": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.2.1.tgz", - "integrity": "sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.8.0.tgz", + "integrity": "sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "6.2.1", - "@typescript-eslint/utils": "6.2.1", + "@typescript-eslint/typescript-estree": "6.8.0", + "@typescript-eslint/utils": "6.8.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" } }, "@typescript-eslint/types": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.2.1.tgz", - "integrity": "sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.8.0.tgz", + "integrity": "sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.1.tgz", - "integrity": "sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz", + "integrity": "sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==", "dev": true, "requires": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -14211,27 +14169,27 @@ } }, "@typescript-eslint/utils": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.2.1.tgz", - "integrity": "sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.8.0.tgz", + "integrity": "sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/typescript-estree": "6.2.1", + "@typescript-eslint/scope-manager": "6.8.0", + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/typescript-estree": "6.8.0", "semver": "^7.5.4" } }, "@typescript-eslint/visitor-keys": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.1.tgz", - "integrity": "sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz", + "integrity": "sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==", "dev": true, "requires": { - "@typescript-eslint/types": "6.2.1", + "@typescript-eslint/types": "6.8.0", "eslint-visitor-keys": "^3.4.1" } }, @@ -14298,18 +14256,18 @@ "dev": true }, "ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", + "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", "dev": true, "requires": { - "type-fest": "^1.0.2" + "type-fest": "^3.0.0" }, "dependencies": { "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", "dev": true } } @@ -14402,7 +14360,7 @@ "array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true }, "array-union": { @@ -14417,27 +14375,12 @@ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -14615,17 +14558,6 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, "caniuse-lite": { "version": "1.0.30001237", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz", @@ -14658,6 +14590,12 @@ "supports-color": "^7.1.0" } }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -14732,9 +14670,9 @@ } }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", "dev": true }, "commondir": { @@ -14782,62 +14720,44 @@ } }, "conventional-changelog-angular": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz", - "integrity": "sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", "dev": true, "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" } }, "conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz", + "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==", "dev": true, "requires": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", + "conventional-commits-filter": "^4.0.0", "handlebars": "^4.7.7", "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "meow": "^12.0.1", + "semver": "^7.5.2", + "split2": "^4.0.0" } }, "conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", - "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", + "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", + "dev": true }, "conventional-commits-parser": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz", - "integrity": "sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", "dev": true, "requires": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" } }, "convert-source-map": { @@ -14918,16 +14838,10 @@ } } }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, "dayjs": { - "version": "1.11.9", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", - "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==", + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", "dev": true }, "debug": { @@ -14951,24 +14865,6 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -15072,37 +14968,49 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "dev": true + }, "env-ci": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.0.0.tgz", - "integrity": "sha512-Q3cjr1tX9xwigprw4G8M3o7PIOO/1LYji6TyGsbD1WfMmD23etZvhgmPXJqkP788yH4dgSSK7oaIMuaayUJIfg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-10.0.0.tgz", + "integrity": "sha512-U4xcd/utDYFgMh0yWj07R1H6L5fwhVbmxBCpnL0DbVSDZVnsC82HONw0wxtxNkIAcua3KtbomQvIk5xFZGAQJw==", "dev": true, "requires": { - "execa": "^7.0.0", + "execa": "^8.0.0", "java-properties": "^1.0.2" }, "dependencies": { "execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" } }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true + }, "human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true }, "is-stream": { @@ -15141,6 +15049,12 @@ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, "strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -15213,27 +15127,27 @@ "dev": true }, "eslint": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", - "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", + "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.51.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -15263,22 +15177,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -15299,21 +15197,39 @@ } } }, + "eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "requires": {} + }, "eslint-plugin-jsonc": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.9.0.tgz", - "integrity": "sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.10.0.tgz", + "integrity": "sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", + "eslint-compat-utils": "^0.1.2", "jsonc-eslint-parser": "^2.0.4", "natural-compare": "^1.4.0" } }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "esm": { @@ -15346,14 +15262,6 @@ "dev": true, "requires": { "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } } }, "esrecurse": { @@ -15363,16 +15271,14 @@ "dev": true, "requires": { "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } } }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -15585,9 +15491,9 @@ "dev": true }, "fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -15656,17 +15562,17 @@ "dev": true }, "gh-pages": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-5.0.0.tgz", - "integrity": "sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.0.0.tgz", + "integrity": "sha512-FXZWJRsvP/fK2HJGY+Di6FRNHvqFF6gOIELaopDjXXgjeOYSNURcuYwEO/6bwuq6koP5Lnkvnr5GViXzuOB89g==", "dev": true, "requires": { "async": "^3.2.4", - "commander": "^2.18.0", + "commander": "^11.0.0", "email-addresses": "^5.0.0", "filenamify": "^4.3.0", "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", + "fs-extra": "^11.1.1", "globby": "^6.1.0" }, "dependencies": { @@ -15685,17 +15591,6 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", @@ -15703,19 +15598,10 @@ "dev": true, "requires": { "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -15723,12 +15609,6 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true } } }, @@ -15768,22 +15648,22 @@ } }, "git-up": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-6.0.0.tgz", - "integrity": "sha512-6RUFSNd1c/D0xtGnyWN2sxza2bZtZ/EmI9448n6rCZruFwV/ezeEn2fJP7XnUQGwf0RAtd/mmUCbtH6JPYA2SA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", + "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", "dev": true, "requires": { "is-ssh": "^1.4.0", - "parse-url": "^7.0.2" + "parse-url": "^8.1.0" } }, "git-url-parse": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-12.0.0.tgz", - "integrity": "sha512-I6LMWsxV87vysX1WfsoglXsXg6GjQRKq7+Dgiseo+h0skmp5Hp2rzmcEIRQot9CPA+uzU7x1x7jZdqvTFGnB+Q==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", + "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", "dev": true, "requires": { - "git-up": "^6.0.0" + "git-up": "^7.0.0" } }, "glob": { @@ -15810,9 +15690,9 @@ } }, "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -15845,24 +15725,18 @@ "dev": true }, "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "requires": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" } }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -15915,12 +15789,20 @@ "dev": true }, "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "lru-cache": "^10.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true + } } }, "html-escaper": { @@ -16113,12 +15995,6 @@ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, "is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -16141,12 +16017,12 @@ "dev": true }, "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dev": true, "requires": { - "text-extensions": "^1.0.0" + "text-extensions": "^2.0.0" } }, "is-typedarray": { @@ -16394,7 +16270,7 @@ "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true }, "JSONStream": { @@ -16407,12 +16283,6 @@ "through": ">=2.2.7 <3" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -16613,12 +16483,6 @@ "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", "dev": true }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", - "dev": true - }, "lodash.isobject": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", @@ -16690,9 +16554,9 @@ "dev": true }, "luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz", + "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==", "dev": true }, "make-dir": { @@ -16718,12 +16582,6 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", - "dev": true - }, "marked": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", @@ -16731,53 +16589,32 @@ "dev": true }, "marked-terminal": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz", - "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-6.0.0.tgz", + "integrity": "sha512-6rruICvqRfA4N+Mvdc0UyDbLA0A0nI5omtARIlin3P2F+aNc3EbW91Rd9HTuD0v9qWyHmNIu8Bt40gAnPfldsg==", "dev": true, "requires": { - "ansi-escapes": "^5.0.0", + "ansi-escapes": "^6.2.0", "cardinal": "^2.1.1", - "chalk": "^5.0.0", - "cli-table3": "^0.6.1", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.2.0" + "chalk": "^5.3.0", + "cli-table3": "^0.6.3", + "node-emoji": "^2.1.0", + "supports-hyperlinks": "^3.0.0" }, "dependencies": { "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true } } }, "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - } - } + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true }, "merge-stream": { "version": "2.0.0", @@ -16828,12 +16665,6 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -16849,17 +16680,6 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -17032,12 +16852,6 @@ } } }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, "moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -17082,12 +16896,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -17101,12 +16909,15 @@ "dev": true }, "node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.0.tgz", + "integrity": "sha512-tcsBm9C6FmPN5Wo7OjFi9lgMyJjvkAeirmjR/ax8Ttfqy4N8PoFic26uqFTIgayHPNI5FH4ltUvfh9kHzwcK9A==", "dev": true, "requires": { - "lodash": "^4.17.21" + "@sindresorhus/is": "^3.1.2", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" } }, "node-fetch": { @@ -17168,15 +16979,15 @@ } }, "normalize-package-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", - "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", "dev": true, "requires": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" } }, "normalize-path": { @@ -17185,84 +16996,83 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, "npm": { - "version": "9.6.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.3.tgz", - "integrity": "sha512-KMAw6cJF5JGPJz/NtsU8H1sMqb34qPGnSMaSWrVO8bzxOdAXJNAtDXATvLl0lflrImIze1FZCqocM8wdIu3Sfg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.2.0.tgz", + "integrity": "sha512-Auyq6d4cfg/SY4URjZE2aePLOPzK4lUD+qyMxY/7HbxAvCnOCKtMlyLPcbLSOq9lhEGBZN800S1o+UmfjA5dTg==", "dev": true, "requires": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^6.2.6", - "@npmcli/config": "^6.1.5", - "@npmcli/map-workspaces": "^3.0.3", - "@npmcli/package-json": "^3.0.0", - "@npmcli/run-script": "^6.0.0", + "@npmcli/arborist": "^7.2.0", + "@npmcli/config": "^8.0.0", + "@npmcli/fs": "^3.1.0", + "@npmcli/map-workspaces": "^3.0.4", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.1", + "@sigstore/tuf": "^2.1.0", "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^17.0.5", - "chalk": "^4.1.2", + "cacache": "^18.0.0", + "chalk": "^5.3.0", "ci-info": "^3.8.0", "cli-columns": "^4.0.0", "cli-table3": "^0.6.3", "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", - "fs-minipass": "^3.0.1", - "glob": "^9.3.1", + "fs-minipass": "^3.0.3", + "glob": "^10.3.10", "graceful-fs": "^4.2.11", - "hosted-git-info": "^6.1.1", - "ini": "^3.0.1", - "init-package-json": "^5.0.0", + "hosted-git-info": "^7.0.1", + "ini": "^4.1.1", + "init-package-json": "^6.0.0", "is-cidr": "^4.0.2", "json-parse-even-better-errors": "^3.0.0", - "libnpmaccess": "^7.0.2", - "libnpmdiff": "^5.0.14", - "libnpmexec": "^5.0.14", - "libnpmfund": "^4.0.14", - "libnpmhook": "^9.0.3", - "libnpmorg": "^5.0.3", - "libnpmpack": "^5.0.14", - "libnpmpublish": "^7.1.3", - "libnpmsearch": "^6.0.2", - "libnpmteam": "^5.0.3", - "libnpmversion": "^4.0.2", - "make-fetch-happen": "^11.0.3", - "minimatch": "^7.4.3", - "minipass": "^4.2.5", + "libnpmaccess": "^8.0.1", + "libnpmdiff": "^6.0.2", + "libnpmexec": "^7.0.2", + "libnpmfund": "^5.0.0", + "libnpmhook": "^10.0.0", + "libnpmorg": "^6.0.1", + "libnpmpack": "^6.0.2", + "libnpmpublish": "^9.0.1", + "libnpmsearch": "^7.0.0", + "libnpmteam": "^6.0.0", + "libnpmversion": "^5.0.0", + "make-fetch-happen": "^13.0.0", + "minimatch": "^9.0.3", + "minipass": "^7.0.4", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^9.3.1", - "nopt": "^7.1.0", - "npm-audit-report": "^4.0.0", - "npm-install-checks": "^6.1.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-profile": "^7.0.1", - "npm-registry-fetch": "^14.0.3", + "node-gyp": "^9.4.0", + "nopt": "^7.2.0", + "normalize-package-data": "^6.0.0", + "npm-audit-report": "^5.0.0", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-profile": "^9.0.0", + "npm-registry-fetch": "^16.0.0", "npm-user-validate": "^2.0.0", "npmlog": "^7.0.1", "p-map": "^4.0.0", - "pacote": "^15.1.1", + "pacote": "^17.0.4", "parse-conflict-json": "^3.0.1", "proc-log": "^3.0.0", "qrcode-terminal": "^0.12.0", - "read": "^2.0.0", - "read-package-json": "^6.0.1", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.8", - "ssri": "^10.0.1", - "tar": "^6.1.13", + "read": "^2.1.0", + "semver": "^7.5.4", + "spdx-expression-parse": "^3.0.1", + "ssri": "^10.0.5", + "strip-ansi": "^6.0.1", + "supports-color": "^9.4.0", + "tar": "^6.2.0", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", "validate-npm-package-name": "^5.0.0", - "which": "^3.0.0", - "write-file-atomic": "^5.0.0" + "which": "^4.0.0", + "write-file-atomic": "^5.0.1" }, "dependencies": { "@colors/colors": { @@ -17271,18 +17081,106 @@ "dev": true, "optional": true }, - "@gar/promisify": { - "version": "1.1.3", + "@isaacs/cliui": { + "version": "8.0.2", "bundled": true, - "dev": true + "dev": true, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "bundled": true, + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } }, "@isaacs/string-locale-compare": { "version": "1.1.0", "bundled": true, "dev": true }, + "@npmcli/agent": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "bundled": true, + "dev": true, + "requires": { + "debug": "^4.3.4" + } + }, + "http-proxy-agent": { + "version": "7.0.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.1", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "socks-proxy-agent": { + "version": "8.0.1", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^7.0.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + } + } + } + }, "@npmcli/arborist": { - "version": "6.2.6", + "version": "7.2.0", "bundled": true, "dev": true, "requires": { @@ -17290,49 +17188,50 @@ "@npmcli/fs": "^3.1.0", "@npmcli/installed-package-contents": "^2.0.2", "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^5.0.0", + "@npmcli/metavuln-calculator": "^7.0.0", "@npmcli/name-from-folder": "^2.0.0", "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^3.0.0", - "@npmcli/query": "^3.0.0", - "@npmcli/run-script": "^6.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/query": "^3.0.1", + "@npmcli/run-script": "^7.0.1", "bin-links": "^4.0.1", - "cacache": "^17.0.4", + "cacache": "^18.0.0", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^6.1.1", + "hosted-git-info": "^7.0.1", "json-parse-even-better-errors": "^3.0.0", "json-stringify-nice": "^1.1.4", - "minimatch": "^7.4.2", + "minimatch": "^9.0.0", "nopt": "^7.0.0", - "npm-install-checks": "^6.0.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-registry-fetch": "^14.0.3", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", "npmlog": "^7.0.1", - "pacote": "^15.0.8", + "pacote": "^17.0.4", "parse-conflict-json": "^3.0.0", "proc-log": "^3.0.0", "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.1", + "promise-call-limit": "^1.0.2", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", - "ssri": "^10.0.1", + "ssri": "^10.0.5", "treeverse": "^3.0.0", - "walk-up-path": "^1.0.0" + "walk-up-path": "^3.0.1" } }, "@npmcli/config": { - "version": "6.1.5", + "version": "8.0.0", "bundled": true, "dev": true, "requires": { "@npmcli/map-workspaces": "^3.0.2", - "ini": "^3.0.0", + "ci-info": "^3.8.0", + "ini": "^4.1.0", "nopt": "^7.0.0", "proc-log": "^3.0.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.5", - "walk-up-path": "^1.0.0" + "walk-up-path": "^3.0.1" } }, "@npmcli/disparity-colors": { @@ -17352,18 +17251,18 @@ } }, "@npmcli/git": { - "version": "4.0.4", + "version": "5.0.3", "bundled": true, "dev": true, "requires": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^3.0.0" + "which": "^4.0.0" } }, "@npmcli/installed-package-contents": { @@ -17376,36 +17275,27 @@ } }, "@npmcli/map-workspaces": { - "version": "3.0.3", + "version": "3.0.4", "bundled": true, "dev": true, "requires": { "@npmcli/name-from-folder": "^2.0.0", - "glob": "^9.3.1", - "minimatch": "^7.4.2", + "glob": "^10.2.2", + "minimatch": "^9.0.0", "read-package-json-fast": "^3.0.0" } }, "@npmcli/metavuln-calculator": { - "version": "5.0.0", + "version": "7.0.0", "bundled": true, "dev": true, "requires": { - "cacache": "^17.0.0", + "cacache": "^18.0.0", "json-parse-even-better-errors": "^3.0.0", - "pacote": "^15.0.0", + "pacote": "^17.0.0", "semver": "^7.3.5" } }, - "@npmcli/move-file": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, "@npmcli/name-from-folder": { "version": "2.0.0", "bundled": true, @@ -17417,23 +17307,29 @@ "dev": true }, "@npmcli/package-json": { - "version": "3.0.0", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { - "json-parse-even-better-errors": "^3.0.0" + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" } }, "@npmcli/promise-spawn": { - "version": "6.0.2", + "version": "7.0.0", "bundled": true, "dev": true, "requires": { - "which": "^3.0.0" + "which": "^4.0.0" } }, "@npmcli/query": { - "version": "3.0.0", + "version": "3.0.1", "bundled": true, "dev": true, "requires": { @@ -17441,33 +17337,72 @@ } }, "@npmcli/run-script": { - "version": "6.0.0", + "version": "7.0.1", "bundled": true, "dev": true, "requires": { "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", + "@npmcli/promise-spawn": "^7.0.0", "node-gyp": "^9.0.0", "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" + "which": "^4.0.0" + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "bundled": true, + "dev": true, + "optional": true + }, + "@sigstore/bundle": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "@sigstore/protobuf-specs": "^0.2.1" } }, "@sigstore/protobuf-specs": { - "version": "0.1.0", + "version": "0.2.1", "bundled": true, "dev": true }, + "@sigstore/sign": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + } + }, + "@sigstore/tuf": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.1.0" + } + }, "@tootallnate/once": { "version": "2.0.0", "bundled": true, "dev": true }, + "@tufjs/canonical-json": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, "@tufjs/models": { - "version": "1.0.1", + "version": "2.0.0", "bundled": true, "dev": true, "requires": { - "minimatch": "^7.4.2" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" } }, "abbrev": { @@ -17492,12 +17427,10 @@ } }, "agentkeepalive": { - "version": "4.3.0", + "version": "4.5.0", "bundled": true, "dev": true, "requires": { - "debug": "^4.1.0", - "depd": "^2.0.0", "humanize-ms": "^1.2.1" } }, @@ -17553,7 +17486,7 @@ "dev": true }, "bin-links": { - "version": "4.0.1", + "version": "4.0.2", "bundled": true, "dev": true, "requires": { @@ -17594,33 +17527,28 @@ } }, "cacache": { - "version": "17.0.5", + "version": "18.0.0", "bundled": true, "dev": true, "requires": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^9.3.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" } }, "chalk": { - "version": "4.1.2", + "version": "5.3.0", "bundled": true, - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "dev": true }, "chownr": { "version": "2.0.0", @@ -17715,6 +17643,26 @@ "bundled": true, "dev": true }, + "cross-spawn": { + "version": "7.0.3", + "bundled": true, + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "cssesc": { "version": "3.0.0", "bundled": true, @@ -17748,13 +17696,13 @@ "bundled": true, "dev": true }, - "depd": { - "version": "2.0.0", + "diff": { + "version": "5.1.0", "bundled": true, "dev": true }, - "diff": { - "version": "5.1.0", + "eastasianwidth": { + "version": "0.2.0", "bundled": true, "dev": true }, @@ -17792,17 +17740,31 @@ "bundled": true, "dev": true }, + "exponential-backoff": { + "version": "3.1.1", + "bundled": true, + "dev": true + }, "fastest-levenshtein": { "version": "1.0.16", "bundled": true, "dev": true }, + "foreground-child": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, "fs-minipass": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^7.0.3" } }, "fs.realpath": { @@ -17816,7 +17778,7 @@ "dev": true }, "gauge": { - "version": "5.0.0", + "version": "5.0.1", "bundled": true, "dev": true, "requires": { @@ -17824,21 +17786,22 @@ "color-support": "^1.1.3", "console-control-strings": "^1.1.0", "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", + "signal-exit": "^4.0.1", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.5" } }, "glob": { - "version": "9.3.1", + "version": "10.3.10", "bundled": true, "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" } }, "graceful-fs": { @@ -17854,22 +17817,17 @@ "function-bind": "^1.1.1" } }, - "has-flag": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, "has-unicode": { "version": "2.0.1", "bundled": true, "dev": true }, "hosted-git-info": { - "version": "6.1.1", + "version": "7.0.1", "bundled": true, "dev": true, "requires": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" } }, "http-cache-semantics": { @@ -17919,11 +17877,11 @@ "dev": true }, "ignore-walk": { - "version": "6.0.2", + "version": "6.0.3", "bundled": true, "dev": true, "requires": { - "minimatch": "^7.4.2" + "minimatch": "^9.0.0" } }, "imurmurhash": { @@ -17936,11 +17894,6 @@ "bundled": true, "dev": true }, - "infer-owner": { - "version": "1.0.4", - "bundled": true, - "dev": true - }, "inflight": { "version": "1.0.6", "bundled": true, @@ -17956,19 +17909,19 @@ "dev": true }, "ini": { - "version": "3.0.1", + "version": "4.1.1", "bundled": true, "dev": true }, "init-package-json": { - "version": "5.0.0", + "version": "6.0.0", "bundled": true, "dev": true, "requires": { - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "promzard": "^1.0.0", "read": "^2.0.0", - "read-package-json": "^6.0.0", + "read-package-json": "^7.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^5.0.0" @@ -17993,7 +17946,7 @@ } }, "is-core-module": { - "version": "2.11.0", + "version": "2.12.1", "bundled": true, "dev": true, "requires": { @@ -18015,6 +17968,15 @@ "bundled": true, "dev": true }, + "jackspeak": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "json-parse-even-better-errors": { "version": "3.0.0", "bundled": true, @@ -18031,7 +17993,7 @@ "dev": true }, "just-diff": { - "version": "6.0.0", + "version": "6.0.2", "bundled": true, "dev": true }, @@ -18041,159 +18003,154 @@ "dev": true }, "libnpmaccess": { - "version": "7.0.2", + "version": "8.0.1", "bundled": true, "dev": true, "requires": { - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3" + "npm-package-arg": "^11.0.1", + "npm-registry-fetch": "^16.0.0" } }, "libnpmdiff": { - "version": "5.0.14", + "version": "6.0.2", "bundled": true, "dev": true, "requires": { - "@npmcli/arborist": "^6.2.6", + "@npmcli/arborist": "^7.2.0", "@npmcli/disparity-colors": "^3.0.0", "@npmcli/installed-package-contents": "^2.0.2", "binary-extensions": "^2.2.0", "diff": "^5.1.0", - "minimatch": "^7.4.2", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8", - "tar": "^6.1.13" + "minimatch": "^9.0.0", + "npm-package-arg": "^11.0.1", + "pacote": "^17.0.4", + "tar": "^6.2.0" } }, "libnpmexec": { - "version": "5.0.14", + "version": "7.0.2", "bundled": true, "dev": true, "requires": { - "@npmcli/arborist": "^6.2.6", - "@npmcli/run-script": "^6.0.0", - "chalk": "^4.1.0", + "@npmcli/arborist": "^7.2.0", + "@npmcli/run-script": "^7.0.1", "ci-info": "^3.7.1", - "npm-package-arg": "^10.1.0", + "npm-package-arg": "^11.0.1", "npmlog": "^7.0.1", - "pacote": "^15.0.8", + "pacote": "^17.0.4", "proc-log": "^3.0.0", "read": "^2.0.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", - "walk-up-path": "^1.0.0" + "walk-up-path": "^3.0.1" } }, "libnpmfund": { - "version": "4.0.14", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { - "@npmcli/arborist": "^6.2.6" + "@npmcli/arborist": "^7.2.0" } }, "libnpmhook": { - "version": "9.0.3", + "version": "10.0.0", "bundled": true, "dev": true, "requires": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^16.0.0" } }, "libnpmorg": { - "version": "5.0.3", + "version": "6.0.1", "bundled": true, "dev": true, "requires": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^16.0.0" } }, "libnpmpack": { - "version": "5.0.14", + "version": "6.0.2", "bundled": true, "dev": true, "requires": { - "@npmcli/arborist": "^6.2.6", - "@npmcli/run-script": "^6.0.0", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8" + "@npmcli/arborist": "^7.2.0", + "@npmcli/run-script": "^7.0.1", + "npm-package-arg": "^11.0.1", + "pacote": "^17.0.4" } }, "libnpmpublish": { - "version": "7.1.3", + "version": "9.0.1", "bundled": true, "dev": true, "requires": { "ci-info": "^3.6.1", - "normalize-package-data": "^5.0.0", - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3", + "normalize-package-data": "^6.0.0", + "npm-package-arg": "^11.0.1", + "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0", "semver": "^7.3.7", - "sigstore": "^1.0.0", - "ssri": "^10.0.1" + "sigstore": "^2.1.0", + "ssri": "^10.0.5" } }, "libnpmsearch": { - "version": "6.0.2", + "version": "7.0.0", "bundled": true, "dev": true, "requires": { - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^16.0.0" } }, "libnpmteam": { - "version": "5.0.3", + "version": "6.0.0", "bundled": true, "dev": true, "requires": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^16.0.0" } }, "libnpmversion": { - "version": "4.0.2", + "version": "5.0.0", "bundled": true, "dev": true, "requires": { - "@npmcli/git": "^4.0.1", - "@npmcli/run-script": "^6.0.0", + "@npmcli/git": "^5.0.3", + "@npmcli/run-script": "^7.0.1", "json-parse-even-better-errors": "^3.0.0", "proc-log": "^3.0.0", "semver": "^7.3.7" } }, "lru-cache": { - "version": "7.18.3", + "version": "10.0.1", "bundled": true, "dev": true }, "make-fetch-happen": { - "version": "11.0.3", + "version": "13.0.0", "bundled": true, "dev": true, "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", "ssri": "^10.0.0" } }, "minimatch": { - "version": "7.4.3", + "version": "9.0.3", "bundled": true, "dev": true, "requires": { @@ -18201,7 +18158,7 @@ } }, "minipass": { - "version": "4.2.5", + "version": "7.0.4", "bundled": true, "dev": true }, @@ -18224,12 +18181,12 @@ } }, "minipass-fetch": { - "version": "3.0.1", + "version": "3.0.4", "bundled": true, "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^4.0.0", + "minipass": "^7.0.3", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } @@ -18347,14 +18304,15 @@ "dev": true }, "node-gyp": { - "version": "9.3.1", + "version": "9.4.0", "bundled": true, "dev": true, "requires": { "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", + "make-fetch-happen": "^11.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -18363,15 +18321,6 @@ "which": "^2.0.2" }, "dependencies": { - "@npmcli/fs": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, "abbrev": { "version": "1.1.1", "bundled": true, @@ -18396,28 +18345,22 @@ } }, "cacache": { - "version": "16.1.3", + "version": "17.1.4", "bundled": true, "dev": true, "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", + "ssri": "^10.0.0", "tar": "^6.1.11", - "unique-filename": "^2.0.0" + "unique-filename": "^3.0.0" }, "dependencies": { "brace-expansion": { @@ -18429,35 +18372,32 @@ } }, "glob": { - "version": "8.1.0", + "version": "10.3.3", "bundled": true, "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" } }, "minimatch": { - "version": "5.1.6", + "version": "9.0.3", "bundled": true, "dev": true, "requires": { "brace-expansion": "^2.0.1" } + }, + "minipass": { + "version": "7.0.3", + "bundled": true, + "dev": true } } }, - "fs-minipass": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, "gauge": { "version": "4.0.4", "bundled": true, @@ -18486,27 +18426,31 @@ "path-is-absolute": "^1.0.0" } }, + "lru-cache": { + "version": "7.18.3", + "bundled": true, + "dev": true + }, "make-fetch-happen": { - "version": "10.2.1", + "version": "11.1.1", "bundled": true, "dev": true, "requires": { "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "ssri": "^10.0.0" } }, "minimatch": { @@ -18518,23 +18462,9 @@ } }, "minipass": { - "version": "3.3.6", - "bundled": true, - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-fetch": { - "version": "2.1.2", + "version": "5.0.0", "bundled": true, - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } + "dev": true }, "nopt": { "version": "6.0.0", @@ -18565,29 +18495,10 @@ "util-deprecate": "^1.0.1" } }, - "ssri": { - "version": "9.0.1", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", + "signal-exit": { + "version": "3.0.7", "bundled": true, - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } + "dev": true }, "which": { "version": "2.0.2", @@ -18600,7 +18511,7 @@ } }, "nopt": { - "version": "7.1.0", + "version": "7.2.0", "bundled": true, "dev": true, "requires": { @@ -18608,23 +18519,20 @@ } }, "normalize-package-data": { - "version": "5.0.0", + "version": "6.0.0", "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" } }, "npm-audit-report": { - "version": "4.0.0", + "version": "5.0.0", "bundled": true, - "dev": true, - "requires": { - "chalk": "^4.0.0" - } + "dev": true }, "npm-bundled": { "version": "3.0.0", @@ -18635,7 +18543,7 @@ } }, "npm-install-checks": { - "version": "6.1.0", + "version": "6.2.0", "bundled": true, "dev": true, "requires": { @@ -18643,23 +18551,23 @@ } }, "npm-normalize-package-bin": { - "version": "3.0.0", + "version": "3.0.1", "bundled": true, "dev": true }, "npm-package-arg": { - "version": "10.1.0", + "version": "11.0.1", "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "proc-log": "^3.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" } }, "npm-packlist": { - "version": "7.0.4", + "version": "8.0.0", "bundled": true, "dev": true, "requires": { @@ -18667,36 +18575,36 @@ } }, "npm-pick-manifest": { - "version": "8.0.1", + "version": "9.0.0", "bundled": true, "dev": true, "requires": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "semver": "^7.3.5" } }, "npm-profile": { - "version": "7.0.1", + "version": "9.0.0", "bundled": true, "dev": true, "requires": { - "npm-registry-fetch": "^14.0.0", + "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0" } }, "npm-registry-fetch": { - "version": "14.0.3", + "version": "16.0.0", "bundled": true, "dev": true, "requires": { - "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "proc-log": "^3.0.0" } }, @@ -18733,26 +18641,26 @@ } }, "pacote": { - "version": "15.1.1", + "version": "17.0.4", "bundled": true, "dev": true, "requires": { - "@npmcli/git": "^4.0.0", + "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", + "read-package-json": "^7.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", + "sigstore": "^2.0.0", "ssri": "^10.0.0", "tar": "^6.1.11" } @@ -18772,17 +18680,22 @@ "bundled": true, "dev": true }, + "path-key": { + "version": "3.1.1", + "bundled": true, + "dev": true + }, "path-scurry": { - "version": "1.6.1", + "version": "1.10.1", "bundled": true, "dev": true, "requires": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "postcss-selector-parser": { - "version": "6.0.11", + "version": "6.0.13", "bundled": true, "dev": true, "requires": { @@ -18806,7 +18719,7 @@ "dev": true }, "promise-call-limit": { - "version": "1.0.1", + "version": "1.0.2", "bundled": true, "dev": true }, @@ -18838,7 +18751,7 @@ "dev": true }, "read": { - "version": "2.0.0", + "version": "2.1.0", "bundled": true, "dev": true, "requires": { @@ -18851,13 +18764,13 @@ "dev": true }, "read-package-json": { - "version": "6.0.1", + "version": "7.0.0", "bundled": true, "dev": true, "requires": { - "glob": "^9.3.0", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", + "normalize-package-data": "^6.0.0", "npm-normalize-package-bin": "^3.0.0" } }, @@ -18871,7 +18784,7 @@ } }, "readable-stream": { - "version": "4.3.0", + "version": "4.4.0", "bundled": true, "dev": true, "requires": { @@ -18927,7 +18840,7 @@ } }, "safe-buffer": { - "version": "5.1.2", + "version": "5.2.1", "bundled": true, "dev": true }, @@ -18938,7 +18851,7 @@ "optional": true }, "semver": { - "version": "7.3.8", + "version": "7.5.4", "bundled": true, "dev": true, "requires": { @@ -18960,19 +18873,33 @@ "bundled": true, "dev": true }, + "shebang-command": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, "signal-exit": { - "version": "3.0.7", + "version": "4.0.2", "bundled": true, "dev": true }, "sigstore": { - "version": "1.2.0", + "version": "2.1.0", "bundled": true, "dev": true, "requires": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.1.0", + "@sigstore/tuf": "^2.1.0" } }, "smart-buffer": { @@ -19028,19 +18955,19 @@ "dev": true }, "ssri": { - "version": "10.0.1", + "version": "10.0.5", "bundled": true, "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^7.0.3" } }, "string_decoder": { - "version": "1.1.1", + "version": "1.3.0", "bundled": true, "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "string-width": { @@ -19053,6 +18980,16 @@ "strip-ansi": "^6.0.1" } }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "strip-ansi": { "version": "6.0.1", "bundled": true, @@ -19061,22 +18998,27 @@ "ansi-regex": "^5.0.1" } }, - "supports-color": { - "version": "7.2.0", + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", "bundled": true, "dev": true, "requires": { - "has-flag": "^4.0.0" + "ansi-regex": "^5.0.1" } }, + "supports-color": { + "version": "9.4.0", + "bundled": true, + "dev": true + }, "tar": { - "version": "6.1.13", + "version": "6.2.0", "bundled": true, "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -19099,6 +19041,11 @@ } } } + }, + "minipass": { + "version": "5.0.0", + "bundled": true, + "dev": true } } }, @@ -19118,12 +19065,13 @@ "dev": true }, "tuf-js": { - "version": "1.1.2", + "version": "2.1.0", "bundled": true, "dev": true, "requires": { - "@tufjs/models": "1.0.1", - "make-fetch-happen": "^11.0.1" + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" } }, "unique-filename": { @@ -19165,7 +19113,7 @@ } }, "walk-up-path": { - "version": "1.0.0", + "version": "3.0.1", "bundled": true, "dev": true }, @@ -19178,11 +19126,18 @@ } }, "which": { - "version": "3.0.0", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" + }, + "dependencies": { + "isexe": { + "version": "3.1.1", + "bundled": true, + "dev": true + } } }, "wide-align": { @@ -19193,18 +19148,73 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, + "wrap-ansi": { + "version": "8.1.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "bundled": true, + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "wrappy": { "version": "1.0.2", "bundled": true, "dev": true }, "write-file-atomic": { - "version": "5.0.0", + "version": "5.0.1", "bundled": true, "dev": true, "requires": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" } }, "yallist": { @@ -19580,24 +19590,21 @@ } }, "parse-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-5.0.0.tgz", - "integrity": "sha512-qOpH55/+ZJ4jUu/oLO+ifUKjFPNZGfnPJtzvGzKN/4oLMil5m9OH4VpOj6++9/ytJcfks4kzH2hhi87GL/OU9A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", + "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", "dev": true, "requires": { "protocols": "^2.0.0" } }, "parse-url": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-7.0.2.tgz", - "integrity": "sha512-PqO4Z0eCiQ08Wj6QQmrmp5YTTxpYfONdOEamrtvK63AmzXpcavIVQubGHxOEwiIoDZFb8uDOoQFS0NCcjqIYQg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", + "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", "dev": true, "requires": { - "is-ssh": "^1.4.0", - "normalize-url": "^6.1.0", - "parse-path": "^5.0.0", - "protocols": "^2.0.1" + "parse-path": "^7.0.0" } }, "path-exists": { @@ -19772,28 +19779,6 @@ } } }, - "portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", - "dev": true, - "requires": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, "postcss-load-config": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", @@ -19863,12 +19848,6 @@ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, "qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -19893,12 +19872,6 @@ "tslib": "^2.5.0" } }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -20040,57 +20013,114 @@ } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz", + "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==", "dev": true, "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "find-up": "^6.3.0", + "read-pkg": "^8.1.0", + "type-fest": "^4.2.0" }, "dependencies": { "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "requires": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + } + }, + "json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true + }, + "lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true + }, + "locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "requires": { + "p-locate": "^6.0.0" + } + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^1.0.0" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-limit": "^4.0.0" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "parse-json": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.0.tgz", + "integrity": "sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==", "dev": true, "requires": { - "p-try": "^2.0.0" + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" + }, + "dependencies": { + "type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true + } } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "read-pkg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", + "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" } }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.4.0.tgz", + "integrity": "sha512-HT3RRs7sTfY22KuPQJkD/XjbTbxgP2Je5HPt6H6JEGvcjHd5Lqru75EbrP3tb4FYjNJ+DjLp+MNQTFQU0mhXNw==", + "dev": true + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true } } @@ -20131,16 +20161,6 @@ "picomatch": "^2.2.1" } }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, "redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", @@ -20245,30 +20265,30 @@ "dev": true }, "semantic-release": { - "version": "21.0.7", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.7.tgz", - "integrity": "sha512-peRDSXN+hF8EFSKzze90ff/EnAmgITHQ/a3SZpRV3479ny0BIZWEJ33uX6/GlOSKdaSxo9hVRDyv2/u2MuF+Bw==", + "version": "22.0.5", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-22.0.5.tgz", + "integrity": "sha512-ESCEQsZlBj1DWMA84RthaJzQHHnihoGk49s9nUxHfRNUNZelLE9JZrE94bHO2Y00EWb7iwrzr1OYhv5QNVmf8A==", "dev": true, "requires": { - "@semantic-release/commit-analyzer": "^10.0.0", + "@semantic-release/commit-analyzer": "^11.0.0", "@semantic-release/error": "^4.0.0", "@semantic-release/github": "^9.0.0", - "@semantic-release/npm": "^10.0.2", - "@semantic-release/release-notes-generator": "^11.0.0", - "aggregate-error": "^4.0.1", + "@semantic-release/npm": "^11.0.0", + "@semantic-release/release-notes-generator": "^12.0.0", + "aggregate-error": "^5.0.0", "cosmiconfig": "^8.0.0", "debug": "^4.0.0", - "env-ci": "^9.0.0", - "execa": "^7.0.0", + "env-ci": "^10.0.0", + "execa": "^8.0.0", "figures": "^5.0.0", "find-versions": "^5.1.0", "get-stream": "^6.0.0", "git-log-parser": "^1.2.0", "hook-std": "^3.0.0", - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "lodash-es": "^4.17.21", - "marked": "^5.0.0", - "marked-terminal": "^5.1.1", + "marked": "^9.0.0", + "marked-terminal": "^6.0.0", "micromatch": "^4.0.2", "p-each-series": "^3.0.0", "p-reduce": "^3.0.0", @@ -20281,19 +20301,19 @@ }, "dependencies": { "aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, "requires": { - "clean-stack": "^4.0.0", + "clean-stack": "^5.2.0", "indent-string": "^5.0.0" } }, "clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", "dev": true, "requires": { "escape-string-regexp": "5.0.0" @@ -20317,45 +20337,34 @@ "dev": true }, "execa": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.0.0.tgz", - "integrity": "sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" - } - }, - "find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - } - }, - "hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" + }, + "dependencies": { + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true + } } }, "human-signals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", - "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true }, "indent-string": { @@ -20370,37 +20379,10 @@ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true }, - "json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true - }, - "lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", - "dev": true - }, - "locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "requires": { - "p-locate": "^6.0.0" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, "marked": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.0.tgz", - "integrity": "sha512-z3/nBe7aTI8JDszlYLk7dDVNpngjw0o1ZJtrA9kIfkkHcIF+xH7mO23aISl4WxP83elU+MFROgahqdpd05lMEQ==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.2.tgz", + "integrity": "sha512-qoKMJqK0w6vkLk8+KnKZAH6neUZSNaQqVZ/h2yZ9S7CbLuFHyS2viB0jnqcWF9UKjwsAbMrQtnQhdmdvOVOw9w==", "dev": true }, "mimic-fn": { @@ -20409,18 +20391,6 @@ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true }, - "normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "requires": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - } - }, "npm-run-path": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", @@ -20439,96 +20409,36 @@ "mimic-fn": "^4.0.0" } }, - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "requires": { - "p-limit": "^4.0.0" - } - }, "p-reduce": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", "dev": true }, - "parse-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", - "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - } - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true - }, "path-key": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true }, - "read-pkg": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.0.0.tgz", - "integrity": "sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^5.0.0", - "parse-json": "^7.0.0", - "type-fest": "^3.8.0" - } - }, - "read-pkg-up": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.0.0.tgz", - "integrity": "sha512-jgmKiS//w2Zs+YbX039CorlkOp8FIVbSAN8r8GJHDsGlmNPXo+VeHkqAwCiQVTTx5/LwLZTcEw59z3DvcLbr0g==", - "dev": true, - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^8.0.0", - "type-fest": "^3.12.0" - } - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, "strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true }, - "type-fest": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.0.tgz", - "integrity": "sha512-Gur3yQGM9qiLNs0KPP7LPgeRbio2QTt4xXouobMCarR0/wyW3F+F/+OWwshg3NG0Adon7uQfSZBpB46NfhoF1A==", - "dev": true - }, "yargs": { "version": "17.6.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", @@ -20549,12 +20459,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true } } }, @@ -20725,6 +20629,15 @@ } } }, + "skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "dev": true, + "requires": { + "unicode-emoji-modifier-base": "^1.0.0" + } + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -20833,36 +20746,11 @@ "spdx-ranges": "^2.0.0" } }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "requires": { - "readable-stream": "^3.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true }, "sprintf-js": { "version": "1.0.3", @@ -20921,15 +20809,6 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -20999,9 +20878,9 @@ } }, "supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, "requires": { "has-flag": "^4.0.0", @@ -21067,9 +20946,9 @@ } }, "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", "dev": true }, "text-table": { @@ -21126,31 +21005,9 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -21193,12 +21050,6 @@ "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", "dev": true }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, "trim-repeated": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", @@ -21334,14 +21185,14 @@ } }, "typedoc": { - "version": "0.24.8", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz", - "integrity": "sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.2.tgz", + "integrity": "sha512-286F7BeATBiWe/qC4PCOCKlSTwfnsLbC/4cZ68oGBbvAqb9vV33quEOXx7q176OXotD+JdEerdQ1OZGJ818lnA==", "dev": true, "requires": { "lunr": "^2.3.9", "marked": "^4.3.0", - "minimatch": "^9.0.0", + "minimatch": "^9.0.3", "shiki": "^0.14.1" }, "dependencies": { @@ -21355,9 +21206,9 @@ } }, "minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -21366,9 +21217,9 @@ } }, "typescript": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.5.tgz", - "integrity": "sha512-FOH+WN/DQjUvN6WgW+c4Ml3yi0PH+a/8q+kNIfRehv1wLhWONedw85iu+vQ39Wp49IzTJEsZ2lyLXpBF7mkF1g==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true }, "uglify-js": { @@ -21378,6 +21229,12 @@ "dev": true, "optional": true }, + "unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "dev": true + }, "unique-string": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", diff --git a/package.json b/package.json index 2141b3a26..5becabb3a 100644 --- a/package.json +++ b/package.json @@ -8,38 +8,36 @@ }, "description": "ical-generator is a small piece of code which generates ical calendar files", "devDependencies": { - "@qiwi/semantic-release-gh-pages-plugin": "^5.2.6", + "@qiwi/semantic-release-gh-pages-plugin": "^5.2.8", "@semantic-release/changelog": "^6.0.3", "@semantic-release/exec": "^6.0.3", "@semantic-release/git": "^10.0.1", - "@semantic-release/npm": "^10.0.4", + "@semantic-release/npm": "^11.0.0", "@touch4it/ical-timezones": "^1.9.0", - "@types/luxon": "^3.3.1", - "@types/mocha": "^10.0.1", - "@types/node": "^20.4.2", - "@typescript-eslint/eslint-plugin": "^6.2.1", - "@typescript-eslint/parser": "^6.2.1", + "@types/luxon": "^3.3.2", + "@types/mocha": "^10.0.2", + "@typescript-eslint/eslint-plugin": "^6.8.0", + "@typescript-eslint/parser": "^6.8.0", "c8": "^8.0.1", - "dayjs": "^1.11.9", - "eslint": "^8.45.0", - "eslint-plugin-jsonc": "^2.9.0", + "dayjs": "^1.11.10", + "eslint": "^8.51.0", + "eslint-plugin-jsonc": "^2.10.0", "esm": "^3.2.25", "license-checker": "^25.0.1", - "luxon": "^3.3.0", + "luxon": "^3.4.3", "mocha": "^10.2.0", "mochawesome": "^7.1.3", "moment": "^2.29.4", "moment-timezone": "^0.5.43", "nyc": "^15.1.0", - "portfinder": "^1.0.32", "rrule": "^2.7.2", - "semantic-release": "^21.0.7", + "semantic-release": "^22.0.5", "semantic-release-license": "^1.0.2", "source-map-support": "^0.5.21", "ts-node": "^10.9.1", "tsup": "^7.2.0", - "typedoc": "^0.24.8", - "typescript": "^5.1.5" + "typedoc": "^0.25.2", + "typescript": "^5.2.2" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -74,7 +72,6 @@ "@touch4it/ical-timezones": ">=1.6.0", "@types/luxon": ">= 1.26.0", "@types/mocha": ">= 8.2.1", - "@types/node": ">= 15.0.0", "dayjs": ">= 1.10.0", "luxon": ">= 1.26.0", "moment": ">= 2.29.0", diff --git a/release.config.cjs b/release.config.cjs index 04174e1f1..4f0628e32 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -21,7 +21,9 @@ configuration.plugins.push(['@semantic-release/commit-analyzer', { configuration.plugins.push('@semantic-release/release-notes-generator'); -configuration.plugins.push('@semantic-release/changelog'); +if (process.env.BRANCH === 'main') { + configuration.plugins.push('@semantic-release/changelog'); +} configuration.plugins.push('semantic-release-license'); diff --git a/src/alarm.ts b/src/alarm.ts index 88760bb5d..273b295a0 100755 --- a/src/alarm.ts +++ b/src/alarm.ts @@ -32,24 +32,34 @@ export interface ICalAttachment { mime: string | null; } -export interface ICalAlarmData { - type?: ICalAlarmType | null; - trigger?: number | ICalDateTimeValue | null; +export type ICalAlarmData = ICalAlarmBaseData | + ICalAlarmTriggerData | + ICalAlarmTriggerAfterData | + ICalAlarmTriggerBeforeData; + +type ICalAlarmTriggerData = ICalAlarmBaseData & { trigger: number | ICalDateTimeValue }; +type ICalAlarmTriggerAfterData = ICalAlarmBaseData & { triggerAfter: number | ICalDateTimeValue }; +type ICalAlarmTriggerBeforeData = ICalAlarmBaseData & { triggerBefore: number | ICalDateTimeValue }; + +interface ICalAlarmBaseData { + type?: ICalAlarmType; relatesTo?: ICalAlarmRelatesTo | null; - triggerBefore?: number | ICalDateTimeValue | null; - triggerAfter?: number | ICalDateTimeValue | null; - repeat?: number | null; - interval?: number | null; + repeat?: ICalAlarmRepeatData | null; attach?: string | ICalAttachment | null; description?: string | null; x?: {key: string, value: string}[] | [string, string][] | Record; } +export interface ICalAlarmRepeatData { + times: number; + interval: number; +} + interface ICalInternalAlarmData { - type: ICalAlarmType | null; - trigger: ICalDateTimeValue | number | null; + type: ICalAlarmType; + trigger: ICalDateTimeValue | number; relatesTo: ICalAlarmRelatesTo | null; - repeat: number | null; + repeat: ICalAlarmRepeatData | null; interval: number | null; attach: ICalAttachment | null; description: string | null; @@ -57,10 +67,10 @@ interface ICalInternalAlarmData { } export interface ICalAlarmJSONData { - type: ICalAlarmType | null; - trigger: string | number | null; + type: ICalAlarmType; + trigger: string | number; relatesTo: ICalAlarmRelatesTo | null; - repeat: number | null; + repeat: ICalAlarmRepeatData | null; interval: number | null; attach: ICalAttachment | null; description: string | null; @@ -99,8 +109,8 @@ export default class ICalAlarm { */ constructor (data: ICalAlarmData, event: ICalEvent) { this.data = { - type: null, - trigger: null, + type: ICalAlarmType.display, + trigger: -600, relatesTo: null, repeat: null, interval: null, @@ -115,11 +125,10 @@ export default class ICalAlarm { } data.type !== undefined && this.type(data.type); - data.trigger !== undefined && this.trigger(data.trigger); - data.triggerBefore !== undefined && this.triggerBefore(data.triggerBefore); - data.triggerAfter !== undefined && this.triggerAfter(data.triggerAfter); - data.repeat !== undefined && this.repeat(data.repeat); - data.interval !== undefined && this.interval(data.interval); + 'trigger' in data && data.trigger !== undefined && this.trigger(data.trigger); + 'triggerBefore' in data && data.triggerBefore !== undefined && this.triggerBefore(data.triggerBefore); + 'triggerAfter' in data && data.triggerAfter !== undefined && this.triggerAfter(data.triggerAfter); + data.repeat && this.repeat(data.repeat); data.attach !== undefined && this.attach(data.attach); data.description !== undefined && this.description(data.description); data.x !== undefined && this.x(data.x); @@ -130,24 +139,19 @@ export default class ICalAlarm { * Get the alarm type * @since 0.2.1 */ - type (type: ICalAlarmType | null): this; + type (type: ICalAlarmType): this; /** * Set the alarm type. See [[`ICalAlarmType`]] * for available status options. * @since 0.2.1 */ - type (): ICalAlarmType | null; - type (type?: ICalAlarmType | null): this | ICalAlarmType | null { + type (): ICalAlarmType; + type (type?: ICalAlarmType): this | ICalAlarmType { if (type === undefined) { return this.data.type; } - if (!type) { - this.data.type = null; - return this; - } - - if (!Object.keys(ICalAlarmType).includes(type)) { + if (!type || !Object.keys(ICalAlarmType).includes(type)) { throw new Error('`type` is not correct, must be either `display` or `audio`!'); } @@ -165,7 +169,7 @@ export default class ICalAlarm { * * @since 0.2.1 */ - trigger (): number | ICalDateTimeValue | null; + trigger (): number | ICalDateTimeValue; /** * Use this method to set the alarm time. @@ -185,28 +189,22 @@ export default class ICalAlarm { * * @since 0.2.1 */ - trigger (trigger: number | ICalDateTimeValue | Date | null): this; - trigger (trigger?: number | ICalDateTimeValue | Date | null): this | number | ICalDateTimeValue | null { + trigger (trigger: number | ICalDateTimeValue | Date): this; + trigger (trigger?: number | ICalDateTimeValue | Date): this | number | ICalDateTimeValue { // Getter if (trigger === undefined && typeof this.data.trigger === 'number') { return -1 * this.data.trigger; } - if (trigger === undefined && this.data.trigger) { - return this.data.trigger; - } if (trigger === undefined) { - return null; + return this.data.trigger; } // Setter - if (!trigger) { - this.data.trigger = null; - } - else if (typeof trigger === 'number' && isFinite(trigger)) { + if (typeof trigger === 'number' && isFinite(trigger)) { this.data.trigger = -1 * trigger; } - else if(typeof trigger === 'number') { + else if(!trigger || typeof trigger === 'number') { throw new Error('`trigger` is not correct, must be a finite number or a supported date!'); } else { @@ -275,7 +273,7 @@ export default class ICalAlarm { * * @since 0.2.1 */ - triggerAfter (): number | ICalDateTimeValue | null; + triggerAfter (): number | ICalDateTimeValue; /** * Use this method to set the alarm time. Unlike `trigger`, this time @@ -295,8 +293,8 @@ export default class ICalAlarm { * * @since 0.2.1 */ - triggerAfter (trigger: number | ICalDateTimeValue | null): this; - triggerAfter (trigger?: number | ICalDateTimeValue | null): this | number | ICalDateTimeValue | null { + triggerAfter (trigger: number | ICalDateTimeValue): this; + triggerAfter (trigger?: number | ICalDateTimeValue): this | number | ICalDateTimeValue { if (trigger === undefined) { return this.data.trigger; } @@ -315,7 +313,7 @@ export default class ICalAlarm { * @since 0.2.1 * @alias trigger */ - triggerBefore (trigger: number | ICalDateTimeValue | null): this; + triggerBefore (trigger: number | ICalDateTimeValue): this; /** * Use this method to set the alarm time. @@ -336,8 +334,8 @@ export default class ICalAlarm { * @since 0.2.1 * @alias trigger */ - triggerBefore (): number | ICalDateTimeValue | null; - triggerBefore (trigger?: number | ICalDateTimeValue | null): this | number | ICalDateTimeValue | null { + triggerBefore (): number | ICalDateTimeValue; + triggerBefore (trigger?: number | ICalDateTimeValue): this | number | ICalDateTimeValue { if(trigger === undefined) { return this.trigger(); } @@ -350,7 +348,7 @@ export default class ICalAlarm { * Get Alarm Repetitions * @since 0.2.1 */ - repeat(): number | null; + repeat(): ICalAlarmRepeatData | null; /** * Set Alarm Repetitions. Use this to repeat the alarm. @@ -361,15 +359,17 @@ export default class ICalAlarm { * * // repeat the alarm 4 times every 5 minutes… * cal.createAlarm({ - * repeat: 4, - * interval: 300 + * repeat: { + * times: 4, + * interval: 300 + * } * }); * ``` * * @since 0.2.1 */ - repeat(repeat: number | null): this; - repeat (repeat?: number | null): this | number | null { + repeat(repeat: ICalAlarmRepeatData | null): this; + repeat (repeat?: ICalAlarmRepeatData | null): this | ICalAlarmRepeatData | null { if (repeat === undefined) { return this.data.repeat; } @@ -378,52 +378,17 @@ export default class ICalAlarm { return this; } - if (typeof repeat !== 'number' || !isFinite(repeat)) { - throw new Error('`repeat` is not correct, must be numeric!'); + if (typeof repeat !== 'object') { + throw new Error('`repeat` is not correct, must be an object!'); } - - this.data.repeat = repeat; - return this; - } - - - /** - * Get Repeat Interval - * @since 0.2.1 - */ - interval (interval: number | null): this; - - /** - * Set Repeat Interval - * - * ```javascript - * const cal = ical(); - * const event = cal.createEvent(); - * - * // repeat the alarm 4 times every 5 minutes… - * cal.createAlarm({ - * repeat: 4, - * interval: 300 - * }); - * ``` - * - * @since 0.2.1 - */ - interval(): number | null; - interval (interval?: number | null): this | number | null { - if (interval === undefined) { - return this.data.interval || null; + if (typeof repeat.times !== 'number' || !isFinite(repeat.times)) { + throw new Error('`repeat.times` is not correct, must be numeric!'); } - if (!interval) { - this.data.interval = null; - return this; + if (typeof repeat.interval !== 'number' || !isFinite(repeat.interval)) { + throw new Error('`repeat.interval` is not correct, must be numeric!'); } - if (typeof interval !== 'number' || !isFinite(interval)) { - throw new Error('`interval` is not correct, must be numeric!'); - } - - this.data.interval = interval; + this.data.repeat = repeat; return this; } @@ -619,13 +584,6 @@ export default class ICalAlarm { toString (): string { let g = 'BEGIN:VALARM\r\n'; - if (!this.data.type) { - throw new Error('No value for `type` in ICalAlarm given!'); - } - if (!this.data.trigger) { - throw new Error('No value for `trigger` in ICalAlarm given!'); - } - // ACTION g += 'ACTION:' + this.data.type.toUpperCase() + '\r\n'; @@ -638,26 +596,23 @@ export default class ICalAlarm { } } else if (typeof this.data.trigger === 'number') { - g += 'TRIGGER;RELATED=' + this.data.relatesTo.toUpperCase() + ':' + toDurationString(this.data.trigger) + '\r\n'; + g += 'TRIGGER;RELATED=' + this.data.relatesTo?.toUpperCase() + ':' + toDurationString(this.data.trigger) + '\r\n'; } else { g += 'TRIGGER;VALUE=DATE-TIME:' + formatDate(this.event.timezone(), this.data.trigger) + '\r\n'; } // REPEAT - if (this.data.repeat && !this.data.interval) { - throw new Error('No value for `interval` in ICalAlarm given, but required for `repeat`!'); - } if (this.data.repeat) { - g += 'REPEAT:' + this.data.repeat + '\r\n'; - } + if (!this.data.repeat.times) { + throw new Error('No value for `repeat.times` in ICalAlarm given, but required for `interval`!'); + } + if (!this.data.repeat.interval) { + throw new Error('No value for `repeat.interval` in ICalAlarm given, but required for `repeat`!'); + } - // INTERVAL - if (this.data.interval && !this.data.repeat) { - throw new Error('No value for `repeat` in ICalAlarm given, but required for `interval`!'); - } - if (this.data.interval) { - g += 'DURATION:' + toDurationString(this.data.interval) + '\r\n'; + g += 'REPEAT:' + this.data.repeat.times + '\r\n'; + g += 'DURATION:' + toDurationString(this.data.repeat.interval) + '\r\n'; } // ATTACH diff --git a/src/attendee.ts b/src/attendee.ts index e8afe3898..79b1c3351 100755 --- a/src/attendee.ts +++ b/src/attendee.ts @@ -7,7 +7,7 @@ import ICalEvent from './event.js'; interface ICalInternalAttendeeData { name: string | null; - email: string | null; + email: string; mailto: string | null; sentBy: string | null; status: ICalAttendeeStatus | null; @@ -21,7 +21,7 @@ interface ICalInternalAttendeeData { export interface ICalAttendeeData { name?: string | null; - email?: string | null; + email: string; mailto?: string | null; sentBy?: string | null; status?: ICalAttendeeStatus | null; @@ -37,7 +37,7 @@ export interface ICalAttendeeData { export interface ICalAttendeeJSONData { name: string | null; - email: string | null; + email: string; mailto: string | null; sentBy: string | null; status: ICalAttendeeStatus | null; @@ -81,14 +81,14 @@ export enum ICalAttendeeType { * import ical from 'ical-generator'; * const calendar = ical(); * const event = calendar.createEvent(); - * const attendee = event.createAttendee(); + * const attendee = event.createAttendee({ email: 'mail@example.com' }); * ``` * * You can also use the [[`ICalAttendee`]] object directly: * * ```javascript * import ical, {ICalAttendee} from 'ical-generator'; - * const attendee = new ICalAttendee(); + * const attendee = new ICalAttendee({ email: 'mail@example.com' }); * event.attendees([attendee]); * ``` */ @@ -106,7 +106,7 @@ export default class ICalAttendee { constructor(data: ICalAttendeeData, event: ICalEvent) { this.data = { name: null, - email: null, + email: '', mailto: null, sentBy: null, status: null, @@ -121,6 +121,9 @@ export default class ICalAttendee { if (!this.event) { throw new Error('`event` option required!'); } + if (!data.email) { + throw new Error('No value for `email` in ICalAttendee given!'); + } data.name !== undefined && this.name(data.name); data.email !== undefined && this.email(data.email); @@ -163,14 +166,14 @@ export default class ICalAttendee { * Get the attendee's email address * @since 0.2.0 */ - email(): string | null; + email(): string; /** * Set the attendee's email address * @since 0.2.0 */ - email(email: string | null): this; - email(email?: string | null): this | string | null { + email(email: string): this; + email(email?: string): this | string { if (!email) { return this.data.email; } @@ -363,7 +366,7 @@ export default class ICalAttendee { if(typeof delegatedTo === 'string') { this.data.delegatedTo = new ICalAttendee( - checkNameAndMail('delegatedTo', delegatedTo), + { email: delegatedTo, ...checkNameAndMail('delegatedTo', delegatedTo) }, this.event, ); } @@ -405,7 +408,7 @@ export default class ICalAttendee { } else if(typeof delegatedFrom === 'string') { this.data.delegatedFrom = new ICalAttendee( - checkNameAndMail('delegatedFrom', delegatedFrom), + { email: delegatedFrom, ...checkNameAndMail('delegatedFrom', delegatedFrom) }, this.event, ); } diff --git a/src/calendar.ts b/src/calendar.ts index a05141cb4..b3aa8df2b 100755 --- a/src/calendar.ts +++ b/src/calendar.ts @@ -9,8 +9,6 @@ import { toDurationString } from './tools.js'; import ICalEvent, {ICalEventData, ICalEventJSONData} from './event.js'; -import {writeFile, writeFileSync, promises as fsPromises} from 'node:fs'; -import {ServerResponse} from 'node:http'; import { ICalMomentDurationStub, ICalTimezone } from './types.js'; @@ -583,92 +581,6 @@ export default class ICalCalendar { } - /** - * Save ical file using [`fs/promises`](https://nodejs.org/api/fs.html#fs_fspromises_writefile_file_data_options). - * Only works in node.js environments. - * - * ```javascript - * await calendar.save('./calendar.ical'); - * ``` - */ - save(path: string): Promise; - - /** - * Save ical file with [`fs.writeFile`](http://nodejs.org/api/fs.html#fs_fs_writefile_filename_data_options_callback). - * Only works in node.js environments. - * - * ```javascript - * calendar.save('./calendar.ical', err => { - * console.log(err); - * }); - * ``` - */ - save(path: string, cb?: (err: NodeJS.ErrnoException | null) => void): this; - save(path: string, cb?: (err: NodeJS.ErrnoException | null) => void): this | Promise { - if (cb) { - writeFile(path, this.toString(), cb); - return this; - } - - return fsPromises.writeFile(path, this.toString()); - } - - - /** - * Save Calendar to disk synchronously using - * [fs.writeFileSync](http://nodejs.org/api/fs.html#fs_fs_writefilesync_filename_data_options). - * Only works in node.js environments. - * - * ```javascript - * calendar.saveSync('./calendar.ical'); - * ``` - */ - saveSync(path: string): this { - writeFileSync(path, this.toString()); - return this; - } - - - /** - * Send calendar to the user when using HTTP using the passed `ServerResponse` object. - * Use second parameter `filename` to change the filename, which defaults to `'calendar.ics'`. - * - * @param response HTTP Response object which is used to send the calendar - * @param [filename = 'calendar.ics'] Filename of the calendar file - */ - serve(response: ServerResponse, filename = 'calendar.ics'): this { - response.writeHead(200, { - 'Content-Type': 'text/calendar; charset=utf-8', - 'Content-Disposition': `attachment; filename="${filename}"` - }); - - response.end(this.toString()); - return this; - } - - - /** - * Generates a blob to use for downloads or to generate a download URL. - * Only supported in browsers supporting the Blob API. - * - * @since 1.9.0 - */ - toBlob(): Blob { - return new Blob([this.toString()], {type: 'text/calendar'}); - } - - - /** - * Returns a URL to download the ical file. Uses the Blob object internally, - * so it's only supported in browsers supporting the Blob API. - * - * @since 1.9.0 - */ - toURL(): string { - return URL.createObjectURL(this.toBlob()); - } - - /** * Set X-* attributes. Woun't filter double attributes, * which are also added by another method (e.g. busystatus), diff --git a/src/category.ts b/src/category.ts index 8d92287bf..894721571 100755 --- a/src/category.ts +++ b/src/category.ts @@ -5,13 +5,15 @@ import {escape} from './tools.js'; export interface ICalCategoryData { - name?: string | null + name: string; } export interface ICalCategoryInternalData { - name: string | null + name: string; } +export type ICalCategoryJSONData = ICalCategoryInternalData; + /** * Usually you get an `ICalCategory` object like this: @@ -40,10 +42,14 @@ export default class ICalCategory { */ constructor(data: ICalCategoryData) { this.data = { - name: null + name: '' }; - data.name !== undefined && this.name(data.name); + if(!data.name) { + throw new Error('No value for `name` in ICalCategory given!'); + } + + this.name(data.name); } @@ -51,19 +57,19 @@ export default class ICalCategory { * Get the category name * @since 0.3.0 */ - name(): string | null; + name(): string; /** * Set the category name * @since 0.3.0 */ - name(name: string | null): this; - name(name?: string | null): this | string | null { + name(name: string): this; + name(name?: string): this | string { if (name === undefined) { return this.data.name; } - this.data.name = name || null; + this.data.name = name; return this; } @@ -89,10 +95,6 @@ export default class ICalCategory { toString(): string { // CN / Name - if (!this.data.name) { - throw new Error('No value for `name` in ICalCategory given!'); - } - return escape(this.data.name, false); } } diff --git a/src/event.ts b/src/event.ts index 3cee8cfb9..d8233c410 100755 --- a/src/event.ts +++ b/src/event.ts @@ -57,7 +57,7 @@ export enum ICalEventClass { export interface ICalEventData { id?: string | number | null, sequence?: number, - start?: ICalDateTimeValue | null, + start: ICalDateTimeValue, end?: ICalDateTimeValue | null, recurrenceId?: ICalDateTimeValue | null, timezone?: string | null, @@ -87,7 +87,7 @@ export interface ICalEventData { interface ICalEventInternalData { id: string, sequence: number, - start: ICalDateTimeValue | null, + start: ICalDateTimeValue, end: ICalDateTimeValue | null, recurrenceId: ICalDateTimeValue | null, timezone: string | null, @@ -117,7 +117,7 @@ interface ICalEventInternalData { export interface ICalEventJSONData { id: string, sequence: number, - start: string | null, + start: string, end: string | null, recurrenceId: string | null, timezone: string | null, @@ -180,7 +180,7 @@ export default class ICalEvent { this.data = { id: uuid(), sequence: 0, - start: null, + start: new Date(), end: null, recurrenceId: null, timezone: null, @@ -318,7 +318,7 @@ export default class ICalEvent { * * @since 0.2.0 */ - start(): ICalDateTimeValue | null; + start(): ICalDateTimeValue; /** * Set the appointment date of beginning, which is required for all events. @@ -329,7 +329,7 @@ export default class ICalEvent { * @since 0.2.0 */ start(start: ICalDateTimeValue): this; - start(start?: ICalDateTimeValue): this | ICalDateTimeValue | null { + start(start?: ICalDateTimeValue): this | ICalDateTimeValue { if (start === undefined) { return this.data.start; } @@ -878,13 +878,13 @@ export default class ICalEvent { * * @since 0.2.0 */ - createAttendee(data: ICalAttendee | ICalAttendeeData | string = {}): ICalAttendee { + createAttendee(data: ICalAttendee | ICalAttendeeData | string): ICalAttendee { if (data instanceof ICalAttendee) { this.data.attendees.push(data); return data; } if (typeof data === 'string') { - data = checkNameAndMail('data', data); + data = { email: data, ...checkNameAndMail('data', data) }; } const attendee = new ICalAttendee(data, this); @@ -945,7 +945,7 @@ export default class ICalEvent { * * @since 0.2.1 */ - createAlarm(data: ICalAlarm | ICalAlarmData = {}): ICalAlarm { + createAlarm(data: ICalAlarm | ICalAlarmData): ICalAlarm { const alarm = data instanceof ICalAlarm ? data : new ICalAlarm(data, this); this.data.alarms.push(alarm); return alarm; @@ -1002,7 +1002,7 @@ export default class ICalEvent { * * @since 0.3.0 */ - createCategory(data: ICalCategory | ICalCategoryData = {}): ICalCategory { + createCategory(data: ICalCategory | ICalCategoryData): ICalCategory { const category = data instanceof ICalCategory ? data : new ICalCategory(data); this.data.categories.push(category); return category; @@ -1442,10 +1442,6 @@ export default class ICalEvent { toString(): string { let g = ''; - if (!this.data.start) { - throw new Error('No value for `start` in ICalEvent #' + this.data.id + ' given!'); - } - // DATE & TIME g += 'BEGIN:VEVENT\r\n'; g += 'UID:' + this.data.id + '\r\n'; @@ -1621,9 +1617,9 @@ export default class ICalEvent { // CATEGORIES if (this.data.categories.length > 0) { - g += 'CATEGORIES:' + this.data.categories.map(function (category) { - return category.toString(); - }).join() + '\r\n'; + g += 'CATEGORIES:' + this.data.categories + .map(category => category.toString()) + .join() + '\r\n'; } // URL diff --git a/src/index.ts b/src/index.ts index 23789d4a6..d9587b871 100755 --- a/src/index.ts +++ b/src/index.ts @@ -49,6 +49,7 @@ export default ical; export { default as ICalAlarm, ICalAlarmData, + ICalAlarmRepeatData, ICalAlarmType, ICalAlarmTypeValue, ICalAlarmJSONData, @@ -74,7 +75,8 @@ export { export { default as ICalCategory, - ICalCategoryData + ICalCategoryData, + ICalCategoryJSONData } from './category.js'; export { diff --git a/src/tools.ts b/src/tools.ts index 1c7d64346..04c2c77c1 100755 --- a/src/tools.ts +++ b/src/tools.ts @@ -1,7 +1,9 @@ 'use strict'; import { - ICalDateTimeValue, ICalDayJsStub, ICalLuxonDateTimeStub, + ICalDateTimeValue, + ICalDayJsStub, + ICalLuxonDateTimeStub, ICalMomentDurationStub, ICalMomentStub, ICalMomentTimezoneStub, diff --git a/test/alarm.ts b/test/alarm.ts index 3fd8b4fd5..0d46b076f 100644 --- a/test/alarm.ts +++ b/test/alarm.ts @@ -5,7 +5,7 @@ import moment from 'moment-timezone'; import ICalCalendar from '../src/calendar.js'; import ICalEvent from '../src/event.js'; -import ICalAlarm, {ICalAlarmRelatesTo, ICalAlarmType} from '../src/alarm.js'; +import ICalAlarm, { ICalAlarmRelatesTo, ICalAlarmType } from '../src/alarm.js'; describe('ical-generator Alarm', function () { @@ -22,7 +22,9 @@ describe('ical-generator Alarm', function () { // @ts-ignore unknown: true, type: ICalAlarmType.display - }, new ICalEvent({}, new ICalCalendar())); + }, new ICalEvent({ + start: new Date() + }, new ICalCalendar())); assert.strictEqual(a.type(), 'display'); }); @@ -30,52 +32,64 @@ describe('ical-generator Alarm', function () { describe('type()', function () { it('setter should return this', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - assert.deepStrictEqual(a, a.type(null)); + const a = new ICalAlarm({}, new ICalEvent({ + start: new Date() + }, new ICalCalendar())); assert.deepStrictEqual(a, a.type(ICalAlarmType.display)); }); it('getter should return value', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - assert.strictEqual(a.type(), null); - - a.type(ICalAlarmType.display); + const a = new ICalAlarm({}, new ICalEvent({ + start: new Date() + }, new ICalCalendar())); assert.strictEqual(a.type(), 'display'); - a.type(null); - assert.strictEqual(a.type(), null); + a.type(ICalAlarmType.audio); + assert.strictEqual(a.type(), 'audio'); }); it('should throw error when type not allowed', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent({ + start: new Date() + }, new ICalCalendar())); assert.throws(function () { // @ts-ignore a.type('BANANA'); }, /`type`/); + + assert.throws(function () { + // @ts-ignore + a.type(null); + }, /`type`/); }); it('should change something', function () { - const a = new ICalAlarm({ - type: ICalAlarmType.display, - trigger: 60 * 10 - }, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); assert.ok(a.toString().indexOf('ACTION:DISPLAY') > -1); }); }); describe('trigger()', function () { it('setter should return this', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - assert.deepStrictEqual(a, a.trigger(null)); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); assert.deepStrictEqual(a, a.trigger(60 * 10)); }); it('getter should return value', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); const now = new Date(); - assert.strictEqual(a.trigger(), null); - assert.strictEqual(a.triggerAfter(), null); + assert.strictEqual(a.trigger(), 600); + assert.strictEqual(a.triggerAfter(), -600); a.trigger(300); assert.strictEqual(a.trigger(), 300); @@ -85,15 +99,13 @@ describe('ical-generator Alarm', function () { a.trigger(now); const dateResult = a.trigger(); assert.deepStrictEqual(dateResult, now); - - // Null - a.trigger(null); - assert.strictEqual(a.trigger(), null); - assert.strictEqual(a.triggerAfter(), null); }); it('should throw error when trigger not allowed', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); assert.throws(function () { a.trigger(Infinity); }, /`trigger`/); @@ -107,65 +119,86 @@ describe('ical-generator Alarm', function () { }, /`trigger`/); }); - it('setter should work with null', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - a.trigger(60 * 10); - a.trigger(null); - assert.strictEqual(a.trigger(), null); - }); - it('setter should work with date', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + a.trigger(new Date()); assert.ok(a.trigger() instanceof Date); }); it('setter should work with moment instance', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + a.trigger(moment()); assert.ok(moment.isMoment(a.trigger())); }); it('setter should work with number', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + a.trigger(2 * 60); assert.strictEqual(a.trigger(), 120); }); it('should change something', function () { const trigger = moment('2015-02-01T13:38:45.000Z'); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); - const a = new ICalAlarm( - {type: ICalAlarmType.display, trigger: 60 * 10}, - new ICalEvent({}, new ICalCalendar()) - ); - assert.ok(a.toString().indexOf('TRIGGER:-PT10M') > -1); + assert.ok(a.toString().includes('TRIGGER:-PT10M')); a.trigger(trigger); - assert.ok(a.toString().indexOf('TRIGGER;VALUE=DATE-TIME:20150201T133845Z') > -1); + assert.ok(a.toString().includes('TRIGGER;VALUE=DATE-TIME:20150201T133845Z')); }); }); describe('triggerAfter()', function () { it('setter should return this', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.deepStrictEqual(a, a.triggerAfter(60 * 10)); }); it('getter should return value', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())).triggerAfter(300); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )).triggerAfter(300); + assert.strictEqual(a.triggerAfter(), 300); assert.strictEqual(a.trigger(), -300); }); it('setter should work with number', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + a.triggerAfter(120); assert.strictEqual(a.trigger(), -120); }); it('setter should throw error when trigger not allowed', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.throws(function () { a.triggerAfter(Infinity); }, /`trigger`/); @@ -181,11 +214,11 @@ describe('ical-generator Alarm', function () { it('should change something', function () { const trigger = moment('20150201T133845Z'); + const a = new ICalAlarm({ triggerAfter: 600 }, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); - const a = new ICalAlarm( - {type: ICalAlarmType.display, triggerAfter: 60 * 10}, - new ICalEvent({}, new ICalCalendar()) - ); assert.ok(a.toString().indexOf('TRIGGER;RELATED=END:PT10M') > -1); a.triggerAfter(trigger); @@ -195,16 +228,22 @@ describe('ical-generator Alarm', function () { describe('triggerBefore()', function () { it('setter should return this', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - assert.deepStrictEqual(a, a.triggerBefore(null)); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.deepStrictEqual(a, a.triggerBefore(60 * 10)); }); it('getter should return value', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); const now = new Date(); - assert.strictEqual(a.triggerBefore(), null); + assert.strictEqual(a.triggerBefore(), 600); a.trigger(300); assert.strictEqual(a.triggerBefore(), 300); @@ -213,14 +252,14 @@ describe('ical-generator Alarm', function () { a.trigger(now); const dateResult = a.triggerBefore(); assert.deepStrictEqual(dateResult, now); - - // Null - a.trigger(null); - assert.strictEqual(a.triggerBefore(), null); }); it('should throw error when trigger not allowed', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.throws(function () { a.triggerBefore(Infinity); }, /`trigger`/); @@ -234,39 +273,43 @@ describe('ical-generator Alarm', function () { }, /`trigger`/); }); - it('setter should work with null', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - a.triggerBefore(60 * 10); - a.triggerBefore(null); - assert.strictEqual(a.trigger(), null); - }); - it('setter should work with date', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + const now = new Date(); a.triggerBefore(now); assert.deepStrictEqual(a.trigger(), now); }); it('setter should work with moment instance', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - a.triggerBefore(moment()); + const a = new ICalAlarm({ triggerBefore: moment() }, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.ok(moment.isMoment(a.trigger())); }); it('setter should work with number', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + a.triggerBefore(2 * 60); assert.strictEqual(a.trigger(), 120); }); it('should change something', function () { const trigger = moment('2015-02-01T13:38:45.000Z'); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); - const a = new ICalAlarm( - {type: ICalAlarmType.display, triggerBefore: 60 * 10}, - new ICalEvent({}, new ICalCalendar()) - ); assert.ok(a.toString().indexOf('TRIGGER:-PT10M') > -1); a.triggerBefore(trigger); @@ -276,14 +319,21 @@ describe('ical-generator Alarm', function () { describe('relatesTo()', function () { it('setter should return this', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.deepStrictEqual(a, a.relatesTo(null)); assert.deepStrictEqual(a, a.relatesTo(ICalAlarmRelatesTo.end)); }); it('getter should return value', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - assert.strictEqual(a.relatesTo(), null); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + a.relatesTo(ICalAlarmRelatesTo.end); assert.strictEqual(a.relatesTo(), ICalAlarmRelatesTo.end); a.relatesTo(null); @@ -291,7 +341,11 @@ describe('ical-generator Alarm', function () { }); it('should throw if value is not `null`, "START" or "END"', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.throws(function () { // @ts-ignore a.relatesTo('hi'); @@ -307,10 +361,11 @@ describe('ical-generator Alarm', function () { }); it('should change RELATED', function () { - const a = new ICalAlarm( - {type: ICalAlarmType.display, triggerBefore: 60 * 10}, - new ICalEvent({}, new ICalCalendar()) - ); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.ok(a.toString().indexOf('RELATED=START') === -1); a.relatesTo(ICalAlarmRelatesTo.start); @@ -323,98 +378,150 @@ describe('ical-generator Alarm', function () { describe('repeat()', function () { it('setter should return this', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - assert.deepStrictEqual(a, a.repeat(null)); - assert.deepStrictEqual(a, a.repeat(4)); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + + assert.deepStrictEqual(a, a.repeat({ + times: 4, + interval: 60 + })); }); it('getter should return value', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - assert.strictEqual(a.repeat(), null); - a.repeat(100); - assert.strictEqual(a.repeat(), 100); - a.repeat(null); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.strictEqual(a.repeat(), null); + a.repeat({ times: 4, interval: 60 }); + assert.deepStrictEqual(a.repeat(), { times: 4, interval: 60 }); }); it('should throw error if repeat not allowed', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.throws(function () { - a.repeat(Infinity); - }, /`repeat`/); + a.repeat({ + times: Infinity, + interval: 60 + }); + }, /`repeat.times`/); assert.throws(function () { - // @ts-ignore - a.repeat('hi'); - }, /`repeat`/); + a.repeat({ + // @ts-ignore + times: 'hi', + interval: 60 + }); + }, /`repeat.times`/); assert.throws(function () { - // @ts-ignore - a.repeat(true); - }, /`repeat`/); + a.repeat({ + // @ts-ignore + times: true, + interval: 60 + }); + }, /`repeat.times`/); + + assert.throws(function () { + a.repeat({ + times: 4, + interval: Infinity + }); + }, /`repeat.interval`/); + assert.throws(function () { + a.repeat({ + times: 4, + // @ts-ignore + interval: 'hi' + }); + }, /`repeat.interval`/); + assert.throws(function () { + a.repeat({ + times: 4, + // @ts-ignore + interval: true + }); + }, /`repeat.interval`/); }); it('should change something', function () { const a = new ICalAlarm({ - type: ICalAlarmType.display, trigger: 300, - repeat: 42, - interval: 60 - }, new ICalEvent({}, new ICalCalendar())); - assert.ok(a.toString().indexOf('REPEAT:42') > -1); - }); - }); - - describe('interval()', function () { - it('setter should return this', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - assert.deepStrictEqual(a, a.interval(null)); - assert.deepStrictEqual(a, a.interval(60)); - }); + repeat: { + times: 42, + interval: 90 + } + }, new ICalEvent({ start: new Date() }, new ICalCalendar())); + assert.ok(a.toString().includes('REPEAT:42')); + assert.ok(a.toString().includes('DURATION:PT1M30S')); - it('getter should return value', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - assert.strictEqual(a.interval(), null); - a.interval(30); - assert.strictEqual(a.interval(), 30); - a.interval(null); - assert.strictEqual(a.interval(), null); + a.repeat(null); + assert.ok(!a.toString().includes('REPEAT:42')); + assert.ok(!a.toString().includes('DURATION:PT1M30S')); }); - it('should throw error if repeat not allowed', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + it('should throw an error if repeat is set but interval isn\'t', function () { assert.throws(function () { - a.interval(Infinity); - }, /`interval`/); + new ICalAlarm( + { + trigger: 300, + repeat: { + times: 4, + // @ts-ignore + interval: null + } + }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); + }, /`repeat.interval`/); + }); + + it('should throw an error if interval is set but repeat isn\'t', function () { assert.throws(function () { - // @ts-ignore - a.interval('hi'); - }, /`interval`/); + new ICalAlarm({ + trigger: 300, + repeat: { + // @ts-ignore + times: null, + interval: 60 + } + }, new ICalEvent({ start: new Date() }, new ICalCalendar())); + }, /`repeat.times`/); + }); + + it('should throw an error if interval is of wrong type', function () { assert.throws(function () { - // @ts-ignore - a.interval(true); - }, /`interval`/); - }); - - it('should change something', function () { - const a = new ICalAlarm({ - type: ICalAlarmType.display, - trigger: 300, - repeat: 42, - interval: 90 - }, new ICalEvent({}, new ICalCalendar())); - assert.ok(a.toString().indexOf('DURATION:PT1M30S') > -1); + new ICalAlarm({ + trigger: 300, + // @ts-ignore + repeat: true + }, new ICalEvent({ start: new Date() }, new ICalCalendar())); + }, /`repeat` is not correct, must be an object!/); }); }); describe('attach()', function () { it('setter should return this', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.deepStrictEqual(a, a.attach(null)); assert.deepStrictEqual(a, a.attach('https://sebbo.net/beep.aud')); }); it('getter should return value', function () { const t = {uri: 'https://example.com/alarm.aud', mime: 'audio/basic'}; - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); assert.strictEqual(a.attach(), null); @@ -440,7 +547,11 @@ describe('ical-generator Alarm', function () { }); it('should throw error withour uri', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.throws(function () { // @ts-ignore a.attach({mime: 'audio/basic'}); @@ -448,7 +559,11 @@ describe('ical-generator Alarm', function () { }); it('should throw error when unknown format', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.throws(function () { // @ts-ignore a.attach(Infinity); @@ -456,10 +571,11 @@ describe('ical-generator Alarm', function () { }); it('should change something', function () { - const a = new ICalAlarm({ - type: ICalAlarmType.audio, - trigger: 300 - }, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({ type: ICalAlarmType.audio }, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.ok(a.toString().indexOf('\r\nATTACH;VALUE=URI:Basso') > -1); a.attach('https://example.com/beep.aud'); @@ -475,13 +591,21 @@ describe('ical-generator Alarm', function () { describe('description()', function () { it('setter should return this', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.deepStrictEqual(a, a.description(null)); assert.deepStrictEqual(a, a.description('Hey Ho!')); }); it('getter should return value', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.deepStrictEqual(a.description(), null); a.description('blablabla'); assert.deepStrictEqual(a.description(), 'blablabla'); @@ -491,20 +615,16 @@ describe('ical-generator Alarm', function () { it('should change something', function () { const a = new ICalAlarm({ - type: ICalAlarmType.display, - trigger: 300, description: 'Huibuh!' - }, new ICalEvent({}, new ICalCalendar())); + }, new ICalEvent({ start: new Date() }, new ICalCalendar())); assert.ok(a.toString().indexOf('\r\nDESCRIPTION:Huibuh') > -1); }); it('should fallback to event summary', function () { - const a = new ICalAlarm({ - type: ICalAlarmType.display, - trigger: 300 - }, new ICalEvent({ - summary: 'Example Event' - }, new ICalCalendar())); + const a = new ICalAlarm({ description: 'Example Event' }, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); assert.ok(a.toString().indexOf('\r\nDESCRIPTION:Example Event') > -1); }); @@ -512,14 +632,22 @@ describe('ical-generator Alarm', function () { describe('x()', function () { it('is there', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + assert.deepStrictEqual(a, a.x('X-FOO', 'bar')); }); }); describe('toJSON()', function () { it('should work', function() { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); + a.type(ICalAlarmType.display); a.trigger(120); @@ -536,45 +664,12 @@ describe('ical-generator Alarm', function () { }); it('should be compatible with constructor (type check)', function () { - const a = new ICalAlarm({}, new ICalEvent({}, new ICalCalendar())); - new ICalAlarm(a.toJSON(), new ICalEvent({}, new ICalCalendar())); - }); - }); - - describe('generate()', function () { - it('shoult throw an error without type', function () { - const a = new ICalAlarm({trigger: 300}, new ICalEvent({}, new ICalCalendar())); - assert.throws(function () { - a.toString(); - }, /`type`/); - }); + const a = new ICalAlarm({}, new ICalEvent( + { start: new Date() }, + new ICalCalendar() + )); - it('shoult throw an error without trigger', function () { - const a = new ICalAlarm({type: ICalAlarmType.display}, new ICalEvent({}, new ICalCalendar())); - assert.throws(function () { - a.toString(); - }, /`trigger`/); - }); - - it('shoult throw an error if repeat is set but interval isn\'t', function () { - const a = new ICalAlarm( - {type: ICalAlarmType.display, trigger: 300, repeat: 4}, - new ICalEvent({}, new ICalCalendar()) - ); - assert.throws(function () { - a.toString(); - }, /for `interval`/); - }); - - it('shoult throw an error if interval is set but repeat isn\'t', function () { - const a = new ICalAlarm({ - type: ICalAlarmType.display, - trigger: 300, - interval: 60 - }, new ICalEvent({}, new ICalCalendar())); - assert.throws(function () { - a.toString(); - }, /for `repeat`/); + new ICalAlarm(a.toJSON(), new ICalEvent({ start: new Date() }, new ICalCalendar())); }); }); }); diff --git a/test/attendee.ts b/test/attendee.ts index 6b775cd13..1dbef7290 100644 --- a/test/attendee.ts +++ b/test/attendee.ts @@ -26,7 +26,10 @@ describe('ical-generator Attendee', function () { delegatedFrom: null, x: [] }; - const event = new ICalAttendee(data, new ICalEvent({}, new ICalCalendar())); + const event = new ICalAttendee( + data, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(event.toJSON(), data); }); @@ -36,11 +39,25 @@ describe('ical-generator Attendee', function () { new ICalAttendee({ email: 'foo@bar.com' }); }, /`event`/); }); + + it('should throw an error without email', function () { + assert.throws(function () { + new ICalAttendee( + + // @ts-ignore + { name: 'Testuser' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); + }, /`email`/); + }); }); describe('name()', function () { it('getter should return value', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.strictEqual(a.name(), null); a.name('Sebastian'); @@ -48,13 +65,19 @@ describe('ical-generator Attendee', function () { }); it('setter should return this', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a, a.name(null)); assert.deepStrictEqual(a, a.name('Sebastian')); }); it('setter should change something', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); a.name('Sebastian'); assert.strictEqual(a.name(), 'Sebastian'); @@ -66,24 +89,36 @@ describe('ical-generator Attendee', function () { describe('email()', function () { it('getter should return value', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())).email('foo@example.com'); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ).email('foo@example.com'); assert.strictEqual(a.email(), 'foo@example.com'); }); it('setter should return this', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a, a.email('foo@example.com')); }); it('should change something', function () { - const a = new ICalAttendee({ email: 'mail@example.com' }, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'mail@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.ok(a.toString().indexOf('mail@example.com') > -1); }); }); describe('mailto()', function () { it('getter should return value', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.strictEqual(a.mailto(), null); a.mailto('foo@example.com'); @@ -91,13 +126,19 @@ describe('ical-generator Attendee', function () { }); it('setter should return this', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a, a.mailto(null)); assert.deepStrictEqual(a, a.mailto('foo@example.com')); }); it('should change mailto and keep email if present', function () { - const a = new ICalAttendee({ email: 'mail@example.com' }, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'mail@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); a.mailto('mail2@example2.com'); assert.ok( a.toString().indexOf('EMAIL=mail@example.com') > -1 && @@ -108,34 +149,52 @@ describe('ical-generator Attendee', function () { describe('sentBy()', function () { it('getter should return value', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())).sentBy('foo@example.com'); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ).sentBy('foo@example.com'); assert.strictEqual(a.sentBy(), 'foo@example.com'); }); it('setter should return this', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a, a.sentBy('foo@example.com')); }); it('should change something', function () { - const a = new ICalAttendee({ email: 'foo@example.com', sentBy: 'bar@example.com' }, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com', sentBy: 'bar@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.ok(a.toString().includes('bar@example.com')); }); }); describe('role()', function () { it('setter should return this', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a, a.role(ICalAttendeeRole.REQ)); }); it('getter should return value', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())).role(ICalAttendeeRole.REQ); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ).role(ICalAttendeeRole.REQ); assert.strictEqual(a.role(), 'REQ-PARTICIPANT'); }); it('should throw error when method empty', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.throws(function () { // @ts-ignore a.role(''); @@ -143,7 +202,10 @@ describe('ical-generator Attendee', function () { }); it('should throw error when method not allowed', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.throws(function () { // @ts-ignore a.role('COOKING'); @@ -151,23 +213,29 @@ describe('ical-generator Attendee', function () { }); it('should change something', function () { - const a = new ICalAttendee({ - email: 'mail@example.com', - role: ICalAttendeeRole.NON - }, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'mail@example.com', role: ICalAttendeeRole.NON }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.ok(a.toString().indexOf('NON-PARTICIPANT') > -1); }); }); describe('rsvp()', function () { it('setter should return this', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a, a.rsvp(null)); assert.deepStrictEqual(a, a.rsvp(true)); }); it('setter should also work with booleans', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); a.rsvp(true); assert.strictEqual(a.rsvp(), true); @@ -177,7 +245,10 @@ describe('ical-generator Attendee', function () { }); it('getter should return value', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.strictEqual(a.rsvp(), null); a.rsvp(false); assert.strictEqual(a.rsvp(), false); @@ -186,23 +257,29 @@ describe('ical-generator Attendee', function () { }); it('should change something', function () { - const a = new ICalAttendee({ - email: 'mail@example.com', - rsvp: true - }, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'mail@example.com', rsvp: true }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.ok(a.toString().indexOf(';RSVP=TRUE') > -1); }); }); describe('status()', function () { it('setter should return this', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a, a.status(null)); assert.deepStrictEqual(a, a.status(ICalAttendeeStatus.ACCEPTED)); }); it('getter should return value', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.strictEqual(a.status(), null); a.status(ICalAttendeeStatus.ACCEPTED); @@ -213,7 +290,10 @@ describe('ical-generator Attendee', function () { }); it('should throw error when method not allowed', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.throws(function () { // @ts-ignore a.status('DRINKING'); @@ -223,7 +303,7 @@ describe('ical-generator Attendee', function () { it('should change something', function () { const a = new ICalAttendee( { email: 'mail@example.com', status: ICalAttendeeStatus.DECLINED }, - new ICalEvent({}, new ICalCalendar()) + new ICalEvent({ start: new Date() }, new ICalCalendar()) ); assert.ok(a.toString().indexOf('DECLINED') > -1); }); @@ -231,7 +311,7 @@ describe('ical-generator Attendee', function () { it('should change something too', function () { const a = new ICalAttendee( { email: 'mail@example.com', status: ICalAttendeeStatus.NEEDSACTION }, - new ICalEvent({}, new ICalCalendar()) + new ICalEvent({ start: new Date() }, new ICalCalendar()) ); assert.ok(a.toString().indexOf('NEEDS-ACTION') > -1); }); @@ -239,13 +319,19 @@ describe('ical-generator Attendee', function () { describe('type()', function () { it('setter should return this', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a.type(null), a); assert.deepStrictEqual(a.type(ICalAttendeeType.INDIVIDUAL), a); }); it('getter should return value', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.strictEqual(a.type(), null); a.type(ICalAttendeeType.ROOM); assert.strictEqual(a.type(), 'ROOM'); @@ -254,7 +340,10 @@ describe('ical-generator Attendee', function () { }); it('should throw error when method not allowed', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.throws(function () { // @ts-ignore a.type('DRINKING'); @@ -265,20 +354,26 @@ describe('ical-generator Attendee', function () { const a = new ICalAttendee({ email: 'mailing-list@example.com', type: ICalAttendeeType.GROUP - }, new ICalEvent({}, new ICalCalendar())); + }, new ICalEvent({ start: new Date() }, new ICalCalendar())); assert.ok(a.toString().indexOf('GROUP') > -1); }); }); describe('delegatedTo()', function () { it('setter should return this', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a, a.delegatedTo(null)); assert.deepStrictEqual(a, a.delegatedTo('foo@example.com')); }); it('getter should return value', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.strictEqual(a.delegatedTo(), null); a.delegatedTo('foo@example.com'); @@ -294,20 +389,26 @@ describe('ical-generator Attendee', function () { const a = new ICalAttendee({ email: 'mail@example.com', delegatedTo: 'foo@example.com' - }, new ICalEvent({}, new ICalCalendar())); + }, new ICalEvent({ start: new Date() }, new ICalCalendar())); assert.ok(a.toString().indexOf('foo@example') > -1); }); }); describe('delegatedFrom()', function () { it('setter should return this', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a, a.delegatedFrom(null)); assert.deepStrictEqual(a, a.delegatedFrom('foo@example.com')); }); it('getter should return value', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.strictEqual(a.delegatedFrom(), null); a.delegatedFrom('foo@example.com'); @@ -332,27 +433,38 @@ describe('ical-generator Attendee', function () { const a = new ICalAttendee({ email: 'mail@example.com', delegatedFrom: 'foo@example.com' - }, new ICalEvent({}, new ICalCalendar())); + }, new ICalEvent({ start: new Date() }, new ICalCalendar())); assert.ok(a.toString().indexOf('foo@example.com') > -1); }); }); describe('delegatesTo()', function () { it('should return a new ICalAttendee instance by default', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); - assert.ok(a.delegatesTo({}) instanceof ICalAttendee); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); + assert.ok(a.delegatesTo({ email: 'mail@example.com' }) instanceof ICalAttendee); }); it('should reuse the same ICalAttendee instance if passed', function () { - const event = new ICalEvent({}, new ICalCalendar()); - const attendee = new ICalAttendee({ name: 'Muh' }, event); - - assert.deepStrictEqual(new ICalAttendee({}, event).delegatesTo(attendee), attendee); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); + const attendee = new ICalAttendee({ + name: 'Muh', + email: 'muh@example.com' + }, event); + + assert.deepStrictEqual( + new ICalAttendee({ email: 'foo@example.com' }, event).delegatesTo(attendee), + attendee + ); }); it('should pass data to instance', function () { - const attendee = new ICalAttendee({ name: 'Zac' }, new ICalEvent({}, new ICalCalendar())) - .delegatesTo({ name: 'Cody' }); + const attendee = new ICalAttendee( + { name: 'Zac', email: 'zac@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ).delegatesTo({ name: 'Cody', email: 'cody@example.com' }); assert.strictEqual(attendee.name(), 'Cody'); }); @@ -360,26 +472,53 @@ describe('ical-generator Attendee', function () { describe('delegatesFrom()', function () { it('should return a new ICalAttendee instance by default', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); - assert.ok(a.delegatesFrom({}) instanceof ICalAttendee); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); + assert.ok(a.delegatesFrom({ + email: 'bar@example.com' + }) instanceof ICalAttendee); }); it('should reuse the same ICalAttendee instance if passed', function () { - const event = new ICalEvent({}, new ICalCalendar()); - const attendee = new ICalAttendee({ name: 'Muh' }, event); - - assert.deepStrictEqual(new ICalAttendee({}, event).delegatesFrom(attendee), attendee); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); + const attendee = new ICalAttendee({ + name: 'Muh', + email: 'muh@example.com' + }, event); + + assert.deepStrictEqual( + new ICalAttendee({ email: 'bar@example.com'}, event).delegatesFrom(attendee), + attendee + ); }); it('should pass data to instance', function () { - const a = new ICalAttendee({ name: 'Zac' }, new ICalEvent({}, new ICalCalendar())).delegatesFrom({ name: 'Cody' }); + const a = new ICalAttendee( + { name: 'Zac', email: 'zac@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ).delegatesFrom({ name: 'Cody', email: 'cody@example.com' }); assert.strictEqual(a.name(), 'Cody'); + + const b = new ICalAttendee( + { + name: 'Zac', + email: 'zac@example.com', + delegatesFrom: { name: 'Cody', email: 'cody@example.com' } + }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); + assert.strictEqual(b.name(), 'Zac'); }); }); describe('x()', function () { it('works as expected', function () { - const a = new ICalAttendee({ email: 'foo@example.org' }, new ICalEvent({}, new ICalCalendar())); + const a = new ICalAttendee( + { email: 'foo@example.org' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); assert.deepStrictEqual(a, a.x('X-NUM-GUESTS', '5')); assert.ok(a.toString().includes('ATTENDEE;ROLE=REQ-PARTICIPANT;X-NUM-GUESTS=5:MAILTO:foo@example.org')); }); @@ -387,14 +526,16 @@ describe('ical-generator Attendee', function () { describe('toJSON()', function () { it('should work', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); - a.name('Max Mustermann'); + const a = new ICalAttendee( + { name: 'Max Mustermann', email: 'max@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); a.delegatesTo('Moritz '); assert.deepStrictEqual(a.toJSON(), { delegatedFrom: null, delegatedTo: 'moritz@example.com', - email: null, + email: 'max@example.com', mailto: null, sentBy: null, name: 'Max Mustermann', @@ -407,17 +548,14 @@ describe('ical-generator Attendee', function () { }); it('should be compatible with constructor (type check)', function () { - const a = new ICalAttendee({}, new ICalEvent({}, new ICalCalendar())); - new ICalAttendee(a.toJSON(), new ICalEvent({}, new ICalCalendar())); - }); - }); - - describe('generate()', function () { - it('should throw an error without email', function () { - const a = new ICalAttendee({ name: 'Testuser' }, new ICalEvent({}, new ICalCalendar())); - assert.throws(function () { - a.toString(); - }, /`email`/); + const a = new ICalAttendee( + { email: 'foo@example.com' }, + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); + new ICalAttendee( + a.toJSON(), + new ICalEvent({ start: new Date() }, new ICalCalendar()) + ); }); }); }); diff --git a/test/calendar.ts b/test/calendar.ts index c14bdfc3b..08b710148 100644 --- a/test/calendar.ts +++ b/test/calendar.ts @@ -1,19 +1,11 @@ 'use strict'; import assert from 'assert'; -import {existsSync, unlinkSync} from 'fs'; -import * as http from 'http'; import moment from 'moment'; -import {join} from 'path'; -import { versions } from 'node:process'; -import { tmpdir } from 'node:os'; -import {getPortPromise} from 'portfinder'; import ICalCalendar, {ICalCalendarJSONData, ICalCalendarMethod} from '../src/calendar.js'; import ICalEvent from '../src/event.js'; import {getVtimezoneComponent} from '@touch4it/ical-timezones'; -const supportsBlob = parseInt(versions.node) >= 18; - describe('ical-generator Calendar', function () { describe('constructor()', function () { it('shoud load json export', function () { @@ -315,12 +307,15 @@ describe('ical-generator Calendar', function () { describe('createEvent()', function () { it('should return a ICalEvent instance', function () { const cal = new ICalCalendar(); - assert.ok(cal.createEvent({}) instanceof ICalEvent); + assert.ok(cal.createEvent({ start: new Date() }) instanceof ICalEvent); }); it('should pass data to instance', function () { const cal = new ICalCalendar(); - const event = cal.createEvent({summary: 'Patch-Day'}); + const event = cal.createEvent({ + start: new Date(), + summary: 'Patch-Day' + }); assert.strictEqual(event.summary(), 'Patch-Day'); }); @@ -340,7 +335,7 @@ describe('ical-generator Calendar', function () { const cal = new ICalCalendar(); assert.strictEqual(cal.events().length, 0); - const event = cal.createEvent({}); + const event = cal.createEvent({ start: new Date() }); assert.strictEqual(cal.events().length, 1); assert.deepStrictEqual(cal.events()[0], event); }); @@ -349,7 +344,11 @@ describe('ical-generator Calendar', function () { const cal = new ICalCalendar(); assert.strictEqual(cal.length(), 0); - const cal2 = cal.events([{summary: 'Event A'}, {summary: 'Event B'}]); + const cal2 = cal.events([ + { start: new Date(), summary: 'Event A'}, + { start: new Date(), summary: 'Event B'} + ]); + assert.strictEqual(cal.length(), 2); assert.deepStrictEqual(cal2, cal); }); @@ -358,173 +357,13 @@ describe('ical-generator Calendar', function () { describe('clear()', function () { it('should do the job', function () { const cal = new ICalCalendar(); - cal.createEvent({}); + cal.createEvent({ start: new Date() }); assert.strictEqual(cal.events().length, 1); assert.deepStrictEqual(cal.clear(), cal); assert.strictEqual(cal.events().length, 0); }); }); - describe('save()', function () { - it('should return all public methods and save it', function (done) { - const file = join(tmpdir(), 'save.ical'); - const cal = new ICalCalendar(); - - assert.deepStrictEqual(cal, cal.save(file, function () { - assert.ok(existsSync(file)); - unlinkSync(file); - - assert.deepStrictEqual(cal, cal.save(file, function () { - assert.ok(existsSync(file)); - unlinkSync(file); - done(); - })); - })); - }); - - it('should be usable with promises', async function () { - const file = join(tmpdir(), 'save.ical'); - const cal = new ICalCalendar(); - await cal.save(file); - - assert.ok(existsSync(file)); - unlinkSync(file); - }); - - it('should throw error when event invalid', function () { - const file = join(tmpdir(), 'save.ical'); - const cal = new ICalCalendar(); - - cal.createEvent({}); - - assert.throws(function () { - cal.save(file); - }, /`start`/); - }); - }); - - describe('saveSync()', function () { - it('should save it', function () { - const file = join(tmpdir(), 'save_sync.ical'); - const cal = new ICalCalendar(); - - cal.saveSync(file); - assert.ok(existsSync(file)); - unlinkSync(file); - - cal.saveSync(file); - assert.ok(existsSync(file)); - unlinkSync(file); - }); - - it('should throw error when event invalid', function () { - const file = join(tmpdir(), 'save_sync.ical'); - const cal = new ICalCalendar(); - - cal.createEvent({}); - - assert.throws(function () { - cal.saveSync(file); - }, /`start`/); - }); - }); - - describe('serve()', function () { - it('should work', async function () { - const cal = new ICalCalendar(); - - cal.createEvent({ - start: new Date(), - end: new Date(new Date().getTime() + (1000 * 60 * 60)), - summary: 'HTTP Calendar Event' - }); - - const port = await getPortPromise(); - - return new Promise(done => { - const server = http.createServer((req, res) => { - cal.serve(res); - }).listen(port, function () { - function request(cb: () => void) { - // make request - const req = http.request({port}, function (res) { - let file = ''; - - assert.strictEqual( - res.headers['content-type'], - 'text/calendar; charset=utf-8', - 'Header: text/calendar; charset=utf-8' - ); - assert.strictEqual( - res.headers['content-disposition'], - 'attachment; filename="calendar.ics"', - 'Content-Disposition' - ); - - res.setEncoding('utf8'); - res.on('data', function (chunk) { - file += chunk; - }); - res.on('end', function () { - assert.strictEqual(file, cal.toString()); - cb(); - }); - }); - - req.on('error', function (err) { - assert.fail(err); - }); - req.end(); - } - - request(() => { - request(() => { - server.close(() => done()); - }); - }); - }); - }); - }); - }); - - describe('toBlob()', function () { - it('should work', supportsBlob ? async function () { - const cal = new ICalCalendar({ - events: [ - { - start: new Date(), - end: new Date(new Date().getTime() + (1000 * 60 * 60)), - summary: 'Blob Calendar Event' - } - ] - }); - - const blob = cal.toBlob(); - assert.ok(blob instanceof Blob, 'instanceof Blob'); - assert.ok(blob.size > 0, 'blob is filled'); - assert.strictEqual(blob.type, 'text/calendar'); - } : undefined); - }); - - describe('toURL()', function () { - it('should work', supportsBlob ? async function () { - const cal = new ICalCalendar({ - events: [ - { - start: new Date(), - end: new Date(new Date().getTime() + (1000 * 60 * 60)), - summary: 'Calendar URL Event' - } - ] - }); - - const url = cal.toURL(); - console.log(url); - assert.strictEqual(typeof url, 'string'); - assert.ok(url.length > 0, 'url is not empty'); - } : undefined); - }); - describe('x()', function () { it('setter should return this', function () { const cal = new ICalCalendar(); diff --git a/test/cases.ts b/test/cases.ts index c720243b4..c7010866d 100644 --- a/test/cases.ts +++ b/test/cases.ts @@ -175,8 +175,10 @@ describe('ical-generator Cases', function () { { type: ICalAlarmType.display, trigger: 60 * 10, - repeat: 2, - interval: 60 + repeat: { + times: 2, + interval: 60 + } }, { type: ICalAlarmType.display, diff --git a/test/category.ts b/test/category.ts index 11e18a3fc..4c2dc51eb 100644 --- a/test/category.ts +++ b/test/category.ts @@ -14,18 +14,24 @@ describe('ical-generator Category', function () { assert.strictEqual(a.name(), 'FOO'); }); + + it('shoult throw an error without name', function () { + assert.throws(function () { + // @ts-ignore + new ICalCategory({}); + }, /`name`/); + }); }); describe('name()', function () { it('setter should return this', function () { - const c = new ICalCategory({}); + const c = new ICalCategory({ name: 'foo' }); assert.deepStrictEqual(c, c.name('FOO')); - assert.deepStrictEqual(c, c.name(null)); }); it('getter should return value', function () { - const c = new ICalCategory({}); - assert.strictEqual(c.name(), null); + const c = new ICalCategory({ name: 'foo' }); + assert.strictEqual(c.name(), 'foo'); c.name('HELLO-WORLD'); assert.strictEqual(c.name(), 'HELLO-WORLD'); @@ -33,7 +39,7 @@ describe('ical-generator Category', function () { it('should change something', function () { const c = new ICalCategory({name: 'BANANA'}); - assert.ok(c.toString().indexOf('BANANA') > -1); + assert.ok(c.toString().includes('BANANA')); }); }); @@ -43,13 +49,4 @@ describe('ical-generator Category', function () { assert.deepStrictEqual(c.toJSON(), {name: 'FOOBAR'}); }); }); - - describe('toString()', function () { - it('shoult throw an error without name', function () { - const c = new ICalCategory({}); - assert.throws(function () { - c.toString(); - }, /`name`/); - }); - }); }); diff --git a/test/event.ts b/test/event.ts index 87a0f652f..9c9f67d75 100644 --- a/test/event.ts +++ b/test/event.ts @@ -3,12 +3,18 @@ import assert from 'assert'; import moment from 'moment-timezone'; import ICalCalendar from '../src/calendar.js'; -import ICalEvent, {ICalEventBusyStatus, ICalEventClass, ICalEventData, ICalEventStatus, ICalEventTransparency} from '../src/event.js'; -import {ICalEventRepeatingFreq, ICalWeekday} from '../src/types.js'; +import ICalEvent, { + ICalEventBusyStatus, + ICalEventClass, + ICalEventData, + ICalEventStatus, + ICalEventTransparency +} from '../src/event.js'; +import { ICalEventRepeatingFreq, ICalWeekday } from '../src/types.js'; import ICalAttendee from '../src/attendee.js'; -import ICalAlarm, {ICalAlarmType} from '../src/alarm.js'; +import ICalAlarm, { ICalAlarmType } from '../src/alarm.js'; import ICalCategory from '../src/category.js'; -import {isRRule} from '../src/tools.js'; +import { isRRule } from '../src/tools.js'; import rrule from 'rrule'; describe('ical-generator Event', function () { @@ -59,12 +65,12 @@ describe('ical-generator Event', function () { describe('id()', function () { it('setter should return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(event, event.id(1048)); }); it('getter should return value', function () { - const event = new ICalEvent({}, new ICalCalendar()).id(512); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()).id(512); assert.strictEqual(event.id(), '512'); event.id('xyz'); @@ -74,12 +80,12 @@ describe('ical-generator Event', function () { describe('uid()', function () { it('setter should return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(event, event.uid(1048)); }); it('getter should return value', function () { - const event = new ICalEvent({}, new ICalCalendar()).uid(512); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()).uid(512); assert.strictEqual(event.uid(), '512'); event.id('xyz'); @@ -89,17 +95,21 @@ describe('ical-generator Event', function () { describe('sequence()', function () { it('setter should return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(event, event.sequence(1)); }); it('getter should return value', function () { - const event = new ICalEvent({}, new ICalCalendar()).sequence(1048); + const event = new ICalEvent( + { start: new Date() }, + new ICalCalendar() + ).sequence(1048); + assert.strictEqual(event.sequence(), 1048); }); it('setter should throw error when sequence is not valid', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore event.sequence('hello'); @@ -107,7 +117,7 @@ describe('ical-generator Event', function () { }); it('setter should work with 0', function () { - const event = new ICalEvent({}, new ICalCalendar()).sequence(12); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()).sequence(12); assert.strictEqual(event.sequence(), 12); event.sequence(0); @@ -118,27 +128,27 @@ describe('ical-generator Event', function () { describe('start()', function () { it('getter should return value', function () { const now = moment(); - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); event.start(now); assert.strictEqual(event.start(), now); }); it('setter should parse string if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toJSON(); assert.deepStrictEqual(event, event.start(date)); assert.deepStrictEqual(event.start(), date); }); it('setter should handle Dates if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toDate(); assert.deepStrictEqual(event, event.start(date)); assert.deepStrictEqual(event.start(), date); }); it('setter should throw error when start time is not a Date', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore event.start(3); @@ -159,7 +169,7 @@ describe('ical-generator Event', function () { it('setter should flip start and end if necessary', function () { const start = moment().add(5, 'minutes'); const end = moment(); - const event = new ICalEvent({}, new ICalCalendar()) + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()) .end(end) .start(start); @@ -168,7 +178,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(event, event.start(moment())); assert.deepStrictEqual(event, event.start(new Date())); }); @@ -177,27 +187,27 @@ describe('ical-generator Event', function () { describe('end()', function () { it('getter should return value', function () { const now = moment(); - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: moment().subtract({ minute: 1 }) }, new ICalCalendar()); event.end(now); assert.deepStrictEqual(event.end(), now); }); it('setter should parse string if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toJSON(); assert.deepStrictEqual(event, event.end(date)); assert.deepStrictEqual(event.end(), date); }); it('setter should handle Dates if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toDate(); assert.deepStrictEqual(event, event.end(date)); assert.deepStrictEqual(event.end(), date); }); it('setter should throw error when time is not a Date', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore event.end(3); @@ -214,7 +224,7 @@ describe('ical-generator Event', function () { it('setter should flip start and end if necessary', function () { const start = moment().add(5, 'minutes'); const end = moment(); - const event = new ICalEvent({}, new ICalCalendar()) + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()) .start(start) .end(end); @@ -223,7 +233,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(event, event.end(moment())); assert.deepStrictEqual(event, event.end(new Date())); }); @@ -232,27 +242,27 @@ describe('ical-generator Event', function () { describe('recurrenceId()', function () { it('getter should return value', function () { const now = moment(); - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); event.recurrenceId(now); assert.deepStrictEqual(event.recurrenceId(), now); }); it('setter should parse string if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toJSON(); assert.deepStrictEqual(event, event.recurrenceId(date)); assert.deepStrictEqual(event.recurrenceId(), date); }); it('setter should handle Dates if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toDate(); assert.deepStrictEqual(event, event.recurrenceId(date)); assert.deepStrictEqual(event.recurrenceId(), date); }); it('setter should throw error when time is not a Date', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore event.recurrenceId(3); @@ -267,7 +277,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(event, event.recurrenceId(moment())); assert.deepStrictEqual(event, event.recurrenceId(new Date())); }); @@ -275,7 +285,9 @@ describe('ical-generator Event', function () { describe('timezone()', function () { it('getter should return value', function () { - const e = new ICalEvent({}, new ICalCalendar()).timezone('Europe/Berlin'); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()) + .timezone('Europe/Berlin'); + assert.strictEqual(e.timezone(), 'Europe/Berlin'); }); @@ -307,7 +319,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.timezone('Europe/Berlin')); }); @@ -360,26 +372,29 @@ describe('ical-generator Event', function () { describe('stamp()', function () { it('getter should return value', function () { const now = moment().add(1, 'day'); - const e = new ICalEvent({}, new ICalCalendar()).stamp(now); + const e = new ICalEvent( + { start: new Date() }, + new ICalCalendar() + ).stamp(now); assert.deepStrictEqual(e.stamp(), now); }); it('setter should parse string if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toJSON(); assert.deepStrictEqual(event, event.stamp(date)); assert.deepStrictEqual(event.stamp(), date); }); it('setter should handle Dates if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toDate(); assert.deepStrictEqual(event, event.stamp(date)); assert.deepStrictEqual(event.stamp(), date); }); it('setter should throw error when time is not a Date', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore event.stamp(3); @@ -398,7 +413,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.stamp(new Date())); }); }); @@ -406,26 +421,29 @@ describe('ical-generator Event', function () { describe('timestamp()', function () { it('getter should return value', function () { const now = moment().add(1, 'day'); - const e = new ICalEvent({}, new ICalCalendar()).timestamp(now); + const e = new ICalEvent( + { start: new Date() }, + new ICalCalendar() + ).timestamp(now); assert.deepStrictEqual(e.timestamp(), now); }); it('setter should parse string if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toJSON(); assert.deepStrictEqual(event, event.timestamp(date)); assert.deepStrictEqual(event.stamp(), date); }); it('setter should handle Dates if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toDate(); assert.deepStrictEqual(event, event.timestamp(date)); assert.deepStrictEqual(event.stamp(), date); }); it('setter should throw error when time is not a Date', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore event.timestamp(3); @@ -444,20 +462,20 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.timestamp(new Date())); }); }); describe('allDay()', function () { it('getter should return value', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.allDay(true); assert.strictEqual(e.allDay(), true); }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.allDay(true)); }); @@ -474,12 +492,12 @@ describe('ical-generator Event', function () { describe('floating()', function () { it('getter should return value', function () { - const e = new ICalEvent({}, new ICalCalendar()).floating(true); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()).floating(true); assert.strictEqual(e.floating(), true); }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.floating(false)); assert.deepStrictEqual(e, e.floating(true)); }); @@ -526,7 +544,7 @@ describe('ical-generator Event', function () { until: moment(), exclude: [moment()] }; - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e.repeating(), null); e.repeating(options); @@ -540,13 +558,13 @@ describe('ical-generator Event', function () { }); it('setter should handle null', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.repeating(null)); assert.deepStrictEqual(e.repeating(), null); }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.repeating(null), 'repeating(null)'); assert.deepStrictEqual(e, e.repeating({ freq: ICalEventRepeatingFreq.MONTHLY @@ -579,12 +597,16 @@ describe('ical-generator Event', function () { }); it('setter should update freq', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.repeating({freq: ICalEventRepeatingFreq.MONTHLY}); const result = e.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.strictEqual(result.freq, 'MONTHLY'); }); @@ -614,12 +636,16 @@ describe('ical-generator Event', function () { }); it('setter should update count', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.repeating({freq: ICalEventRepeatingFreq.MONTHLY, count: 5}); const result = e.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.strictEqual(result.count, 5); }); @@ -649,12 +675,16 @@ describe('ical-generator Event', function () { }); it('setter should update interval', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.repeating({freq: ICalEventRepeatingFreq.MONTHLY, interval: 5}); const result = e.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.strictEqual(result.interval, 5); }); @@ -673,37 +703,49 @@ describe('ical-generator Event', function () { }); it('setter should parse repeating.until string if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toJSON(); event.repeating({freq: ICalEventRepeatingFreq.MONTHLY, until: date}); const result = event.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.deepStrictEqual(result.until, date); }); it('setter should handle repeating.until Dates if required', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week').toDate(); event.repeating({freq: ICalEventRepeatingFreq.MONTHLY, until: date}); const result = event.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.deepStrictEqual(result.until, date); }); it('setter should handle repeating.until moments', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week'); event.repeating({freq: ICalEventRepeatingFreq.MONTHLY, until: date}); const result = event.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.deepStrictEqual(result.until, date); }); it('setter should throw error when repeating.until is not a Date', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore event.repeating({freq: ICalEventRepeatingFreq.MONTHLY, until: 3}); @@ -763,7 +805,7 @@ describe('ical-generator Event', function () { }); it('setter should update repeating.byDay', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.repeating({ freq: ICalEventRepeatingFreq.MONTHLY, @@ -771,7 +813,11 @@ describe('ical-generator Event', function () { }); const result = e.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.deepStrictEqual(result.byDay, ['SU', 'WE', 'TH']); }); @@ -803,12 +849,16 @@ describe('ical-generator Event', function () { }); it('setter should update repeating.byMonth', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.repeating({freq: ICalEventRepeatingFreq.MONTHLY, byMonth: [1, 12, 7]}); const result = e.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.deepStrictEqual(result.byMonth, [1, 12, 7]); }); @@ -868,12 +918,16 @@ describe('ical-generator Event', function () { }); it('setter should update repeating.byMonthDay', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.repeating({freq: ICalEventRepeatingFreq.MONTHLY, byMonthDay: [1, 15]}); const result = e.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.deepStrictEqual(result.byMonthDay, [1, 15]); }); @@ -952,7 +1006,7 @@ describe('ical-generator Event', function () { }); it('setter should update repeating.bySetPos', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.repeating({ freq: ICalEventRepeatingFreq.MONTHLY, @@ -961,8 +1015,14 @@ describe('ical-generator Event', function () { }); const result = e.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.strictEqual(result.byDay?.length, 1); + + // @ts-ignore assert.strictEqual(result.bySetPos?.length, 1); }); @@ -1016,7 +1076,7 @@ describe('ical-generator Event', function () { }); it('setter should update repeating.exclude', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().add(1, 'week'); e.repeating({ @@ -1029,12 +1089,20 @@ describe('ical-generator Event', function () { }); const result = e.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.ok(Array.isArray(result.exclude)); + // @ts-ignore assert.strictEqual(result.exclude.length, 3); + // @ts-ignore assert.deepStrictEqual(result.exclude[0], date.toJSON(), 'String'); + // @ts-ignore assert.deepStrictEqual(result.exclude[1], date.toDate(), 'Date'); + // @ts-ignore assert.deepStrictEqual(result.exclude[2], date, 'Moment'); }); @@ -1054,7 +1122,7 @@ describe('ical-generator Event', function () { }); it('setter should update repeating.wkst', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.repeating({ freq: ICalEventRepeatingFreq.MONTHLY, @@ -1062,7 +1130,11 @@ describe('ical-generator Event', function () { }); const result = e.repeating(); - assert.ok(result && !isRRule(result) && typeof result !== 'string'); + assert.ok(result); + assert.ok(!isRRule(result)); + assert.ok(typeof result !== 'string'); + + // @ts-ignore assert.deepStrictEqual(result.startOfWeek, 'SU'); }); @@ -1106,7 +1178,7 @@ describe('ical-generator Event', function () { describe('summary()', function () { it('getter should return value', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(e.summary(), ''); e.summary('Testevent'); @@ -1114,7 +1186,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.summary('')); assert.deepStrictEqual(e, e.summary('Testevent')); }); @@ -1135,7 +1207,7 @@ describe('ical-generator Event', function () { describe('location()', function () { it('getter should return value (string)', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(e.location(), null); e.location('Test Location'); @@ -1146,7 +1218,7 @@ describe('ical-generator Event', function () { }); it('getter should return value (obj)', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(e.location(), null); e.location({ @@ -1161,7 +1233,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.location(null)); assert.deepStrictEqual(e, e.location('Test Location')); }); @@ -1192,7 +1264,7 @@ describe('ical-generator Event', function () { describe('description()', function () { it('getter should return value', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(e.description(), null); e.description('I don\'t need a description. I\'m far to awesome for descriptions…'); @@ -1214,7 +1286,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.description(null)); assert.deepStrictEqual(e, e.description('I don\'t need a description. I\'m far to awesome for descriptions…')); }); @@ -1240,7 +1312,7 @@ describe('ical-generator Event', function () { describe('organizer()', function () { it('getter should return value', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(e.organizer(), null); e.organizer(null); @@ -1257,7 +1329,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.organizer(null)); assert.deepStrictEqual(e, e.organizer('Sebastian Pekarek ')); }); @@ -1311,14 +1383,14 @@ describe('ical-generator Event', function () { }); it('should throw error when string misformated', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { e.organizer('foo bar'); }, /`organizer`/); }); it('should throw error when object misses data', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore e.organizer({email: 'foo'}); @@ -1326,7 +1398,7 @@ describe('ical-generator Event', function () { }); it('should throw error when unknown format', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore e.organizer(Infinity); @@ -1355,22 +1427,22 @@ describe('ical-generator Event', function () { describe('createAttendee()', function () { it('if Attendee passed, it should add and return it', function () { - const event = new ICalEvent({}, new ICalCalendar()); - const attendee = new ICalAttendee({}, event); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); + const attendee = new ICalAttendee({ email: 'mail@example.com' }, event); assert.strictEqual(event.createAttendee(attendee), attendee, 'createAttendee returns attendee'); assert.deepStrictEqual(event.attendees()[0], attendee, 'attendee pushed'); }); it('should return a ICalAttendee instance', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); - assert.ok(event.createAttendee({}) instanceof ICalAttendee); + assert.ok(event.createAttendee({ email: 'mail@example.com' }) instanceof ICalAttendee); assert.strictEqual(event.attendees.length, 1, 'attendee pushed'); }); it('should accept string', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const attendee = event.createAttendee('Zac '); assert.strictEqual(attendee.name(), 'Zac'); @@ -1379,14 +1451,14 @@ describe('ical-generator Event', function () { }); it('should throw error when string misformated', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { e.createAttendee('foo bar'); }, /isn't formated correctly/); }); it('should accept object', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const attendee = event.createAttendee({name: 'Zac', email: 'zac@example.com'}); assert.strictEqual(attendee.name(), 'Zac'); @@ -1397,17 +1469,20 @@ describe('ical-generator Event', function () { describe('attendees()', function () { it('getter should return an array of attendees…', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(event.attendees().length, 0); - const attendee = event.createAttendee(); + const attendee = event.createAttendee({ email: 'mail@example.com' }); assert.strictEqual(event.attendees().length, 1); assert.deepStrictEqual(event.attendees()[0], attendee); }); it('setter should add attendees and return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); - const foo = event.attendees([{name: 'Person A'}, {name: 'Person B'}]); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); + const foo = event.attendees([ + { name: 'Person A', email: 'a@example.com' }, + { name: 'Person B', email: 'b@example.com' } + ]); assert.strictEqual(event.attendees().length, 2); assert.deepStrictEqual(foo, event); @@ -1416,14 +1491,20 @@ describe('ical-generator Event', function () { describe('createAlarm()', function () { it('should return a ICalAlarm instance', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); - assert.ok(event.createAlarm() instanceof ICalAlarm); + assert.ok(event.createAlarm({ + type: ICalAlarmType.display, + trigger: 60 * 10 + }) instanceof ICalAlarm); }); it('should pass data to instance', function () { - const event = new ICalEvent({}, new ICalCalendar()); - const alarm = event.createAlarm({type: ICalAlarmType.audio}); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); + const alarm = event.createAlarm({ + type: ICalAlarmType.audio, + trigger: 60 * 10 + }); assert.strictEqual(alarm.type(), 'audio'); }); @@ -1431,19 +1512,22 @@ describe('ical-generator Event', function () { describe('alarms()', function () { it('getter should return an array of alarms…', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(event.alarms().length, 0); - const alarm = event.createAlarm(); + const alarm = event.createAlarm({ + type: ICalAlarmType.display, + trigger: 600 + }); assert.strictEqual(event.alarms().length, 1); assert.deepStrictEqual(event.alarms()[0], alarm); }); it('setter should add alarms and return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const foo = event.alarms([ - {type: ICalAlarmType.audio}, - {type: ICalAlarmType.display} + { type: ICalAlarmType.audio, trigger: 60 }, + { type: ICalAlarmType.display, trigger: 600 } ]); assert.strictEqual(event.alarms().length, 2); @@ -1453,12 +1537,12 @@ describe('ical-generator Event', function () { describe('createCategory()', function () { it('should return a ICalCategory instance', function () { - const event = new ICalEvent({}, new ICalCalendar()); - assert.ok(event.createCategory() instanceof ICalCategory); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); + assert.ok(event.createCategory({ name: 'Test' }) instanceof ICalCategory); }); it('should pass data to instance', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const category = event.createCategory({name: 'foo'}); assert.strictEqual(category.name(), 'foo'); @@ -1467,16 +1551,16 @@ describe('ical-generator Event', function () { describe('categories()', function () { it('getter should return an array of categories…', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(event.categories().length, 0); - const category = event.createCategory(); + const category = event.createCategory({ name: 'Test' }); assert.strictEqual(event.categories().length, 1); assert.deepStrictEqual(event.categories()[0], category); }); it('setter should add category and return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const foo = event.categories([ {name: 'foo'}, {name: 'bar'} @@ -1489,7 +1573,7 @@ describe('ical-generator Event', function () { describe('status()', function () { it('getter should return value', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(event.status(), null); event.status(ICalEventStatus.CONFIRMED); @@ -1500,27 +1584,27 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.status(null)); assert.deepStrictEqual(e, e.status(ICalEventStatus.CONFIRMED)); }); it('setter should allow setting null', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.status(ICalEventStatus.CONFIRMED); e.status(null); assert.strictEqual(e.status(), null); }); it('setter should allow setting valid value', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.status(ICalEventStatus.CONFIRMED); assert.strictEqual(e.status(), 'CONFIRMED'); assert.strictEqual(e.status(), ICalEventStatus.CONFIRMED); }); it('should throw error when method not allowed', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore e.status('COOKING'); @@ -1542,7 +1626,7 @@ describe('ical-generator Event', function () { describe('busystatus()', function () { it('getter should return value', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(event.busystatus(), null); event.busystatus(ICalEventBusyStatus.BUSY); @@ -1553,26 +1637,26 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.busystatus(null)); assert.deepStrictEqual(e, e.busystatus(ICalEventBusyStatus.BUSY)); }); it('setter should allow setting null', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.busystatus(ICalEventBusyStatus.BUSY); e.busystatus(null); assert.strictEqual(e.busystatus(), null); }); it('setter should allow setting valid value', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.busystatus(ICalEventBusyStatus.BUSY); assert.strictEqual(e.busystatus(), 'BUSY'); }); it('should throw error when method not allowed', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore e.busystatus('COOKING'); @@ -1594,7 +1678,7 @@ describe('ical-generator Event', function () { describe('priority()', function () { it('getter should return value', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(e.priority(), null); e.priority(5); @@ -1602,7 +1686,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.priority(null)); assert.deepStrictEqual(e, e.priority(5)); }); @@ -1621,7 +1705,7 @@ describe('ical-generator Event', function () { describe('url()', function () { it('getter should return value', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(e.url(), null); e.url('http://sebbo.net/'); @@ -1629,7 +1713,7 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.url(null)); assert.deepStrictEqual(e, e.url('http://sebbo.net/')); }); @@ -1647,14 +1731,14 @@ describe('ical-generator Event', function () { describe('createAttachment()', function () { it('should return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(event.createAttachment('https://files.sebbo.net/calendar/attachments/foo'), event); }); }); describe('attachments()', function () { it('getter should return an array of strings…', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(event.attachments().length, 0); event.createAttachment('https://files.sebbo.net/calendar/attachments/foo'); @@ -1663,7 +1747,7 @@ describe('ical-generator Event', function () { }); it('setter should add url and return this', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); const foo = event.attachments([ 'https://files.sebbo.net/calendar/attachments/foo', 'https://files.sebbo.net/calendar/attachments/bar' @@ -1676,42 +1760,44 @@ describe('ical-generator Event', function () { describe('created()', function () { it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.created(new Date())); }); it('setter should work with moment', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.created(moment()); assert.ok(moment.isMoment(e.created())); }); it('setter should work with Date', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.created(new Date()); assert.ok(e.created() instanceof Date); }); it('setter should work with String', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.created(moment().toJSON()); assert.strictEqual(typeof e.created(), 'string'); }); it('setter should work with Number', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.created(new Date()); assert.ok(e.created() instanceof Date); }); it('getter should return value', function () { const now = new Date(); - const e = new ICalEvent({}, new ICalCalendar()).created(now); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()) + .created(now); + assert.deepStrictEqual(e.created()?.valueOf(), now.getTime()); }); it('should throw error when created is not a Date', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { e.created('hallo'); // this will produce a "Deprecation warning", sorry 😇 }, /`created`/); @@ -1720,43 +1806,45 @@ describe('ical-generator Event', function () { describe('lastModified()', function () { it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.lastModified(new Date())); }); it('setter should work with moment', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.lastModified(moment()); assert.ok(moment.isMoment(e.lastModified())); }); it('setter should work with Date', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.lastModified(new Date()); assert.ok(e.lastModified() instanceof Date); }); it('setter should work with String', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); const date = moment().toJSON(); e.lastModified(date); assert.strictEqual(e.lastModified(), date); }); it('setter should work with Number', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.lastModified(new Date()); assert.ok(e.lastModified() instanceof Date); }); it('getter should return value', function () { const now = new Date(); - const e = new ICalEvent({}, new ICalCalendar()).lastModified(now); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()) + .lastModified(now); + assert.deepStrictEqual(e.lastModified()?.valueOf(), now.getTime()); }); it('should throw error when lastModified is not a Date', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { e.lastModified('hallo'); }, /`lastModified`/); @@ -1765,7 +1853,7 @@ describe('ical-generator Event', function () { describe('class()', function () { it('getter should return value', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(event.class(), null); event.class(ICalEventClass.PRIVATE); @@ -1776,27 +1864,27 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.class(null)); assert.deepStrictEqual(e, e.class(ICalEventClass.PRIVATE)); }); it('setter should allow setting null', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.class(ICalEventClass.PRIVATE); e.class(null); assert.strictEqual(e.class(), null); }); it('setter should allow setting valid value', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.class(ICalEventClass.PRIVATE); assert.strictEqual(e.class(), 'PRIVATE'); assert.strictEqual(e.class(), ICalEventClass.PRIVATE); }); it('should throw error when method not allowed', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore e.class('COOKING'); @@ -1818,7 +1906,7 @@ describe('ical-generator Event', function () { describe('x()', function () { it('is there', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.x('X-FOO', 'bar')); }); }); @@ -1826,7 +1914,9 @@ describe('ical-generator Event', function () { describe('toJSON()', function () { it('should maybe work', function () { const date = moment().add(1, 'month'); - const event = new ICalEvent({}, new ICalCalendar()).summary('foo').start(date); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()) + .summary('foo') + .start(date); assert.strictEqual(event.toJSON().summary, 'foo', 'summary is okay'); assert.deepStrictEqual(event.toJSON().start, date.toJSON(), 'start is okay'); @@ -1843,7 +1933,11 @@ describe('ical-generator Event', function () { until: new Date(Date.UTC(2012, 12, 31)) }); - const event = new ICalEvent({}, new ICalCalendar()).summary('foo').start(date).repeating(rule); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()) + .summary('foo') + .start(date) + .repeating(rule); + const json = event.toJSON(); const before = event.toString(); assert.ok(typeof json.repeating === 'string'); @@ -1854,14 +1948,14 @@ describe('ical-generator Event', function () { }); it('should be compatible with constructor (type check)', function () { - const a = new ICalEvent({}, new ICalCalendar()); + const a = new ICalEvent({ start: new Date() }, new ICalCalendar()); new ICalEvent(a.toJSON(), new ICalCalendar()); }); }); describe('transparency()', function () { it('getter should return value', function () { - const event = new ICalEvent({}, new ICalCalendar()); + const event = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.strictEqual(event.transparency(), null); event.transparency(ICalEventTransparency.OPAQUE); @@ -1872,26 +1966,26 @@ describe('ical-generator Event', function () { }); it('setter should return this', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.deepStrictEqual(e, e.transparency(null)); assert.deepStrictEqual(e, e.transparency(ICalEventTransparency.TRANSPARENT)); }); it('setter should allow setting null', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.transparency(ICalEventTransparency.OPAQUE); e.transparency(null); assert.strictEqual(e.transparency(), null); }); it('setter should allow setting valid value', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); e.transparency(ICalEventTransparency.OPAQUE); assert.strictEqual(e.transparency(), 'OPAQUE'); }); it('should throw error when method not allowed', function () { - const e = new ICalEvent({}, new ICalCalendar()); + const e = new ICalEvent({ start: new Date() }, new ICalCalendar()); assert.throws(function () { // @ts-ignore e.transparency('COOKING'); @@ -1908,15 +2002,6 @@ describe('ical-generator Event', function () { }); describe('toString()', function () { - it('shoult throw an error without start', function () { - const e = new ICalEvent({ - summary: 'Example Event' - }, new ICalCalendar()); - assert.throws(function () { - e.toString(); - }, /`start`/); - }); - it('should make use of escaping', function () { const e = new ICalEvent({ start: new Date(), diff --git a/test/tools.ts b/test/tools.ts index 51036c35d..3dcbcbdb4 100644 --- a/test/tools.ts +++ b/test/tools.ts @@ -289,7 +289,7 @@ describe('ICalTools', function () { assert.equal(checkDate(date, 'foo'), date); }); it('should throw error for invalid Moment', function () { - const date = moment('foo'); + const date = moment('foo', 'MM/DD/YYYY', true); assert.throws(() => { checkDate(date, 'foo'); }, /`foo` has to be a valid date!/); diff --git a/test/types.ts b/test/types.ts new file mode 100644 index 000000000..1571974e5 --- /dev/null +++ b/test/types.ts @@ -0,0 +1,54 @@ +/** + * Check if stubs are working + */ + +import assert from 'assert'; +import dayjs from 'dayjs'; +import { DateTime } from 'luxon'; +import moment from 'moment'; +import momentTz from 'moment-timezone'; +import rrule from 'rrule'; + +import { + ICalAttendeeData, + ICalAttendeeJSONData, + ICalCalendarData, + ICalCalendarJSONData, + ICalCategoryData, + ICalCategoryJSONData, + ICalDayJsStub, + ICalEventJSONData, + ICalLuxonDateTimeStub, + ICalMomentStub, + ICalMomentTimezoneStub, + ICalRRuleStub +} from '../src/index.js'; + +const dayJsTest = dayjs() satisfies ICalDayJsStub; +const luxonTest = DateTime.now() satisfies ICalLuxonDateTimeStub; +const momentTest = moment() satisfies ICalMomentStub; +const momentTimezoneTest = momentTz() satisfies ICalMomentTimezoneStub; + +const RRule = rrule.RRule; +const rruleTest = new RRule({ freq: RRule.WEEKLY, dtstart: new Date() }) satisfies ICalRRuleStub; + +const attendeeJson = {} as ICalAttendeeJSONData satisfies ICalAttendeeData; +const calendarJson = {} as ICalCalendarJSONData satisfies ICalCalendarData; +const categoryJson = {} as ICalCategoryJSONData satisfies ICalCategoryData; +const eventJson = {} as ICalEventJSONData satisfies ICalEventJSONData; + +describe('ical-generator Types', function () { + it('stubs should be compatible with third party libraries', function () { + assert.ok(dayJsTest, 'day.js stub should be compatible'); + assert.ok(luxonTest, 'luxon stub should be compatible'); + assert.ok(momentTest, 'moment stub should be compatible'); + assert.ok(momentTimezoneTest, 'moment-timezone stub should be compatible'); + assert.ok(rruleTest, 'rrule stub should be compatible'); + }); + it('calendar data should be compatible with calendar json data', function () { + assert.ok(attendeeJson, 'attendee json data should be compatible'); + assert.ok(calendarJson, 'calendar json data should be compatible'); + assert.ok(categoryJson, 'category json data should be compatible'); + assert.ok(eventJson, 'event json data should be compatible'); + }); +}); diff --git a/tsconfig.json b/tsconfig.json index 56a6c4d2b..bb45f1d74 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,7 @@ "moduleResolution": "nodenext", "outDir": "./dist", "sourceMap": true, + "strict": true, "target": "es6" }, "exclude": [