diff --git a/.dockerignore b/.dockerignore
deleted file mode 100644
index 8ad739048..000000000
--- a/.dockerignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.github
-.nyc_output
-dist
-docs
-node_modules
-test
diff --git a/.github/workflows/build.sh b/.github/workflows/build.sh
index ae9c080fc..fc62cc78c 100755
--- a/.github/workflows/build.sh
+++ b/.github/workflows/build.sh
@@ -20,6 +20,9 @@ fi;
mkdir -p ./docs/
rm -rf ./docs/coverage/ ./docs/reference/ ./docs/tests/
+# Remove Dark Mode Logo
+git checkout -- ./README.md
+awk 'NR < 8 || NR > 10' ./README.md > temp && mv -f temp ./README.md
# TypeDoc in ./docs/referece
npx typedoc
diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
index 26fb9bbab..617b64c12
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,22 @@
/dist
/docs
/node_modules
+
+
+### WebStorm ###
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+.idea/**/contentModel.xml
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+.idea/httpRequests
+*.iws
+mochawesome-report
diff --git a/.idea/.name b/.idea/.name
new file mode 100755
index 000000000..6b79a051d
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+ical-generator
\ No newline at end of file
diff --git a/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml
new file mode 100755
index 000000000..180f489d3
--- /dev/null
+++ b/.idea/codeStyleSettings.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 000000000..bf04bb809
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 000000000..52c95f3ae
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100755
index 000000000..f75895965
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/ical-generator.iml b/.idea/ical-generator.iml
new file mode 100755
index 000000000..3cfc6d1b7
--- /dev/null
+++ b/.idea/ical-generator.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100755
index 000000000..ca394c914
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100755
index 000000000..3b312839b
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml
new file mode 100755
index 000000000..2b2f10aed
--- /dev/null
+++ b/.idea/jsLibraryMappings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jsLinters/eslint.xml b/.idea/jsLinters/eslint.xml
new file mode 100644
index 000000000..541945bb0
--- /dev/null
+++ b/.idea/jsLinters/eslint.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jsLinters/jshint.xml b/.idea/jsLinters/jshint.xml
new file mode 100755
index 000000000..7adae0879
--- /dev/null
+++ b/.idea/jsLinters/jshint.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jsLinters/jslint.xml b/.idea/jsLinters/jslint.xml
new file mode 100755
index 000000000..e8ba532a7
--- /dev/null
+++ b/.idea/jsLinters/jslint.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/jsonSchemas.xml b/.idea/jsonSchemas.xml
new file mode 100644
index 000000000..4b06e6123
--- /dev/null
+++ b/.idea/jsonSchemas.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 000000000..28a804d89
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100755
index 000000000..81709d0bc
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml
new file mode 100755
index 000000000..922003b84
--- /dev/null
+++ b/.idea/scopes/scope_settings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml.2 b/.idea/vcs.xml.2
new file mode 100755
index 000000000..c80f2198b
--- /dev/null
+++ b/.idea/vcs.xml.2
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml
new file mode 100644
index 000000000..9338ba685
--- /dev/null
+++ b/.idea/watcherTasks.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/webResources.xml b/.idea/webResources.xml
new file mode 100755
index 000000000..c8f67ffc5
--- /dev/null
+++ b/.idea/webResources.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/.nycrc b/.nycrc
index 649f38dda..a30d12f2d 100644
--- a/.nycrc
+++ b/.nycrc
@@ -5,7 +5,7 @@
".ts"
],
"include": [
- "src/lib/*.ts"
+ "src/**/*.ts"
],
"exclude": [
"coverage/**",
@@ -24,7 +24,7 @@
"instrument": true,
"branches": 95,
"lines": 95,
- "functions": 95,
- "statements": 95,
+ "functions": 100,
+ "statements": 98,
"per-file": true
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e69de29bb..206230405 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -0,0 +1,594 @@
+# [7.1.0](https://github.com/sebbo2002/ical-generator/compare/v7.0.0...v7.1.0) (2024-04-15)
+
+
+### Bug Fixes
+
+* Use event timezone for allDay events ([1bfeaf6](https://github.com/sebbo2002/ical-generator/commit/1bfeaf64284694e4510f3e1588c683c19da03ed0))
+
+
+### Features
+
+* Apply timezone for supported allday-events ([176352c](https://github.com/sebbo2002/ical-generator/commit/176352c9dfd3d4ac0fa21c458c174ef3c4f74535)), closes [#592](https://github.com/sebbo2002/ical-generator/issues/592)
+
+# [7.0.0](https://github.com/sebbo2002/ical-generator/compare/v6.0.1...v7.0.0) (2024-03-17)
+
+
+### Bug Fixes
+
+* **Event:** Run start/end validation only when getting data ([9174a32](https://github.com/sebbo2002/ical-generator/commit/9174a32bfe209f17f8c8460bc38187bb84dfecb0)), closes [#581](https://github.com/sebbo2002/ical-generator/issues/581)
+* fixed GEO missing when supplied (closes [#569](https://github.com/sebbo2002/ical-generator/issues/569)) ([2eeceb8](https://github.com/sebbo2002/ical-generator/commit/2eeceb84feb0cb5b9cc07a93e2b8b47fc3d313a7))
+* fixed typo `&&&` to `&&` ([7707b59](https://github.com/sebbo2002/ical-generator/commit/7707b595de0791c0d93f414a3340696d9e52d2ec))
+
+
+### Features
+
+* **Alarm:** Add support for `email` alarm type ([5398f09](https://github.com/sebbo2002/ical-generator/commit/5398f09809544c7529e8cabec2ee997b2a4781ae)), closes [#576](https://github.com/sebbo2002/ical-generator/issues/576)
+* **Event:** Made `ICalEvent.location.title` optional to allow setting `GEO` without title ([42be230](https://github.com/sebbo2002/ical-generator/commit/42be23018544dbf75ad9ce6cfe25231d1d434cc0)), closes [#578](https://github.com/sebbo2002/ical-generator/issues/578)
+
+
+### BREAKING CHANGES
+
+* **Event:** [ICalEvent.location()](https://sebbo2002.github.io/ical-generator/develop/reference/classes/ICalEvent.html#location)'s `title` field can now be undefined
+
+## [6.0.1](https://github.com/sebbo2002/ical-generator/compare/v6.0.0...v6.0.1) (2024-01-07)
+
+
+### Bug Fixes
+
+* **Calendar:** Remove `prodId()` string validation ([a5caeaa](https://github.com/sebbo2002/ical-generator/commit/a5caeaac5187557044af652fed109fb45e5f14a5)), closes [/www.rfc-editor.org/rfc/rfc5545#section-3](https://github.com//www.rfc-editor.org/rfc/rfc5545/issues/section-3) [#555](https://github.com/sebbo2002/ical-generator/issues/555)
+
+# [6.0.0](https://github.com/sebbo2002/ical-generator/compare/v5.0.1...v6.0.0) (2023-10-25)
+
+
+### Bug Fixes
+
+* add `browser` field to `package.json` ([7db4e32](https://github.com/sebbo2002/ical-generator/commit/7db4e32ad03b25b5cbe2cc4ce459541ee5639f15))
+
+
+### Features
+
+* Enable npm provenance ([87d173a](https://github.com/sebbo2002/ical-generator/commit/87d173a17133207492bd5c5ad2eeb70d8ecbe082))
+* Enable npm provenance ([ccba971](https://github.com/sebbo2002/ical-generator/commit/ccba971b065542500d0f3fa1475eea9f849b03f0))
+* Ensure Calendar is renderable all the time ([f1328a3](https://github.com/sebbo2002/ical-generator/commit/f1328a3b790507037efeb39431044c0970117cac)), closes [#344](https://github.com/sebbo2002/ical-generator/issues/344)
+* Remove `save()`, `saveSync()`, `serve()`, `toBlob()`, `toURL()` ([b6bea66](https://github.com/sebbo2002/ical-generator/commit/b6bea665837c85e066ad7a32234336b01e6244f1)), closes [#478](https://github.com/sebbo2002/ical-generator/issues/478)
+
+
+### Reverts
+
+* Revert "ci: Downgrade is-semantic-release till it's fixed" ([91c2ab5](https://github.com/sebbo2002/ical-generator/commit/91c2ab59d0559a060c11d07973382c465dd3345d))
+
+
+### BREAKING CHANGES
+
+* `Alarm.trigger` now defaults to 10min before event, `Alarm.type` now defaults to `display`, `Alarm.interval()` got removed, use `Alarm.repeat()` instead, `Alarm.repeat()` now gives/takes an object instead of a number, `Attendee.email` can’t be `null | undefined`, `Category.name` can’t be `null | undefined`, `Event.start` now defaults to now (`new Date()`). For details and examples checkout the migration guide at https://github.com/sebbo2002/ical-generator/wiki/Migration-Guide:-v5-%E2%86%92-v6
+* The `save()`, `saveSync()`, `serve()`, `toBlob()` and `toURL()` methods of the ICalCalendar class have been removed. Please use the `toString()` method to generate the ical string and proceed from there.
+
+## [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.0](https://github.com/sebbo2002/ical-generator/compare/v4.1.0...v5.0.0) (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.
+
+# [4.1.0](https://github.com/sebbo2002/ical-generator/compare/v4.0.0...v4.1.0) (2023-05-04)
+
+
+### 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)
+* 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))
+
+# [4.0.0](https://github.com/sebbo2002/ical-generator/compare/v3.6.1...v4.0.0) (2023-03-30)
+
+
+### 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)
+* Update escaping for quoted values ([faf5c70](https://github.com/sebbo2002/ical-generator/commit/faf5c70771fb62284cd9db936b0f5812e8353730)), closes [#463](https://github.com/sebbo2002/ical-generator/issues/463)
+
+
+### 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))
+
+
+### 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' ;`).
+* 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
+
+## [3.6.1](https://github.com/sebbo2002/ical-generator/compare/v3.6.0...v3.6.1) (2022-12-27)
+
+
+### 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.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.5.2](https://github.com/sebbo2002/ical-generator/compare/v3.5.1...v3.5.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.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.0](https://github.com/sebbo2002/ical-generator/compare/v3.4.3...v3.5.0) (2022-07-27)
+
+
+### 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.3](https://github.com/sebbo2002/ical-generator/compare/v3.4.2...v3.4.3) (2022-05-14)
+
+## [3.4.2](https://github.com/sebbo2002/ical-generator/compare/v3.4.1...v3.4.2) (2022-04-28)
+
+
+### 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.1](https://github.com/sebbo2002/ical-generator/compare/v3.4.0...v3.4.1) (2022-03-31)
+
+# [3.4.0](https://github.com/sebbo2002/ical-generator/compare/v3.3.0...v3.4.0) (2022-03-21)
+
+
+### Features
+
+* Add Support for Sent By ([9aac3e0](https://github.com/sebbo2002/ical-generator/commit/9aac3e0e5e0bb54b1400da8ef42e1544f033a72a)), closes [#358](https://github.com/sebbo2002/ical-generator/issues/358)
+
+# [3.3.0](https://github.com/sebbo2002/ical-generator/compare/v3.2.1...v3.3.0) (2022-03-21)
+
+
+### Features
+
+* added `types` property to declaration file ([01518e0](https://github.com/sebbo2002/ical-generator/commit/01518e048d785724f01be69a77bce6b58e2843d8))
+
+## [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.0](https://github.com/sebbo2002/ical-generator/compare/v3.1.1...v3.2.0) (2022-01-12)
+
+
+### 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)
+
+
+### 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.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.0](https://github.com/sebbo2002/ical-generator/compare/v3.0.1...v3.1.0) (2021-11-17)
+
+
+### 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)
+
+
+### 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:** 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.0.1](https://github.com/sebbo2002/ical-generator/compare/v3.0.0...v3.0.1) (2021-10-01)
+
+
+### 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.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)
+
+
+### Bug Fixes
+
+* Make peerDependencies less strict ([1c3a8f2](https://github.com/sebbo2002/ical-generator/commit/1c3a8f2f1d8880c6f94d7e06df8b5498a7418f01)), closes [#303](https://github.com/sebbo2002/ical-generator/issues/303)
+
+
+### chore
+
+* Remove node.js 10 Support ([2b910c0](https://github.com/sebbo2002/ical-generator/commit/2b910c09bc8a41085fc4472159494d8738d5521e))
+
+
+### BREAKING CHANGES
+
+* Removed support for node.js v10
+
+# [3.0.0-develop.7](https://github.com/sebbo2002/ical-generator/compare/v3.0.0-develop.6...v3.0.0-develop.7) (2021-07-28)
+
+# [3.0.0-develop.6](https://github.com/sebbo2002/ical-generator/compare/v3.0.0-develop.5...v3.0.0-develop.6) (2021-07-28)
+
+# [3.0.0-develop.5](https://github.com/sebbo2002/ical-generator/compare/v3.0.0-develop.4...v3.0.0-develop.5) (2021-07-28)
+
+# [3.0.0-develop.4](https://github.com/sebbo2002/ical-generator/compare/v3.0.0-develop.3...v3.0.0-develop.4) (2021-07-22)
+
+
+### Bug Fixes
+
+* Make peerDependencies less strict ([1c3a8f2](https://github.com/sebbo2002/ical-generator/commit/1c3a8f2f1d8880c6f94d7e06df8b5498a7418f01)), closes [#303](https://github.com/sebbo2002/ical-generator/issues/303)
+
+# [3.0.0-develop.3](https://github.com/sebbo2002/ical-generator/compare/v3.0.0-develop.2...v3.0.0-develop.3) (2021-06-18)
+
+# [3.0.0-develop.2](https://github.com/sebbo2002/ical-generator/compare/v3.0.0-develop.1...v3.0.0-develop.2) (2021-06-08)
+
+# [3.0.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v2.2.0...v3.0.0-develop.1) (2021-06-08)
+
+
+### chore
+
+* Remove node.js 10 Support ([2b910c0](https://github.com/sebbo2002/ical-generator/commit/2b910c09bc8a41085fc4472159494d8738d5521e))
+
+
+### BREAKING CHANGES
+
+* Removed support for node.js v10
+
+# [2.2.0](https://github.com/sebbo2002/ical-generator/compare/v2.1.0...v2.2.0) (2021-05-24)
+
+
+### Features
+
+* **Calendar:** Add `source()`, thanks [@irfaan](https://github.com/irfaan) ([91a764f](https://github.com/sebbo2002/ical-generator/commit/91a764fa135fe325b58f391b6a198f8807796350)), closes [#260](https://github.com/sebbo2002/ical-generator/issues/260)
+
+# [2.2.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v2.1.1-develop.1...v2.2.0-develop.1) (2021-05-24)
+
+
+### Features
+
+* **Calendar:** Add `source()`, thanks [@irfaan](https://github.com/irfaan) ([91a764f](https://github.com/sebbo2002/ical-generator/commit/91a764fa135fe325b58f391b6a198f8807796350)), closes [#260](https://github.com/sebbo2002/ical-generator/issues/260)
+
+## [2.1.1-develop.1](https://github.com/sebbo2002/ical-generator/compare/v2.1.0...v2.1.1-develop.1) (2021-05-17)
+
+# [2.1.0](https://github.com/sebbo2002/ical-generator/compare/v2.0.0...v2.1.0) (2021-05-13)
+
+
+### Features
+
+* Allow use of `require('ical-generator')` without `.default` ([31833a6](https://github.com/sebbo2002/ical-generator/commit/31833a60d3123f9b4ac10677dcad3871a892f32c)), closes [#253](https://github.com/sebbo2002/ical-generator/issues/253)
+* Export `formatDate` and some other tool functions ([6142e11](https://github.com/sebbo2002/ical-generator/commit/6142e11f631011aff9be8df129980dfac411d4f2)), closes [#248](https://github.com/sebbo2002/ical-generator/issues/248)
+* first commit ([dc8fa4a](https://github.com/sebbo2002/ical-generator/commit/dc8fa4a2ce97c6f0ab55e3371b83f5388b5da0c9))
+
+# [2.1.0-develop.6](https://github.com/sebbo2002/ical-generator/compare/v2.1.0-develop.5...v2.1.0-develop.6) (2021-05-13)
+
+# [2.1.0-develop.5](https://github.com/sebbo2002/ical-generator/compare/v2.1.0-develop.4...v2.1.0-develop.5) (2021-05-12)
+
+# [2.1.0-develop.4](https://github.com/sebbo2002/ical-generator/compare/v2.1.0-develop.3...v2.1.0-develop.4) (2021-05-12)
+
+
+### Features
+
+* Allow use of `require('ical-generator')` without `.default` ([31833a6](https://github.com/sebbo2002/ical-generator/commit/31833a60d3123f9b4ac10677dcad3871a892f32c)), closes [#253](https://github.com/sebbo2002/ical-generator/issues/253)
+
+# [2.1.0-develop.3](https://github.com/sebbo2002/ical-generator/compare/v2.1.0-develop.2...v2.1.0-develop.3) (2021-05-10)
+
+
+### Features
+
+* first commit ([dc8fa4a](https://github.com/sebbo2002/ical-generator/commit/dc8fa4a2ce97c6f0ab55e3371b83f5388b5da0c9))
+
+# [2.1.0-develop.2](https://github.com/sebbo2002/ical-generator/compare/v2.1.0-develop.1...v2.1.0-develop.2) (2021-05-01)
+
+# [2.1.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v2.0.1-develop.3...v2.1.0-develop.1) (2021-04-30)
+
+
+### Features
+
+* Export `formatDate` and some other tool functions ([6142e11](https://github.com/sebbo2002/ical-generator/commit/6142e11f631011aff9be8df129980dfac411d4f2)), closes [#248](https://github.com/sebbo2002/ical-generator/issues/248)
+
+## [2.0.1-develop.3](https://github.com/sebbo2002/ical-generator/compare/v2.0.1-develop.2...v2.0.1-develop.3) (2021-04-30)
+
+## [2.0.1-develop.2](https://github.com/sebbo2002/ical-generator/compare/v2.0.1-develop.1...v2.0.1-develop.2) (2021-04-29)
+
+## [2.0.1-develop.1](https://github.com/sebbo2002/ical-generator/compare/v2.0.0...v2.0.1-develop.1) (2021-04-29)
+
+# [2.0.0](https://github.com/sebbo2002/ical-generator/compare/v1.15.4...v2.0.0) (2021-04-28)
+
+
+### Bug Fixes
+
+* **package.json:** add temporary version ([0bc117e](https://github.com/sebbo2002/ical-generator/commit/0bc117e557d3fb4680345287c4dbb2549b2ecd32))
+* Allow to set null values within object constructors ([8b87183](https://github.com/sebbo2002/ical-generator/commit/8b8718305096466669b5d2cdcf318825cb8145ae))
+* **deps:** Also define libs as devDependency for tests ([c04ae32](https://github.com/sebbo2002/ical-generator/commit/c04ae321c59739f86df89b71ff0db11b63ef762f))
+* **deps:** Define supported libs as peerDependencies ([84e2784](https://github.com/sebbo2002/ical-generator/commit/84e278460a33ec4dbb08fdeeed55f6fd1a9be15b))
+* Make peer dependencies optional ([b384ac7](https://github.com/sebbo2002/ical-generator/commit/b384ac7838f1694f698f1fd921ddbd401ad66424)), closes [#244](https://github.com/sebbo2002/ical-generator/issues/244)
+* **Tools:** Prevent formatDate() from using global timezones prefixed with a slash ([85ab7b2](https://github.com/sebbo2002/ical-generator/commit/85ab7b221b0ab7cee858d82374c52405cf610c94))
+* **deps:** Put necessary typings in peerDependencies as well :/ ([14f0f43](https://github.com/sebbo2002/ical-generator/commit/14f0f43dc23facea9f7aec16144a8546d0b7af3f))
+* **Event:** Remove `moment` dependency in constructor ([8331d4c](https://github.com/sebbo2002/ical-generator/commit/8331d4ce09949d68f678211ff1f1906d1cd5d98d)), closes [#234](https://github.com/sebbo2002/ical-generator/issues/234)
+
+
+### Code Refactoring
+
+* **Calendar:** Remove moment.Duration from `ttl()` method ([c6ccd12](https://github.com/sebbo2002/ical-generator/commit/c6ccd12ed9e4f63e1876e3e06e7f13c38f1400ae))
+* Update error URLs ([2aedf55](https://github.com/sebbo2002/ical-generator/commit/2aedf552f4d79da49c6a3b0d990fb1f4b82c5a64))
+
+
+### Features
+
+* **Event:** Add `priority()` method ([247039f](https://github.com/sebbo2002/ical-generator/commit/247039fe2959dd5c5dbcb7772d4d2afa3406b987)), closes [#163](https://github.com/sebbo2002/ical-generator/issues/163)
+* **Attendee:** Add `x()` method for custom attributes ([5d9d686](https://github.com/sebbo2002/ical-generator/commit/5d9d6863dbc07c1054d858e83c3890588e8a6840)), closes [#183](https://github.com/sebbo2002/ical-generator/issues/183)
+* **Calendar:** add new clear method ([1ebefcb](https://github.com/sebbo2002/ical-generator/commit/1ebefcb3057db88870474bbb8da6c70ed9cb7336)), closes [#188](https://github.com/sebbo2002/ical-generator/issues/188)
+* Add ReleaseBot ([2fba164](https://github.com/sebbo2002/ical-generator/commit/2fba16478db12c0dd50b7c537cc3806395e64818))
+* **Calendar:** Add support for external VTimezone generator ([f4bc8e0](https://github.com/sebbo2002/ical-generator/commit/f4bc8e0535caecd1651b765f513722929d6b72b8)), closes [#122](https://github.com/sebbo2002/ical-generator/issues/122)
+* **Event:** Allow `X-APPLE-STRUCTURED-LOCATION` without address ([4e63e29](https://github.com/sebbo2002/ical-generator/commit/4e63e2914a4ac7956047b9011cfca177bcdb926a)), closes [#236](https://github.com/sebbo2002/ical-generator/issues/236)
+* **Event:** Make organizer.email optional ([8450492](https://github.com/sebbo2002/ical-generator/commit/8450492525d43d0de9d01a8f756cb76c43a77ff3)), closes [#137](https://github.com/sebbo2002/ical-generator/issues/137)
+* **Event:** Merge `location()`, `appleLocation()` and `geo()` ([62c1516](https://github.com/sebbo2002/ical-generator/commit/62c1516ce8c1ffee566dfb8cc70f2431a6325fe9)), closes [#187](https://github.com/sebbo2002/ical-generator/issues/187)
+* Merge event's `description()` and `htmlDescription()` ([ce537f8](https://github.com/sebbo2002/ical-generator/commit/ce537f8f56c1f3651938b75e884ae76814187daf))
+* Support moment.js, Day.js and Luxon ([#91](https://github.com/sebbo2002/ical-generator/issues/91), BREAKING CHANGE) ([6db24ee](https://github.com/sebbo2002/ical-generator/commit/6db24ee4887fca212a3a730e84fda9dd9c84ea01))
+* **Event:** Support RRule objects and raw strings in `repeating()` ([4436785](https://github.com/sebbo2002/ical-generator/commit/4436785894dfda4d0186283f89848d9a9a00ce6a)), closes [#190](https://github.com/sebbo2002/ical-generator/issues/190)
+* Updated the entire codebase to Typescript ([d013dc0](https://github.com/sebbo2002/ical-generator/commit/d013dc0199c9a9dce5181b9c89adf144bde17cea))
+* **Events:** Use uuid-random for random UUIDs (close [#215](https://github.com/sebbo2002/ical-generator/issues/215)) ([a4c19cc](https://github.com/sebbo2002/ical-generator/commit/a4c19ccdba037e7196b47bb571c26f2e6068f538))
+
+
+### BREAKING CHANGES
+
+* Some error messages changed, so if you check for error , please double check them now.
+* `htmlDescription()` was removed, use `description()` instead.
+* **Calendar:** `ttl()` will now return a number, not a `moment.Duration`. You can still use `moment.Duration` to set the `ttl` value.
+* **Event:** `geo()` and `appleLocation()` are not available anymore, use `location()` instead and pass an location object (with title, radius, etc.)
+* **Calendar:** Calendar's `clear()` method is a completely new implementation and, unlike previous versions, will not reset metadata such as `name` or `prodId`. Only the events will be removed
+
+# [2.0.0-develop.22](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.21...v2.0.0-develop.22) (2021-04-28)
+
+# [2.0.0-develop.21](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.20...v2.0.0-develop.21) (2021-04-17)
+
+
+### Bug Fixes
+
+* Make peer dependencies optional ([b384ac7](https://github.com/sebbo2002/ical-generator/commit/b384ac7838f1694f698f1fd921ddbd401ad66424)), closes [#244](https://github.com/sebbo2002/ical-generator/issues/244)
+
+# [2.0.0-develop.20](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.19...v2.0.0-develop.20) (2021-04-14)
+
+
+### Bug Fixes
+
+* **Tools:** Prevent formatDate() from using global timezones prefixed with a slash ([85ab7b2](https://github.com/sebbo2002/ical-generator/commit/85ab7b221b0ab7cee858d82374c52405cf610c94))
+
+
+### Features
+
+* **Calendar:** Add support for external VTimezone generator ([f4bc8e0](https://github.com/sebbo2002/ical-generator/commit/f4bc8e0535caecd1651b765f513722929d6b72b8)), closes [#122](https://github.com/sebbo2002/ical-generator/issues/122)
+
+# [2.0.0-develop.19](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.18...v2.0.0-develop.19) (2021-04-10)
+
+
+### Features
+
+* Add ReleaseBot ([2fba164](https://github.com/sebbo2002/ical-generator/commit/2fba16478db12c0dd50b7c537cc3806395e64818))
+
+# [2.0.0-develop.18](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.17...v2.0.0-develop.18) (2021-04-09)
+
+
+### Features
+
+* **Event:** Allow `X-APPLE-STRUCTURED-LOCATION` without address ([4e63e29](https://github.com/sebbo2002/ical-generator/commit/4e63e2914a4ac7956047b9011cfca177bcdb926a)), closes [#236](https://github.com/sebbo2002/ical-generator/issues/236)
+
+# [2.0.0-develop.17](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.16...v2.0.0-develop.17) (2021-04-02)
+
+# [2.0.0-develop.16](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.15...v2.0.0-develop.16) (2021-04-02)
+
+
+### Bug Fixes
+
+* **deps:** Put necessary typings in peerDependencies as well :/ ([14f0f43](https://github.com/sebbo2002/ical-generator/commit/14f0f43dc23facea9f7aec16144a8546d0b7af3f))
+
+# [2.0.0-develop.15](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.14...v2.0.0-develop.15) (2021-04-02)
+
+
+### Bug Fixes
+
+* **deps:** Also define libs as devDependency for tests ([c04ae32](https://github.com/sebbo2002/ical-generator/commit/c04ae321c59739f86df89b71ff0db11b63ef762f))
+* **deps:** Define supported libs as peerDependencies ([84e2784](https://github.com/sebbo2002/ical-generator/commit/84e278460a33ec4dbb08fdeeed55f6fd1a9be15b))
+
+# [2.0.0-develop.14](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.13...v2.0.0-develop.14) (2021-03-28)
+
+
+### Bug Fixes
+
+* Allow to set null values within object constructors ([8b87183](https://github.com/sebbo2002/ical-generator/commit/8b8718305096466669b5d2cdcf318825cb8145ae))
+
+# [2.0.0-develop.13](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.12...v2.0.0-develop.13) (2021-03-26)
+
+
+### Code Refactoring
+
+* Update error URLs ([2aedf55](https://github.com/sebbo2002/ical-generator/commit/2aedf552f4d79da49c6a3b0d990fb1f4b82c5a64))
+
+
+### BREAKING CHANGES
+
+* Some error messages changed, so if you check for error , please double check them now.
+
+# [2.0.0-develop.12](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.11...v2.0.0-develop.12) (2021-03-26)
+
+
+### Reverts
+
+* Revert "chore: Update package.json" ([2ad5716](https://github.com/sebbo2002/ical-generator/commit/2ad57163882b7171f45269b3742da9ead23510f4))
+
+# [2.0.0-develop.11](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.10...v2.0.0-develop.11) (2021-03-26)
+
+
+### chore
+
+* Update package.json ([a3c7037](https://github.com/sebbo2002/ical-generator/commit/a3c7037404c6c12fec7a892d39bfd4cfd8c6a00a))
+
+
+### BREAKING CHANGES
+
+* Set minimum node.js version to 12.0.0
+
+# [2.0.0-develop.10](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.9...v2.0.0-develop.10) (2021-03-25)
+
+# [2.0.0-develop.9](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.8...v2.0.0-develop.9) (2021-03-24)
+
+# [2.0.0-develop.8](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.7...v2.0.0-develop.8) (2021-03-23)
+
+
+### Features
+
+* **Attendee:** Add `x()` method for custom attributes ([5d9d686](https://github.com/sebbo2002/ical-generator/commit/5d9d6863dbc07c1054d858e83c3890588e8a6840)), closes [#183](https://github.com/sebbo2002/ical-generator/issues/183)
+
+# [2.0.0-develop.7](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.6...v2.0.0-develop.7) (2021-03-23)
+
+
+### Features
+
+* **Event:** Add `priority()` method ([247039f](https://github.com/sebbo2002/ical-generator/commit/247039fe2959dd5c5dbcb7772d4d2afa3406b987)), closes [#163](https://github.com/sebbo2002/ical-generator/issues/163)
+
+# [2.0.0-develop.6](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.5...v2.0.0-develop.6) (2021-03-23)
+
+
+### Features
+
+* **Event:** Make organizer.email optional ([8450492](https://github.com/sebbo2002/ical-generator/commit/8450492525d43d0de9d01a8f756cb76c43a77ff3)), closes [#137](https://github.com/sebbo2002/ical-generator/issues/137)
+
+# [2.0.0-develop.5](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.4...v2.0.0-develop.5) (2021-03-23)
+
+
+### Features
+
+* **Event:** Support RRule objects and raw strings in `repeating()` ([4436785](https://github.com/sebbo2002/ical-generator/commit/4436785894dfda4d0186283f89848d9a9a00ce6a)), closes [#190](https://github.com/sebbo2002/ical-generator/issues/190)
+
+# [2.0.0-develop.4](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.3...v2.0.0-develop.4) (2021-03-23)
+
+
+### Bug Fixes
+
+* **Event:** Remove `moment` dependency in constructor ([8331d4c](https://github.com/sebbo2002/ical-generator/commit/8331d4ce09949d68f678211ff1f1906d1cd5d98d)), closes [#234](https://github.com/sebbo2002/ical-generator/issues/234)
+
+# [2.0.0-develop.3](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.2...v2.0.0-develop.3) (2021-03-23)
+
+
+### Code Refactoring
+
+* **Calendar:** Remove moment.Duration from `ttl()` method ([c6ccd12](https://github.com/sebbo2002/ical-generator/commit/c6ccd12ed9e4f63e1876e3e06e7f13c38f1400ae))
+
+
+### Features
+
+* Merge event's `description()` and `htmlDescription()` ([ce537f8](https://github.com/sebbo2002/ical-generator/commit/ce537f8f56c1f3651938b75e884ae76814187daf))
+
+
+### BREAKING CHANGES
+
+* `htmlDescription()` was removed, use `description()` instead.
+* **Calendar:** `ttl()` will now return a number, not a `moment.Duration`. You can still use `moment.Duration` to set the `ttl` value.
+
+# [2.0.0-develop.2](https://github.com/sebbo2002/ical-generator/compare/v2.0.0-develop.1...v2.0.0-develop.2) (2021-03-22)
+
+
+### Features
+
+* **Event:** Merge `location()`, `appleLocation()` and `geo()` ([62c1516](https://github.com/sebbo2002/ical-generator/commit/62c1516ce8c1ffee566dfb8cc70f2431a6325fe9)), closes [#187](https://github.com/sebbo2002/ical-generator/issues/187)
+
+
+### BREAKING CHANGES
+
+* **Event:** `geo()` and `appleLocation()` are not available anymore, use `location()` instead and pass an location object (with title, radius, etc.)
+
+# [2.0.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v1.3.0-develop.4...v2.0.0-develop.1) (2021-03-21)
+
+
+### Features
+
+* **Calendar:** add new clear method ([1ebefcb](https://github.com/sebbo2002/ical-generator/commit/1ebefcb3057db88870474bbb8da6c70ed9cb7336)), closes [#188](https://github.com/sebbo2002/ical-generator/issues/188)
+
+
+### BREAKING CHANGES
+
+* **Calendar:** Calendar's `clear()` method is a completely new implementation and, unlike previous versions, will not reset metadata such as `name` or `prodId`. Only the events will be removed
+
+# [1.3.0-develop.4](https://github.com/sebbo2002/ical-generator/compare/v1.3.0-develop.3...v1.3.0-develop.4) (2021-03-21)
+
+
+### Features
+
+* Support moment.js, Day.js and Luxon ([#91](https://github.com/sebbo2002/ical-generator/issues/91), BREAKING CHANGE) ([6db24ee](https://github.com/sebbo2002/ical-generator/commit/6db24ee4887fca212a3a730e84fda9dd9c84ea01))
+
+# [1.3.0-develop.3](https://github.com/sebbo2002/ical-generator/compare/v1.3.0-develop.2...v1.3.0-develop.3) (2021-03-13)
+
+# [1.3.0-develop.2](https://github.com/sebbo2002/ical-generator/compare/v1.3.0-develop.1...v1.3.0-develop.2) (2021-03-05)
+
+
+### Features
+
+* **Events:** Use uuid-random for random UUIDs (close [#215](https://github.com/sebbo2002/ical-generator/issues/215)) ([a4c19cc](https://github.com/sebbo2002/ical-generator/commit/a4c19ccdba037e7196b47bb571c26f2e6068f538))
+
+# [1.3.0-develop.1](https://github.com/sebbo2002/ical-generator/compare/v1.2.1...v1.3.0-develop.1) (2021-02-27)
+
+
+### Bug Fixes
+
+* **package.json:** add temporary version ([0bc117e](https://github.com/sebbo2002/ical-generator/commit/0bc117e557d3fb4680345287c4dbb2549b2ecd32))
+* allow X-attrs to be specified in constructor ([#185](https://github.com/sebbo2002/ical-generator/issues/185)) ([58c1ae5](https://github.com/sebbo2002/ical-generator/commit/58c1ae5d30ede4842f2cdcb4eb9458d1d27c63ff))
+* capitalize byDay even when bySetPos is used ([#205](https://github.com/sebbo2002/ical-generator/issues/205)) ([5440fbc](https://github.com/sebbo2002/ical-generator/commit/5440fbc90baa93e5313ef1e328ef4ff81273eb79))
+* **Typings:** Fix OPT-PARTICIPANT ([b777f9e](https://github.com/sebbo2002/ical-generator/commit/b777f9e14c1ae256d809b0f1777ac773b64e1308)), closes [#192](https://github.com/sebbo2002/ical-generator/issues/192)
+* Fix scale type for CalendarData ([#191](https://github.com/sebbo2002/ical-generator/issues/191)) ([d5421e8](https://github.com/sebbo2002/ical-generator/commit/d5421e8782327a985fa4c08bd4609779a67512cf))
+* Make x key optional in types ([#211](https://github.com/sebbo2002/ical-generator/issues/211)) ([e3c21e2](https://github.com/sebbo2002/ical-generator/commit/e3c21e27a69317e0e8a2a81eca32ae358d57b00c))
+* Type fixes and updates ([#217](https://github.com/sebbo2002/ical-generator/issues/217)) ([d8abe4d](https://github.com/sebbo2002/ical-generator/commit/d8abe4d43bb0eb1edb49f84b966ea6094cb0d562))
+
+
+### Features
+
+* **Events:** Add appleLocation method ([#170](https://github.com/sebbo2002/ical-generator/issues/170)) ([0956ba2](https://github.com/sebbo2002/ical-generator/commit/0956ba2c687ac46dc3faa9e02565682fda0c50a9))
+* Add missing string input options to interface ([#199](https://github.com/sebbo2002/ical-generator/issues/199)) ([a963178](https://github.com/sebbo2002/ical-generator/commit/a963178099b64caa5c4d6e99cee75b3882b823cb))
+* Add Transparency Method ([bd2901d](https://github.com/sebbo2002/ical-generator/commit/bd2901d248ec679a960f598025867aa08b0ee73a))
+* Increase id entropy - Fixes [#200](https://github.com/sebbo2002/ical-generator/issues/200) ([#202](https://github.com/sebbo2002/ical-generator/issues/202)) ([6711b0a](https://github.com/sebbo2002/ical-generator/commit/6711b0aab745b4c20201b6cec91fb00818cf6d0d))
+* make domain optional ([#209](https://github.com/sebbo2002/ical-generator/issues/209)) ([e3362c9](https://github.com/sebbo2002/ical-generator/commit/e3362c94e2b055043d3db74c51563d6107a5a097))
+* Updated the entire codebase to Typescript ([d013dc0](https://github.com/sebbo2002/ical-generator/commit/d013dc0199c9a9dce5181b9c89adf144bde17cea))
+* **Events:** use provided timezone when constructing repeating.exclude ([#210](https://github.com/sebbo2002/ical-generator/issues/210)) ([bd84230](https://github.com/sebbo2002/ical-generator/commit/bd84230db85c68e343507007b84830d2b39b4a1d))
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
index 76a05507c..30731051e
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2021 Sebastian Pekarek
+Copyright (c) 2024 Sebastian Pekarek
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
diff --git a/README.md b/README.md
index bb09c7305..0a0e206fe 100644
--- a/README.md
+++ b/README.md
@@ -1,47 +1,132 @@
-# template
+
+
-[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](LICENSE)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-Here would be a very short description of the project. So in this example it would be a short information that this is
-a template that I use to start new projects and services.
+
-## 🚨 Template Usage Checklist
-- [ ] Update project name in `package.json`
-- [ ] Create `main` and `develop` branches
-- [ ] Set `develop` as default branch
-- [ ] Create Docker Repository
- - [ ] Add Repository Description
- - [ ] Add secret: `DOCKERHUB_TOKEN`
-- [ ] Create npm Repository with `npm publish --access public`
- - [ ] Add secret: `NPM_TOKEN`
-- [ ] Go through repo settings
+`ical-generator` is a small but fine library with which you can very easily create a valid iCal calendars, for example
+to generate subscriptionable calendar feeds.
-## 📦 Installation
- git clone https://github.com/sebbo2002/template.git
- cd ./template
+## 📦 Installation
- npm install
+ npm install ical-generator
## ⚡️ Quick Start
-This is where it would normally say how to use the project.
-This could be a code example for a library or instructions on how to use a CLI tool.
-
+```javascript
+import ical, {ICalCalendarMethod} from 'ical-generator';
+import http from 'node:http';
+
+const calendar = ical({name: 'my first iCal'});
+
+// A method is required for outlook to display event as an invitation
+calendar.method(ICalCalendarMethod.REQUEST);
+
+const startTime = new Date();
+const endTime = new Date();
+endTime.setHours(startTime.getHours()+1);
+calendar.createEvent({
+ start: startTime,
+ end: endTime,
+ summary: 'Example Event',
+ description: 'It works ;)',
+ location: 'my room',
+ url: 'http://sebbo.net/'
+});
+
+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.
## 📑 API-Reference
-Is there an API that needs to be documented? Then here would be a nice place for it. If there is external documentation,
-you can link it here ([example](https://github.com/sebbo2002/ical-generator/#-api-reference)).
+- [Index](https://sebbo2002.github.io/ical-generator/develop/reference/)
+ - [ICalCalendar](https://sebbo2002.github.io/ical-generator/develop/reference/classes/ICalCalendar.html)
+ - [ICalEvent](https://sebbo2002.github.io/ical-generator/develop/reference/classes/ICalEvent.html)
+ - [ICalAlarm](https://sebbo2002.github.io/ical-generator/develop/reference/classes/ICalAlarm.html)
+ - [ICalAttendee](https://sebbo2002.github.io/ical-generator/develop/reference/classes/ICalAttendee.html)
+ - [ICalCategory](https://sebbo2002.github.io/ical-generator/develop/reference/classes/ICalCategory.html)
+
+## 🕒 Date, Time & Timezones
+
+ical-generator supports [native Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date),
+[Day.js](https://day.js.org/en/), [Luxon's](https://moment.github.io/luxon/) [DateTime](https://moment.github.io/luxon/docs/class/src/datetime.js~DateTime.html)
+and the older [moment.js](https://momentjs.com/) and [moment-timezone](https://momentjs.com/timezone/)
+objects. You can also pass a string which is then passed to javascript's `Date` internally.
+
+It is recommended to use UTC time as far as possible. `ical-generator` will output all time information as UTC time as
+long as no time zone is defined. For day.js, a plugin is necessary for this, which is a prerequisite. If a time zone is
+set, `ical-generator` assumes that the given time matches the time zone. If a time zone is used, it is also recommended
+to use a VTimezone generator. Such a function generates a VTimezone entry and returns it. For example, ical-timezones can
+be used for this:
+
+```typescript
+import {ICalCalendar} from 'ical-generator';
+import {getVtimezoneComponent} from '@touch4it/ical-timezones';
+
+const cal = new ICalCalendar();
+cal.timezone({
+ name: 'FOO',
+ generator: getVtimezoneComponent
+});
+cal.createEvent({
+ start: new Date(),
+ timezone: 'Europe/London'
+});
+```
+
+If a `moment-timezone` object or Luxon's `setZone` method works, `ical-generator` sets it according to the time zone set
+in the calendar/event.
+
+
+
+
+## 🚦 Tests
+
+```
+npm test
+npm run coverage
+```
## 🙋 FAQ
-### What's `1` + `2`
-It's `3` 🎉
+### 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).
+
+### I get a `ReferenceError: TextEncoder is not defined` error (in some browsers)
+This library uses [`TextEncoder`](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder), which
+is available in node.js ≥ 11.0.0 and [all modern browsers](https://caniuse.com/?search=textencoder).
+Outdated browsers may not have the necessary API and generate this error when generating the calendar.
## 🙆🏼♂️ Copyright and license
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
new file mode 100755
index 000000000..55f17cd28
--- /dev/null
+++ b/examples/example-express.js
@@ -0,0 +1,31 @@
+'use strict';
+
+import ical from 'ical-generator';
+import moment from 'moment';
+import express from 'express';
+
+const cal = ical({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ events: [
+ {
+ start: moment(),
+ end: moment().add(1, 'hour'),
+ summary: 'Example Event',
+ description: 'It works ;)',
+ url: 'https://example.com'
+ }
+ ]
+});
+
+const app = express();
+
+app.get('/calendar', (req, 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
new file mode 100755
index 000000000..e2944a714
--- /dev/null
+++ b/examples/example-http.js
@@ -0,0 +1,29 @@
+'use strict';
+
+import ical from 'ical-generator';
+import moment from 'moment';
+import http from 'node:http';
+
+const cal = ical({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ events: [
+ {
+ start: moment(),
+ end: moment().add(1, 'hour'),
+ summary: 'Example Event',
+ description: 'It works ;)',
+ url: 'https://example.com'
+ }
+ ]
+});
+
+http.createServer(function (req, 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
new file mode 100755
index 000000000..255c70fbd
--- /dev/null
+++ b/examples/example-koa.js
@@ -0,0 +1,32 @@
+'use strict';
+
+import ical from 'ical-generator';
+import moment from 'moment';
+import Koa from 'koa';
+
+const cal = ical({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ events: [
+ {
+ start: moment(),
+ end: moment().add(1, 'hour'),
+ summary: 'Example Event',
+ description: 'It works ;)',
+ url: 'https://example.com'
+ }
+ ]
+});
+
+const app = new Koa();
+
+app.use(ctx => {
+ 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
new file mode 100644
index 000000000..0e1c4ac57
--- /dev/null
+++ b/examples/example-micro.js
@@ -0,0 +1,29 @@
+'use strict';
+
+import ical from 'ical-generator';
+import moment from 'moment';
+
+const cal = ical({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ events: [
+ {
+ start: moment(),
+ end: moment().add(1, 'hour'),
+ summary: 'Example Event',
+ description: 'It works ;)',
+ url: 'https://example.com'
+ }
+ ]
+});
+
+// start with $ micro example/example-micro.js
+module.exports = (req, 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-nextjs13.js b/examples/example-nextjs13.js
new file mode 100644
index 000000000..d7b1543c7
--- /dev/null
+++ b/examples/example-nextjs13.js
@@ -0,0 +1,41 @@
+// app/api/calendar/route.ts
+
+import icalendar from 'ical-generator';
+import moment from 'moment';
+
+export async function GET(req) {
+ if (req.method !== 'GET') {
+ return new Response('Method Not Allowed', {
+ headers: { Allow: 'GET' },
+ status: 405,
+ });
+ }
+
+ const filename = 'calendar.ics';
+
+ try {
+ const calendar = icalendar({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ events: [
+ {
+ start: moment(),
+ end: moment().add(1, 'hour'),
+ summary: 'Example Event',
+ description: 'It works ;)',
+ url: 'https://example.com'
+ }
+ ]
+ });
+
+ return new Response(calendar.toString(), {
+ headers: {
+ 'Content-Type': 'text/calendar; charset=utf-8',
+ 'Content-Disposition': `attachment; filename='${filename}'`,
+ },
+ status: 200,
+ });
+ } catch (err) {
+ console.error(err);
+ return new Response(JSON.stringify(err), { status: 500 });
+ }
+}
diff --git a/examples/example-quickstart.js b/examples/example-quickstart.js
new file mode 100644
index 000000000..cc2eb9018
--- /dev/null
+++ b/examples/example-quickstart.js
@@ -0,0 +1,27 @@
+import ical from 'ical-generator';
+import http from 'node:http';
+
+const calendar = ical({name: 'my first iCal'});
+const startTime = new Date();
+const endTime = new Date();
+endTime.setHours(startTime.getHours()+1);
+calendar.createEvent({
+ start: startTime,
+ end: endTime,
+ summary: 'Example Event',
+ description: 'It works ;)',
+ location: 'my room',
+ url: 'http://sebbo.net/'
+});
+
+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/examples/example-recurrence.js b/examples/example-recurrence.js
new file mode 100644
index 000000000..9e72e972f
--- /dev/null
+++ b/examples/example-recurrence.js
@@ -0,0 +1,14 @@
+'use strict';
+
+import ical from 'ical-generator';
+import moment from 'moment';
+const cal = ical();
+
+cal.createEvent({
+ start: moment().add(1, 'hour'),
+ end: moment().add(2, 'hours'),
+ summary: 'Example Recurrence-Id',
+ recurrenceId: moment().add(4, 'hour')
+});
+
+console.log(cal.toString());
diff --git a/examples/example-repeating.js b/examples/example-repeating.js
new file mode 100644
index 000000000..0b4162ae9
--- /dev/null
+++ b/examples/example-repeating.js
@@ -0,0 +1,16 @@
+'use strict';
+
+import ical from 'ical-generator';
+const cal = ical();
+
+cal.createEvent({
+ start: new Date(1969, 6, 20, 20),
+ allDay: true,
+ summary: 'Apollo 11 - First Man to walk on the Moon (1969)',
+ url: 'http://www.nasa.gov/mission_pages/apollo/index.html',
+ repeating: {
+ freq: 'YEARLY'
+ }
+});
+
+console.log(cal.toString());
diff --git a/examples/example-runkit.js b/examples/example-runkit.js
new file mode 100644
index 000000000..b178237a6
--- /dev/null
+++ b/examples/example-runkit.js
@@ -0,0 +1,16 @@
+import ical from '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 ;)');
+
+cal.toString();
diff --git a/examples/example-string.js b/examples/example-string.js
new file mode 100755
index 000000000..1bf139a3e
--- /dev/null
+++ b/examples/example-string.js
@@ -0,0 +1,19 @@
+'use strict';
+
+import ical from 'ical-generator';
+import moment from 'moment';
+const cal = ical();
+
+const event = cal.createEvent({
+ start: moment().add(1, 'hour'),
+ end: moment().add(2, 'hours'),
+ 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-string.ts b/examples/example-string.ts
new file mode 100644
index 000000000..f3c566445
--- /dev/null
+++ b/examples/example-string.ts
@@ -0,0 +1,20 @@
+'use strict';
+
+import ical from 'ical-generator';
+import moment from 'moment';
+
+const cal = ical();
+
+const event = cal.createEvent({
+ start: moment().add(1, 'hour'),
+ end: moment().add(2, 'hours'),
+ 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/jsr.json b/jsr.json
new file mode 100644
index 000000000..02d2e6199
--- /dev/null
+++ b/jsr.json
@@ -0,0 +1,13 @@
+{
+ "exports": "./src/index.ts",
+ "name": "@sebbo2002/ical-generator",
+ "publish": {
+ "include": [
+ "LICENSE",
+ "README.md",
+ "src/*.ts",
+ "jsr.json"
+ ]
+ },
+ "version": "7.1.0"
+}
diff --git a/package-lock.json b/package-lock.json
index af977f7e4..b32f589f4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,38 +1,46 @@
{
- "name": "@sebbo2002/js-template-test",
- "version": "1.0.0",
+ "name": "ical-generator",
+ "version": "7.2.0-develop.3",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "name": "@sebbo2002/js-template-test",
- "version": "1.0.0",
+ "name": "ical-generator",
+ "version": "7.2.0-develop.3",
"license": "MIT",
"dependencies": {
- "express": "^4.19.2"
- },
- "bin": {
- "test-cli": "dist/bin/cli.js"
+ "uuid-random": "^1.3.2"
},
"devDependencies": {
"@eslint/js": "^9.6.0",
"@qiwi/semantic-release-gh-pages-plugin": "^5.2.12",
+ "@sebbo2002/semantic-release-jsr": "^1.0.0-develop.6",
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@semantic-release/npm": "^12.0.1",
+ "@touch4it/ical-timezones": "^1.9.0",
"@types/eslint__js": "^8.42.3",
"@types/express": "^4.17.21",
+ "@types/luxon": "^3.4.2",
"@types/mocha": "^10.0.7",
"@types/node": "^20.14.10",
+ "@typescript-eslint/eslint-plugin": "^7.3.1",
"c8": "^10.1.2",
+ "dayjs": "^1.11.10",
"eslint": "^9.6.0",
"eslint-plugin-jsonc": "^2.16.0",
"esm": "^3.2.25",
"license-checker": "^25.0.1",
+ "luxon": "^3.4.4",
"mocha": "^10.6.0",
"mochawesome": "^7.1.3",
- "semantic-release-license": "^1.0.3",
+ "moment": "^2.30.1",
+ "moment-timezone": "^0.5.45",
+ "nyc": "^15.1.0",
+ "rrule": "^2.8.1",
+ "semantic-release": "^23.0.5",
+ "semantic-release-license": "^1.0.2",
"source-map-support": "^0.5.21",
"ts-node": "^10.9.2",
"tsup": "^8.1.0",
@@ -42,40 +50,395 @@
},
"engines": {
"node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "@touch4it/ical-timezones": ">=1.6.0",
+ "@types/luxon": ">= 1.26.0",
+ "@types/mocha": ">= 8.2.1",
+ "dayjs": ">= 1.10.0",
+ "luxon": ">= 1.26.0",
+ "moment": ">= 2.29.0",
+ "moment-timezone": ">= 0.5.33",
+ "rrule": ">= 2.6.8"
+ },
+ "peerDependenciesMeta": {
+ "@touch4it/ical-timezones": {
+ "optional": true
+ },
+ "@types/luxon": {
+ "optional": true
+ },
+ "@types/mocha": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "dayjs": {
+ "optional": true
+ },
+ "luxon": {
+ "optional": true
+ },
+ "moment": {
+ "optional": true
+ },
+ "moment-timezone": {
+ "optional": true
+ },
+ "rrule": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.24.7",
- "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+ "version": "7.22.13",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+ "dev": true,
+ "dependencies": {
+ "@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",
+ "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",
+ "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",
+ "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",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+ "version": "3.0.0",
+ "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",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.14.5",
+ "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.14.6",
+ "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.14.5",
+ "@babel/generator": "^7.14.5",
+ "@babel/helper-compilation-targets": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.14.5",
+ "@babel/helpers": "^7.14.6",
+ "@babel/parser": "^7.14.6",
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.1.2",
+ "semver": "^6.3.0",
+ "source-map": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.0",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/core/node_modules/source-map": {
+ "version": "0.5.7",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.23.0",
+ "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
+ "dev": true,
+ "dependencies": {
+ "@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/@jridgewell/trace-mapping": {
+ "version": "0.3.19",
+ "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.14.5",
+ "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.14.5",
+ "@babel/helper-validator-option": "^7.14.5",
+ "browserslist": "^4.16.6",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.0",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.23.0",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.14.5",
+ "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.14.5",
+ "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.14.5",
+ "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.14.5",
+ "@babel/helper-replace-supers": "^7.14.5",
+ "@babel/helper-simple-access": "^7.14.5",
+ "@babel/helper-split-export-declaration": "^7.14.5",
+ "@babel/helper-validator-identifier": "^7.14.5",
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.14.5",
+ "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/highlight": "^7.24.7",
- "picocolors": "^1.0.0"
+ "@babel/types": "^7.14.5"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.14.5",
+ "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-member-expression-to-functions": "^7.14.5",
+ "@babel/helper-optimise-call-expression": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.14.5",
+ "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.22.5",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.24.7",
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "version": "7.22.20",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true,
- "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.14.5",
+ "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.14.6",
+ "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ },
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.24.7",
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "version": "7.22.20",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.4.2",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
+ "js-tokens": "^4.0.0"
},
"engines": {
"node": ">=6.9.0"
@@ -85,7 +448,6 @@
"version": "3.2.1",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -97,7 +459,6 @@
"version": "2.4.2",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -111,7 +472,6 @@
"version": "1.9.3",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
@@ -119,14 +479,12 @@
"node_modules/@babel/highlight/node_modules/color-name": {
"version": "1.1.3",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/@babel/highlight/node_modules/escape-string-regexp": {
"version": "1.0.5",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
@@ -135,7 +493,6 @@
"version": "3.0.0",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -144,7 +501,6 @@
"version": "5.5.0",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
- "license": "MIT",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -152,6 +508,71 @@
"node": ">=4"
}
},
+ "node_modules/@babel/parser": {
+ "version": "7.23.0",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
+ "dev": true,
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.22.15",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+ "dev": true,
+ "dependencies": {
+ "@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.23.2",
+ "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"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse/node_modules/globals": {
+ "version": "11.12.0",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.23.0",
+ "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@bcoe/v8-coverage": {
"version": "0.2.3",
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
@@ -161,9 +582,7 @@
"version": "1.5.0",
"integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
"dev": true,
- "license": "MIT",
"optional": true,
- "peer": true,
"engines": {
"node": ">=0.1.90"
}
@@ -180,8 +599,8 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "version": "0.23.0",
+ "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==",
"cpu": [
"ppc64"
],
@@ -192,12 +611,12 @@
"aix"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "version": "0.23.0",
+ "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==",
"cpu": [
"arm"
],
@@ -208,12 +627,12 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "version": "0.23.0",
+ "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==",
"cpu": [
"arm64"
],
@@ -224,12 +643,12 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "version": "0.23.0",
+ "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==",
"cpu": [
"x64"
],
@@ -240,12 +659,12 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "version": "0.23.0",
+ "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==",
"cpu": [
"arm64"
],
@@ -256,12 +675,12 @@
"darwin"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "version": "0.23.0",
+ "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==",
"cpu": [
"x64"
],
@@ -272,12 +691,12 @@
"darwin"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "version": "0.23.0",
+ "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==",
"cpu": [
"arm64"
],
@@ -288,12 +707,12 @@
"freebsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "version": "0.23.0",
+ "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==",
"cpu": [
"x64"
],
@@ -304,12 +723,12 @@
"freebsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "version": "0.23.0",
+ "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==",
"cpu": [
"arm"
],
@@ -320,12 +739,12 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "version": "0.23.0",
+ "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==",
"cpu": [
"arm64"
],
@@ -336,12 +755,12 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "version": "0.23.0",
+ "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==",
"cpu": [
"ia32"
],
@@ -352,12 +771,12 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "version": "0.23.0",
+ "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==",
"cpu": [
"loong64"
],
@@ -368,12 +787,12 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "version": "0.23.0",
+ "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==",
"cpu": [
"mips64el"
],
@@ -384,12 +803,12 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "version": "0.23.0",
+ "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==",
"cpu": [
"ppc64"
],
@@ -400,12 +819,12 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "version": "0.23.0",
+ "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==",
"cpu": [
"riscv64"
],
@@ -416,12 +835,12 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "version": "0.23.0",
+ "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==",
"cpu": [
"s390x"
],
@@ -432,12 +851,12 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "version": "0.23.0",
+ "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==",
"cpu": [
"x64"
],
@@ -448,12 +867,12 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "version": "0.23.0",
+ "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==",
"cpu": [
"x64"
],
@@ -464,12 +883,28 @@
"netbsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.23.0",
+ "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "version": "0.23.0",
+ "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==",
"cpu": [
"x64"
],
@@ -480,12 +915,12 @@
"openbsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "version": "0.23.0",
+ "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==",
"cpu": [
"x64"
],
@@ -496,12 +931,12 @@
"sunos"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "version": "0.23.0",
+ "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==",
"cpu": [
"arm64"
],
@@ -512,12 +947,12 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "version": "0.23.0",
+ "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==",
"cpu": [
"ia32"
],
@@ -528,12 +963,12 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "version": "0.23.0",
+ "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==",
"cpu": [
"x64"
],
@@ -544,14 +979,13 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.0",
"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eslint-visitor-keys": "^3.3.0"
},
@@ -562,18 +996,6 @@
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
- "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
"node_modules/@eslint-community/regexpp": {
"version": "4.11.0",
"integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==",
@@ -584,8 +1006,8 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.17.0",
- "integrity": "sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==",
+ "version": "0.17.1",
+ "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -620,6 +1042,12 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/@eslint/eslintrc/node_modules/argparse": {
+ "version": "2.0.1",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
"node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": {
"version": "4.0.0",
"integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==",
@@ -649,9 +1077,21 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/@eslint/js": {
- "version": "9.6.0",
- "integrity": "sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==",
+ "version": "9.7.0",
+ "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==",
"dev": true,
"license": "MIT",
"engines": {
@@ -671,7 +1111,6 @@
"version": "1.0.1",
"integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": ">=12.22"
},
@@ -789,26 +1228,117 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
+ "version": "4.1.0",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
+ "version": "5.0.0",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
+ "version": "2.3.0",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
+ "version": "4.1.0",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@istanbuljs/schema": {
"version": "0.1.3",
"integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "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.0.7",
- "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==",
+ "version": "3.1.0",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
"dev": true,
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.13",
- "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==",
+ "version": "1.4.14",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
@@ -853,27 +1383,23 @@
}
},
"node_modules/@octokit/auth-token": {
- "version": "5.1.1",
- "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==",
+ "version": "5.0.1",
+ "integrity": "sha512-RTmWsLfig8SBoiSdgvCht4BXl1CHU89Co5xiQ5JF19my/sIRDFCQ1RPrmK0exgqUZuNm39C/bV8+/83+MJEjGg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/core": {
- "version": "6.1.2",
- "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==",
+ "version": "6.0.1",
+ "integrity": "sha512-MIpPQXu8Y8GjHwXM81JLveiV+DHJZtLMcB5nKekBGOl3iAtk0HT3i12Xl8Biybu+bCS1+k4qbuKEq5d0RxNRnQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"@octokit/auth-token": "^5.0.0",
"@octokit/graphql": "^8.0.0",
"@octokit/request": "^9.0.0",
"@octokit/request-error": "^6.0.1",
- "@octokit/types": "^13.0.0",
+ "@octokit/types": "^12.0.0",
"before-after-hook": "^3.0.2",
"universal-user-agent": "^7.0.0"
},
@@ -882,13 +1408,11 @@
}
},
"node_modules/@octokit/endpoint": {
- "version": "10.1.1",
- "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==",
+ "version": "10.0.0",
+ "integrity": "sha512-emBcNDxBdC1y3+knJonS5zhUB/CG6TihubxM2U1/pG/Z1y3a4oV0Gzz3lmkCvWWQI6h3tqBAX9MgCBFp+M68Jw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "@octokit/types": "^13.0.0",
+ "@octokit/types": "^12.0.0",
"universal-user-agent": "^7.0.2"
},
"engines": {
@@ -896,14 +1420,12 @@
}
},
"node_modules/@octokit/graphql": {
- "version": "8.1.1",
- "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==",
+ "version": "8.0.1",
+ "integrity": "sha512-lLDb6LhC1gBj2CxEDa5Xk10+H/boonhs+3Mi6jpRyetskDKNHe6crMeKmUE2efoLofMP8ruannLlCUgpTFmVzQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"@octokit/request": "^9.0.0",
- "@octokit/types": "^13.0.0",
+ "@octokit/types": "^12.0.0",
"universal-user-agent": "^7.0.0"
},
"engines": {
@@ -911,20 +1433,16 @@
}
},
"node_modules/@octokit/openapi-types": {
- "version": "22.2.0",
- "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==",
- "dev": true,
- "license": "MIT",
- "peer": true
+ "version": "20.0.0",
+ "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==",
+ "dev": true
},
"node_modules/@octokit/plugin-paginate-rest": {
- "version": "11.3.3",
- "integrity": "sha512-o4WRoOJZlKqEEgj+i9CpcmnByvtzoUYC6I8PD2SA95M+BJ2x8h7oLcVOg9qcowWXBOdcTRsMZiwvM3EyLm9AfA==",
+ "version": "10.0.0",
+ "integrity": "sha512-G1Z67qOiFneKDJyMafHQkWnKm1kU3FfbRZLzxgsFg4dOa3pRNdABbdk+xo/oev6P88lnbt7GKdBNB6dJZuPphA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "@octokit/types": "^13.5.0"
+ "@octokit/types": "^12.6.0"
},
"engines": {
"node": ">= 18"
@@ -934,14 +1452,12 @@
}
},
"node_modules/@octokit/plugin-retry": {
- "version": "7.1.1",
- "integrity": "sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==",
+ "version": "7.0.3",
+ "integrity": "sha512-T9l5Z7XnDZ7dkyNmhJPSUq0YjbqUT/xn4yQbhcSuv4WGC/LqM73/mKwkl68VDPoLw20e8oz4L7qQopWt9v6sow==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"@octokit/request-error": "^6.0.0",
- "@octokit/types": "^13.0.0",
+ "@octokit/types": "^12.0.0",
"bottleneck": "^2.15.3"
},
"engines": {
@@ -952,13 +1468,11 @@
}
},
"node_modules/@octokit/plugin-throttling": {
- "version": "9.3.0",
- "integrity": "sha512-B5YTToSRTzNSeEyssnrT7WwGhpIdbpV9NKIs3KyTWHX6PhpYn7gqF/+lL3BvsASBM3Sg5BAUYk7KZx5p/Ec77w==",
+ "version": "9.0.3",
+ "integrity": "sha512-DReKamrLBJOzld73dmmxV2H137QKJfsxszAczEZXeAJQ/Po6bzQacKajPdodA6T1jfmP9+waImus+d/R2j+R7Q==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "@octokit/types": "^13.0.0",
+ "@octokit/types": "^12.6.0",
"bottleneck": "^2.15.3"
},
"engines": {
@@ -969,15 +1483,13 @@
}
},
"node_modules/@octokit/request": {
- "version": "9.1.1",
- "integrity": "sha512-pyAguc0p+f+GbQho0uNetNQMmLG1e80WjkIaqqgUkihqUp0boRU6nKItXO4VWnr+nbZiLGEyy4TeKRwqaLvYgw==",
+ "version": "9.0.1",
+ "integrity": "sha512-kL+cAcbSl3dctYLuJmLfx6Iku2MXXy0jszhaEIjQNaCp4zjHXrhVAHeuaRdNvJjW9qjl3u1MJ72+OuBP0YW/pg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"@octokit/endpoint": "^10.0.0",
"@octokit/request-error": "^6.0.1",
- "@octokit/types": "^13.1.0",
+ "@octokit/types": "^12.0.0",
"universal-user-agent": "^7.0.2"
},
"engines": {
@@ -985,26 +1497,22 @@
}
},
"node_modules/@octokit/request-error": {
- "version": "6.1.1",
- "integrity": "sha512-1mw1gqT3fR/WFvnoVpY/zUM2o/XkMs/2AszUUG9I69xn0JFLv6PGkPhNk5lbfvROs79wiS0bqiJNxfCZcRJJdg==",
+ "version": "6.0.2",
+ "integrity": "sha512-WtRVpoHcNXs84+s9s/wqfHaxM68NGMg8Av7h59B50OVO0PwwMx+2GgQ/OliUd0iQBSNWgR6N8afi/KjSHbXHWw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "@octokit/types": "^13.0.0"
+ "@octokit/types": "^12.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/types": {
- "version": "13.5.0",
- "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
+ "version": "12.6.0",
+ "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "@octokit/openapi-types": "^22.2.0"
+ "@octokit/openapi-types": "^20.0.0"
}
},
"node_modules/@pkgjs/parseargs": {
@@ -1044,7 +1552,6 @@
"version": "5.2.12",
"integrity": "sha512-noXI64+4MFwXy32g2qO+x8v5pXgVeqaIC9RU23zs5hl3qh0dB+8hVXC1vhxPREvhxQHvx6ha8Qy0XhKOKHnwpQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@qiwi/substrate": "^2.0.4",
"@types/debug": "^4.1.10",
@@ -1065,45 +1572,41 @@
}
},
"node_modules/@qiwi/substrate": {
- "version": "2.1.0",
- "integrity": "sha512-F19fckn9+ztlPD0yogxoqWRRlGiLaSJcI+mqYWc8mzSwr4LFRJhwPkitmCPXluKxHeOT1IYQJacRMEWt5yA1AA==",
+ "version": "2.0.4",
+ "integrity": "sha512-MCJfVyqnc5gasdeAYWQnFo/P3eysvrQzrS5NB9g5WKMWBvAmBz6BkzOgMOGaHRgW0dkGsGT/iDu5c5sFhdISPQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@qiwi/substrate-abstract": "2.1.0",
- "@qiwi/substrate-std": "2.1.0",
- "@qiwi/substrate-types": "2.1.0",
- "tslib": "^2.6.2"
+ "@qiwi/substrate-abstract": "2.0.4",
+ "@qiwi/substrate-std": "2.0.4",
+ "@qiwi/substrate-types": "2.0.4",
+ "tslib": "^2.5.2"
}
},
"node_modules/@qiwi/substrate-abstract": {
- "version": "2.1.0",
- "integrity": "sha512-ZzvNT1kWLGLMBtnsTRNs+1WXl1m+z9RNDvhjFcX0whpCtYxYQW1iIfpTJ/UbxiZ4TAQW72ROtIXkob3MuXF31g==",
+ "version": "2.0.4",
+ "integrity": "sha512-QSVLvJnBWLMcfS5uSZhEv/027xGu9tCoMVKyAFo2OEoVXtKfs57JR8Ig92uYEhzzLPwVRhaF3wrbrISXgHuFTw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@qiwi/substrate-types": "2.1.0"
+ "@qiwi/substrate-types": "2.0.4"
}
},
"node_modules/@qiwi/substrate-std": {
- "version": "2.1.0",
- "integrity": "sha512-wqQF0g2ISnww4eggCfL4FJUemx7r07i1y8MVHo5qd7gG35LMjeWP0X05Ez/pyGsOxO+aaRxmm3iFSQMSrNCnyw==",
+ "version": "2.0.4",
+ "integrity": "sha512-0VQZ0kO3KjOBWaGsK1eSbBfdBFw7FIF76ZTelMOuyJr8o0beJGZvuGt382SpLrrf28HoxKc3ML/ZAHmcx7a1Zg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@qiwi/substrate-types": "2.1.0",
- "tslib": "^2.6.2"
+ "@qiwi/substrate-types": "2.0.4",
+ "tslib": "^2.5.2"
}
},
"node_modules/@qiwi/substrate-types": {
- "version": "2.1.0",
- "integrity": "sha512-WLPKeX61SNFTUDLpywY91MNKwR/+JN+KEqyYnCncjqEtlmDkuUn+FVWhzmbd4BUmF5PQ3icyQkppSCgrxcEBlg==",
- "dev": true,
- "license": "MIT"
+ "version": "2.0.4",
+ "integrity": "sha512-XXVPfaBoN27Lim/jClxy9ofCXAPkHMAb/PX/a/kqS3ijhOv0TbDqN34Ko4D9OCqLdEvhu1prYOhA58zlXtr8/g==",
+ "dev": true
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.18.0",
- "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==",
+ "version": "4.19.0",
+ "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==",
"cpu": [
"arm"
],
@@ -1115,8 +1618,8 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.18.0",
- "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==",
+ "version": "4.19.0",
+ "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==",
"cpu": [
"arm64"
],
@@ -1128,8 +1631,8 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.18.0",
- "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==",
+ "version": "4.19.0",
+ "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==",
"cpu": [
"arm64"
],
@@ -1141,8 +1644,8 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.18.0",
- "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==",
+ "version": "4.19.0",
+ "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==",
"cpu": [
"x64"
],
@@ -1154,8 +1657,8 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.18.0",
- "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==",
+ "version": "4.19.0",
+ "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==",
"cpu": [
"arm"
],
@@ -1167,8 +1670,8 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.18.0",
- "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==",
+ "version": "4.19.0",
+ "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==",
"cpu": [
"arm"
],
@@ -1180,8 +1683,8 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.18.0",
- "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==",
+ "version": "4.19.0",
+ "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==",
"cpu": [
"arm64"
],
@@ -1193,8 +1696,8 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.18.0",
- "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==",
+ "version": "4.19.0",
+ "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==",
"cpu": [
"arm64"
],
@@ -1206,8 +1709,8 @@
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.18.0",
- "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==",
+ "version": "4.19.0",
+ "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==",
"cpu": [
"ppc64"
],
@@ -1219,8 +1722,8 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.18.0",
- "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==",
+ "version": "4.19.0",
+ "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==",
"cpu": [
"riscv64"
],
@@ -1232,8 +1735,8 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.18.0",
- "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==",
+ "version": "4.19.0",
+ "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==",
"cpu": [
"s390x"
],
@@ -1245,8 +1748,8 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.18.0",
- "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==",
+ "version": "4.19.0",
+ "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==",
"cpu": [
"x64"
],
@@ -1258,8 +1761,8 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.18.0",
- "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==",
+ "version": "4.19.0",
+ "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==",
"cpu": [
"x64"
],
@@ -1271,8 +1774,8 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.18.0",
- "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==",
+ "version": "4.19.0",
+ "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==",
"cpu": [
"arm64"
],
@@ -1284,8 +1787,8 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.18.0",
- "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==",
+ "version": "4.19.0",
+ "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==",
"cpu": [
"ia32"
],
@@ -1297,8 +1800,8 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.18.0",
- "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==",
+ "version": "4.19.0",
+ "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==",
"cpu": [
"x64"
],
@@ -1309,6 +1812,17 @@
"win32"
]
},
+ "node_modules/@sebbo2002/semantic-release-jsr": {
+ "version": "1.0.0-develop.6",
+ "integrity": "sha512-SkSjF/NpTx9Fp0RYUu2XksEsGosu62Gbw6UpOVbSNWinUh+LY6202GU9uzS2WuxeGYEH1307y8SZZS4+QbAkag==",
+ "dev": true,
+ "dependencies": {
+ "jsr": "^0.12.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
"node_modules/@sec-ant/readable-stream": {
"version": "0.4.1",
"integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==",
@@ -1319,7 +1833,6 @@
"version": "6.0.3",
"integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@semantic-release/error": "^3.0.0",
"aggregate-error": "^3.0.0",
@@ -1342,16 +1855,13 @@
}
},
"node_modules/@semantic-release/commit-analyzer": {
- "version": "13.0.0",
- "integrity": "sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==",
+ "version": "12.0.0",
+ "integrity": "sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "conventional-changelog-angular": "^8.0.0",
- "conventional-changelog-writer": "^8.0.0",
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.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-esm": "^1.0.3",
"lodash-es": "^4.17.21",
@@ -1368,7 +1878,6 @@
"version": "4.0.0",
"integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=18"
}
@@ -1430,14 +1939,12 @@
}
},
"node_modules/@semantic-release/github": {
- "version": "10.0.7",
- "integrity": "sha512-J7JiFvOu/8QKqFF5FDTk/k19Z/Jku4LdDof/+LsjaGgLOISJR7TL66q89c2YXV6Dh5Jw5VmiT4uK4q6SSfbQGA==",
+ "version": "10.0.2",
+ "integrity": "sha512-SP5ihhv/uQa8vPuWKmbJrrzfv8lRUkDFC6qwgaWoorrflN1DEW0IGCa9w/PxUp8Ad3dbvXZPmpXdGiP3eyTzhg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"@octokit/core": "^6.0.0",
- "@octokit/plugin-paginate-rest": "^11.0.0",
+ "@octokit/plugin-paginate-rest": "^10.0.0",
"@octokit/plugin-retry": "^7.0.0",
"@octokit/plugin-throttling": "^9.0.0",
"@semantic-release/error": "^4.0.0",
@@ -1464,8 +1971,6 @@
"version": "5.0.0",
"integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"clean-stack": "^5.2.0",
"indent-string": "^5.0.0"
@@ -1481,8 +1986,6 @@
"version": "5.2.0",
"integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"escape-string-regexp": "5.0.0"
},
@@ -1497,8 +2000,6 @@
"version": "5.0.0",
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -1507,11 +2008,9 @@
}
},
"node_modules/@semantic-release/github/node_modules/globby": {
- "version": "14.0.2",
- "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==",
+ "version": "14.0.1",
+ "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"@sindresorhus/merge-streams": "^2.1.0",
"fast-glob": "^3.3.2",
@@ -1531,8 +2030,6 @@
"version": "5.0.0",
"integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -1544,8 +2041,6 @@
"version": "5.0.0",
"integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -1557,8 +2052,6 @@
"version": "5.1.0",
"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=14.16"
},
@@ -1609,7 +2102,6 @@
"version": "5.0.0",
"integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"clean-stack": "^5.2.0",
"indent-string": "^5.0.0"
@@ -1625,7 +2117,6 @@
"version": "5.2.0",
"integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"escape-string-regexp": "5.0.0"
},
@@ -1640,7 +2131,6 @@
"version": "5.0.0",
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -1703,7 +2193,6 @@
"version": "5.0.0",
"integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -1723,6 +2212,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@semantic-release/npm/node_modules/json-parse-even-better-errors": {
+ "version": "3.0.0",
+ "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/normalize-url": {
+ "version": "8.0.0",
+ "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@semantic-release/npm/node_modules/npm-run-path": {
"version": "5.3.0",
"integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
@@ -1739,13 +2247,13 @@
}
},
"node_modules/@semantic-release/npm/node_modules/parse-json": {
- "version": "8.1.0",
- "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==",
+ "version": "8.0.1",
+ "integrity": "sha512-soKUg/q/8bcfuF3+plsbYldE74cVEVEPSC1BUPIGTaX1byXdz6Fo+CVYBdH0jj/5xWsFrNRksl11QkBgHqPQeQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.22.13",
- "index-to-position": "^0.1.2",
+ "index-to-position": "^0.1.1",
+ "json-parse-even-better-errors": "^3.0.0",
"type-fest": "^4.7.1"
},
"engines": {
@@ -1768,16 +2276,14 @@
}
},
"node_modules/@semantic-release/npm/node_modules/read-pkg": {
- "version": "9.0.1",
- "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
+ "version": "9.0.0",
+ "integrity": "sha512-SBoBio4xhJmlF4xs9IBliWZGSbDAnrOfQkLGL7xB+RYEUZNAN2LlNkzO45B7gc7c2dLMX987bhHAaJ/LG3efeQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/normalize-package-data": "^2.4.3",
"normalize-package-data": "^6.0.0",
"parse-json": "^8.0.0",
- "type-fest": "^4.6.0",
- "unicorn-magic": "^0.1.0"
+ "type-fest": "^4.6.0"
},
"engines": {
"node": ">=18"
@@ -1810,26 +2316,35 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@semantic-release/npm/node_modules/type-fest": {
+ "version": "4.7.1",
+ "integrity": "sha512-iWr8RUmzAJRfhZugX9O7nZE6pCxDU8CZ3QxsLuTnGcBLJpCaP2ll3s4eMTBoFnU/CeXY/5rfQSuAEsTGJO4y8A==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@semantic-release/release-notes-generator": {
- "version": "14.0.1",
- "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==",
+ "version": "12.0.0",
+ "integrity": "sha512-m7Ds8ComP1KJgA2Lke2xMwE1TOOU40U7AzP4lT8hJ2tUAeicziPz/1GeDFmRkTOkMFlfHvE6kuvMkvU+mIzIDQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "conventional-changelog-angular": "^8.0.0",
- "conventional-changelog-writer": "^8.0.0",
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.0.0",
+ "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": "^7.0.0",
- "import-from-esm": "^1.0.3",
+ "import-from": "^4.0.0",
"into-stream": "^7.0.0",
"lodash-es": "^4.17.21",
- "read-package-up": "^11.0.0"
+ "read-pkg-up": "^10.0.0"
},
"engines": {
- "node": ">=20.8.1"
+ "node": "^18.17 || >=20.6.1"
},
"peerDependencies": {
"semantic-release": ">=20.1.0"
@@ -1839,8 +2354,6 @@
"version": "7.0.1",
"integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=16"
},
@@ -1849,8 +2362,8 @@
}
},
"node_modules/@shikijs/core": {
- "version": "1.10.3",
- "integrity": "sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg==",
+ "version": "1.11.0",
+ "integrity": "sha512-VbEhDAhT/2ozO0TPr5/ZQBO/NWLqtk4ZiBf6NplYpF38mKjNfMMied5fNEfIfYfN+cdKvhDB4VMcKvG/g9c3zg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1861,8 +2374,6 @@
"version": "4.6.0",
"integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=10"
},
@@ -1874,8 +2385,6 @@
"version": "2.3.0",
"integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=18"
},
@@ -1883,6 +2392,14 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@touch4it/ical-timezones": {
+ "version": "1.9.0",
+ "integrity": "sha512-UAiZMrFlgMdOIaJDPsKu5S7OecyMLr3GGALJTYkRgHmsHAA/8Ixm1qD09ELP2X7U1lqgrctEgvKj9GzMbczC+g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
"node_modules/@tsconfig/node10": {
"version": "1.0.8",
"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
@@ -1904,9 +2421,10 @@
"dev": true
},
"node_modules/@types/body-parser": {
- "version": "1.19.0",
- "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==",
+ "version": "1.19.5",
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/connect": "*",
"@types/node": "*"
@@ -1921,25 +2439,25 @@
}
},
"node_modules/@types/connect": {
- "version": "3.4.34",
- "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==",
+ "version": "3.4.38",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/debug": {
- "version": "4.1.12",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
+ "version": "4.1.10",
+ "integrity": "sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/ms": "*"
}
},
"node_modules/@types/eslint": {
- "version": "8.56.10",
- "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==",
+ "version": "9.6.0",
+ "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1997,14 +2515,12 @@
"node_modules/@types/gh-pages": {
"version": "6.1.0",
"integrity": "sha512-Ma9bmKkE+WUtywENLC1rSLXTW66cJHJMWX2RQrJTMKhYM8o+73bRJ1ebfo3RWXUcG+HW3khky2nhVaN7nCsa3Q==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/@types/git-url-parse": {
- "version": "9.0.3",
- "integrity": "sha512-Wrb8zeghhpKbYuqAOg203g+9YSNlrZWNZYvwxJuDF4dTmerijqpnGbI79yCuPtHSXHPEwv1pAFUB4zsSqn82Og==",
- "dev": true,
- "license": "MIT"
+ "version": "9.0.2",
+ "integrity": "sha512-WLeklQNHJVFaChgqO0GdlSxvTPIofIPz/rK2UJdDXkkCYZjy8nonkl4RwssvD/BbKYoFHcvJ7qlAE1RvYNaHOQ==",
+ "dev": true
},
"node_modules/@types/hast": {
"version": "3.0.4",
@@ -2015,6 +2531,12 @@
"@types/unist": "*"
}
},
+ "node_modules/@types/http-errors": {
+ "version": "2.0.4",
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.4",
"integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
@@ -2027,16 +2549,21 @@
"license": "MIT"
},
"node_modules/@types/lodash": {
- "version": "4.17.6",
- "integrity": "sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==",
- "dev": true,
- "license": "MIT"
+ "version": "4.14.200",
+ "integrity": "sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==",
+ "dev": true
},
- "node_modules/@types/mime": {
- "version": "1.3.2",
- "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
+ "node_modules/@types/luxon": {
+ "version": "3.4.2",
+ "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==",
"dev": true
},
+ "node_modules/@types/mime": {
+ "version": "1.3.5",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/mocha": {
"version": "10.0.7",
"integrity": "sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==",
@@ -2044,14 +2571,13 @@
"license": "MIT"
},
"node_modules/@types/ms": {
- "version": "0.7.34",
- "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
- "dev": true,
- "license": "MIT"
+ "version": "0.7.33",
+ "integrity": "sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==",
+ "dev": true
},
"node_modules/@types/node": {
- "version": "20.14.10",
- "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==",
+ "version": "20.14.11",
+ "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2059,10 +2585,9 @@
}
},
"node_modules/@types/normalize-package-data": {
- "version": "2.4.4",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true,
- "license": "MIT"
+ "version": "2.4.3",
+ "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==",
+ "dev": true
},
"node_modules/@types/qs": {
"version": "6.9.6",
@@ -2076,10 +2601,9 @@
"license": "MIT"
},
"node_modules/@types/semantic-release": {
- "version": "20.0.6",
- "integrity": "sha512-8YJXvsT1FwMrNdZI1e6NBHPzZWendDiUsLryzxurdup+9LnV3s9fF4NgO0D3LkBfLMnocb4Ax6TQ5yFdF3dXGQ==",
+ "version": "20.0.4",
+ "integrity": "sha512-9zjlWBYjlRKKOtCu7mEcUTu5Ii5nRAujRe841R6ZfwzhLFCa+BGMdWMImzXZDeVj0ODpI37pO0FSKpMiR7sdww==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -2088,8 +2612,7 @@
"version": "7.5.8",
"integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/@types/send": {
"version": "0.17.4",
@@ -2102,12 +2625,14 @@
}
},
"node_modules/@types/serve-static": {
- "version": "1.13.9",
- "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==",
+ "version": "1.15.7",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
+ "@types/http-errors": "*",
+ "@types/node": "*",
+ "@types/send": "*"
}
},
"node_modules/@types/unist": {
@@ -2117,31 +2642,59 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-WePtbzWMaQO4qtGAXp3zzEN8yYZCEuAHVCERCUXgoSUTQ80F5UB7T5lYyA9ySpFDB7rqJ2ev98DtnbS4U3Ms+w==",
+ "version": "7.3.1",
+ "integrity": "sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.0.0-alpha.41",
- "@typescript-eslint/type-utils": "8.0.0-alpha.41",
- "@typescript-eslint/utils": "8.0.0-alpha.41",
- "@typescript-eslint/visitor-keys": "8.0.0-alpha.41",
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "7.3.1",
+ "@typescript-eslint/type-utils": "7.3.1",
+ "@typescript-eslint/utils": "7.3.1",
+ "@typescript-eslint/visitor-keys": "7.3.1",
+ "debug": "^4.3.4",
"graphemer": "^1.4.0",
- "ignore": "^5.3.1",
+ "ignore": "^5.2.4",
"natural-compare": "^1.4.0",
- "ts-api-utils": "^1.3.0"
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
- "eslint": "^8.57.0 || ^9.0.0"
+ "@typescript-eslint/parser": "^7.0.0",
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": {
+ "version": "7.3.1",
+ "integrity": "sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "7.3.1",
+ "@typescript-eslint/utils": "7.3.1",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -2149,42 +2702,252 @@
}
}
},
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
+ "version": "7.3.1",
+ "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "7.3.1",
+ "@typescript-eslint/types": "7.3.1",
+ "@typescript-eslint/typescript-estree": "7.3.1",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ }
+ },
"node_modules/@typescript-eslint/parser": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-7HMXwy/q/59ZASBXz2FtdIsR7LgABrR8j2dTKq9GMR8OkjjdO4klxWSY/uOBozVt4UxlMRYsBdBDhEq4/tHRiw==",
+ "version": "7.3.1",
+ "integrity": "sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==",
"dev": true,
- "license": "BSD-2-Clause",
+ "peer": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "8.0.0-alpha.41",
- "@typescript-eslint/types": "8.0.0-alpha.41",
- "@typescript-eslint/typescript-estree": "8.0.0-alpha.41",
- "@typescript-eslint/visitor-keys": "8.0.0-alpha.41",
+ "@typescript-eslint/scope-manager": "7.3.1",
+ "@typescript-eslint/types": "7.3.1",
+ "@typescript-eslint/typescript-estree": "7.3.1",
+ "@typescript-eslint/visitor-keys": "7.3.1",
"debug": "^4.3.4"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "7.3.1",
+ "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.3.1",
+ "@typescript-eslint/visitor-keys": "7.3.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-KqU2e3KITMGlRfG4ehfO2zS0GutDWc+zV2nwbRDQdUfh1izgFDAh5UqiJ8YafXVzY1v0dnRggnmvjOMotjQa1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "8.0.0-alpha.51",
+ "@typescript-eslint/utils": "8.0.0-alpha.51",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-joqeu3jITe9BbgXAggKKg9mBIGDL6mAf2JVlo00zWP50u4qnsa3NWKMwWp77pjtI9E2DPU0vlTEdL+v/3aTPJA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-p3kD3rVdqmr4Iga86xzUR5wTsIKof/GsqnUMWZbmFpD3fmMXs1VLoXJegTqVMtWncu14dZUohRV2xPSScBAnxg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-bOLfR14nLfhO9BBD1YpmnQSTNTapAIegKsb4Ms1RAQXkJRKIeuLS42AEYRM8uvLiNLk0hDIBjCnMPTAyDAWLbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": {
+ "version": "9.0.5",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "7.3.1",
+ "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.3.1",
+ "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.3.1",
+ "@typescript-eslint/visitor-keys": "7.3.1",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.3",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-iNxuQ0TMVfFiMJ2al4bGd/mY9+aLtBxnHfo7B2xoVzR6cRFgUdBLlMa//MSIjSmVRpCEqNLQnkxpJb96tFG+xw==",
+ "node_modules/@typescript-eslint/utils": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-OJac7/t6M/jQlgAQSM2yffKXZL8d/6vTbQPChC5v4oGHFuKHF2dEFeevNJlIS9iR6EtquRsHup2GDwqw6bWyrw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.0.0-alpha.41",
- "@typescript-eslint/visitor-keys": "8.0.0-alpha.41"
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "8.0.0-alpha.51",
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/typescript-estree": "8.0.0-alpha.51"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2192,18 +2955,19 @@
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0"
}
},
- "node_modules/@typescript-eslint/type-utils": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-+QIA1z/jrox6bbvqlyqBQjotpevieLTycfiuoKuqGcKoskFZV5Rma51BV8LCJacnOafwJtSi+7b8zDo8OsXUvA==",
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-zT8Ib31deJCqRVJepZOMFoHiFAsSHOh5TmedcFeqyiMuzrqBMtF95iv6mPJqFDIXNgxmTkahpRan1z043ckBnA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.0.0-alpha.41",
- "@typescript-eslint/utils": "8.0.0-alpha.41",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2211,16 +2975,11 @@
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
}
},
- "node_modules/@typescript-eslint/types": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-n0P2FP3YC3pD3yoiCf4lHqbUP45xlnOk8HkjB+LtKSUZZWLLJ8k1ZXZtQj7MEX22tytCMj//Bmq403xFuCwfIg==",
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-joqeu3jITe9BbgXAggKKg9mBIGDL6mAf2JVlo00zWP50u4qnsa3NWKMwWp77pjtI9E2DPU0vlTEdL+v/3aTPJA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2231,14 +2990,14 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-adCr+vbLYTFhwhIwjIjjMxTdUYiPA2Jlyuhnbj092IzgLHtT79bvuwcgPWeTyLbFb/13SMKmOEka00xHiqLpig==",
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-p3kD3rVdqmr4Iga86xzUR5wTsIKof/GsqnUMWZbmFpD3fmMXs1VLoXJegTqVMtWncu14dZUohRV2xPSScBAnxg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/types": "8.0.0-alpha.41",
- "@typescript-eslint/visitor-keys": "8.0.0-alpha.41",
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -2259,7 +3018,24 @@
}
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-bOLfR14nLfhO9BBD1YpmnQSTNTapAIegKsb4Ms1RAQXkJRKIeuLS42AEYRM8uvLiNLk0hDIBjCnMPTAyDAWLbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": {
"version": "2.0.1",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
@@ -2268,7 +3044,7 @@
"balanced-match": "^1.0.0"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "node_modules/@typescript-eslint/utils/node_modules/minimatch": {
"version": "9.0.5",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
@@ -2283,73 +3059,27 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@typescript-eslint/utils": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-DTxc9VdERS6iloiw1P5tgRDqRArmp/sIuvgdHBvGh2SiltEFc3VjLGnHHGSTr6GfH7tjFWvcCnCtxx+pjWfp5Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.0.0-alpha.41",
- "@typescript-eslint/types": "8.0.0-alpha.41",
- "@typescript-eslint/typescript-estree": "8.0.0-alpha.41"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
- }
- },
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-uetCAUBVC+YarBdZnWzDDgX11PpAEGV8Cw31I3d1xNrhx6/bJGThKX+holEmd3amMdnr4w/XUKH/4YuQOgtjDA==",
+ "version": "7.3.1",
+ "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.0.0-alpha.41",
- "eslint-visitor-keys": "^3.4.3"
+ "@typescript-eslint/types": "7.3.1",
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
"node_modules/abbrev": {
"version": "1.1.1",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true
},
- "node_modules/accepts": {
- "version": "1.3.8",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/acorn": {
"version": "8.12.1",
"integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
@@ -2371,19 +3101,17 @@
}
},
"node_modules/acorn-walk": {
- "version": "8.2.0",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "version": "8.1.1",
+ "integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==",
"dev": true,
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/agent-base": {
- "version": "7.1.1",
- "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
+ "version": "7.1.0",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"debug": "^4.3.4"
},
@@ -2429,16 +3157,25 @@
}
},
"node_modules/ansi-escapes": {
- "version": "7.0.0",
- "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==",
+ "version": "6.2.0",
+ "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "environment": "^1.0.0"
+ "type-fest": "^3.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "3.13.1",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -2483,22 +3220,39 @@
"node": ">= 8"
}
},
+ "node_modules/append-transform": {
+ "version": "2.0.0",
+ "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
+ "dev": true,
+ "dependencies": {
+ "default-require-extensions": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/archy": {
+ "version": "1.0.0",
+ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
+ "dev": true
+ },
"node_modules/arg": {
"version": "4.1.3",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true
},
"node_modules/argparse": {
- "version": "2.0.1",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "version": "1.0.10",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
- "license": "Python-2.0"
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
},
"node_modules/argv-formatter": {
"version": "1.0.0",
"integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=",
- "dev": true,
- "peer": true
+ "dev": true
},
"node_modules/array-find-index": {
"version": "1.0.2",
@@ -2508,16 +3262,10 @@
"node": ">=0.10.0"
}
},
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
- },
"node_modules/array-ify": {
"version": "1.0.0",
"integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
- "dev": true,
- "license": "MIT",
- "peer": true
+ "dev": true
},
"node_modules/array-union": {
"version": "2.1.0",
@@ -2531,7 +3279,6 @@
"version": "1.0.3",
"integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -2541,12 +3288,6 @@
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
"dev": true
},
- "node_modules/async": {
- "version": "3.2.5",
- "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/asynckit": {
"version": "0.4.0",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
@@ -2560,9 +3301,7 @@
"node_modules/before-after-hook": {
"version": "3.0.2",
"integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true
+ "dev": true
},
"node_modules/binary-extensions": {
"version": "2.2.0",
@@ -2572,45 +3311,10 @@
"node": ">=8"
}
},
- "node_modules/body-parser": {
- "version": "1.20.2",
- "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/bottleneck": {
"version": "2.19.5",
"integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==",
- "dev": true,
- "license": "MIT",
- "peer": true
+ "dev": true
},
"node_modules/brace-expansion": {
"version": "1.1.11",
@@ -2622,11 +3326,11 @@
}
},
"node_modules/braces": {
- "version": "3.0.2",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -2637,84 +3341,182 @@
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
"dev": true
},
+ "node_modules/browserslist": {
+ "version": "4.16.6",
+ "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
+ "dev": true,
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001219",
+ "colorette": "^1.2.2",
+ "electron-to-chromium": "^1.3.723",
+ "escalade": "^3.1.1",
+ "node-releases": "^1.1.71"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ }
+ },
"node_modules/buffer-from": {
"version": "1.1.1",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
"dev": true
},
"node_modules/bundle-require": {
- "version": "4.0.1",
- "integrity": "sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==",
+ "version": "5.0.0",
+ "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "load-tsconfig": "^0.2.3"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "esbuild": ">=0.18"
+ }
+ },
+ "node_modules/c8": {
+ "version": "10.1.2",
+ "integrity": "sha512-Qr6rj76eSshu5CgRYvktW0uM0CFY0yi4Fd5D0duDXO6sYinyopmftUiJVuzBQxQcwQLor7JWDVRP+dUfCmzgJw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@istanbuljs/schema": "^0.1.3",
+ "find-up": "^5.0.0",
+ "foreground-child": "^3.1.1",
+ "istanbul-lib-coverage": "^3.2.0",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-reports": "^3.1.6",
+ "test-exclude": "^7.0.1",
+ "v8-to-istanbul": "^9.0.0",
+ "yargs": "^17.7.2",
+ "yargs-parser": "^21.1.1"
+ },
+ "bin": {
+ "c8": "bin/c8.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "monocart-coverage-reports": "^2"
+ },
+ "peerDependenciesMeta": {
+ "monocart-coverage-reports": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/c8/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/c8/node_modules/cliui": {
+ "version": "8.0.1",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/c8/node_modules/foreground-child": {
+ "version": "3.1.1",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/c8/node_modules/glob": {
+ "version": "10.4.5",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/c8/node_modules/minimatch": {
+ "version": "9.0.5",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "load-tsconfig": "^0.2.3"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=16 || 14 >=14.17"
},
- "peerDependencies": {
- "esbuild": ">=0.17"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/c8": {
- "version": "10.1.2",
- "integrity": "sha512-Qr6rj76eSshu5CgRYvktW0uM0CFY0yi4Fd5D0duDXO6sYinyopmftUiJVuzBQxQcwQLor7JWDVRP+dUfCmzgJw==",
+ "node_modules/c8/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@istanbuljs/schema": "^0.1.3",
- "find-up": "^5.0.0",
- "foreground-child": "^3.1.1",
- "istanbul-lib-coverage": "^3.2.0",
- "istanbul-lib-report": "^3.0.1",
- "istanbul-reports": "^3.1.6",
- "test-exclude": "^7.0.1",
- "v8-to-istanbul": "^9.0.0",
- "yargs": "^17.7.2",
- "yargs-parser": "^21.1.1"
- },
- "bin": {
- "c8": "bin/c8.js"
- },
"engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "monocart-coverage-reports": "^2"
+ "node": ">=14"
},
- "peerDependenciesMeta": {
- "monocart-coverage-reports": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/c8/node_modules/cliui": {
- "version": "8.0.1",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "node_modules/c8/node_modules/test-exclude": {
+ "version": "7.0.1",
+ "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==",
"dev": true,
"license": "ISC",
"dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^10.4.1",
+ "minimatch": "^9.0.4"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/c8/node_modules/yargs": {
"version": "17.7.2",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -2732,7 +3534,6 @@
"version": "21.1.1",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -2745,9 +3546,24 @@
"node": ">=8"
}
},
+ "node_modules/caching-transform": {
+ "version": "4.0.0",
+ "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
+ "dev": true,
+ "dependencies": {
+ "hasha": "^5.0.0",
+ "make-dir": "^3.0.0",
+ "package-hash": "^4.0.0",
+ "write-file-atomic": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/call-bind": {
"version": "1.0.2",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
"dependencies": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
@@ -2760,11 +3576,27 @@
"version": "3.1.0",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001237",
+ "integrity": "sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ }
+ },
"node_modules/caseless": {
"version": "0.12.0",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
@@ -2789,22 +3621,15 @@
"version": "1.0.2",
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=10"
}
},
"node_modules/chokidar": {
- "version": "3.5.3",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "version": "3.6.0",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
+ "license": "MIT",
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -2817,6 +3642,9 @@
"engines": {
"node": ">= 8.10.0"
},
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
"optionalDependencies": {
"fsevents": "~2.3.2"
}
@@ -2833,8 +3661,6 @@
"version": "2.1.11",
"integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==",
"dev": true,
- "license": "ISC",
- "peer": true,
"dependencies": {
"chalk": "^4.0.0",
"highlight.js": "^10.7.1",
@@ -2852,11 +3678,9 @@
}
},
"node_modules/cli-table3": {
- "version": "0.6.5",
- "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
+ "version": "0.6.3",
+ "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"string-width": "^4.2.0"
},
@@ -2893,6 +3717,11 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "node_modules/colorette": {
+ "version": "1.2.2",
+ "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
+ "dev": true
+ },
"node_modules/combined-stream": {
"version": "1.0.8",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
@@ -2905,26 +3734,22 @@
}
},
"node_modules/commander": {
- "version": "11.1.0",
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "version": "11.0.0",
+ "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=16"
}
},
"node_modules/commondir": {
"version": "1.0.1",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true,
- "license": "MIT"
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
},
"node_modules/compare-func": {
"version": "2.0.0",
"integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"array-ify": "^1.0.0",
"dot-prop": "^5.1.0"
@@ -2958,111 +3783,68 @@
"proto-list": "~1.2.1"
}
},
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-disposition/node_modules/safe-buffer": {
- "version": "5.2.1",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "node_modules/consola": {
+ "version": "3.2.3",
+ "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": "^14.18.0 || >=16.10.0"
}
},
"node_modules/conventional-changelog-angular": {
- "version": "8.0.0",
- "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==",
+ "version": "7.0.0",
+ "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
"dev": true,
- "license": "ISC",
- "peer": true,
"dependencies": {
"compare-func": "^2.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
}
},
"node_modules/conventional-changelog-writer": {
- "version": "8.0.0",
- "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==",
+ "version": "7.0.1",
+ "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "@types/semver": "^7.5.5",
- "conventional-commits-filter": "^5.0.0",
+ "conventional-commits-filter": "^4.0.0",
"handlebars": "^4.7.7",
- "meow": "^13.0.0",
- "semver": "^7.5.2"
+ "json-stringify-safe": "^5.0.1",
+ "meow": "^12.0.1",
+ "semver": "^7.5.2",
+ "split2": "^4.0.0"
},
"bin": {
- "conventional-changelog-writer": "dist/cli/index.js"
+ "conventional-changelog-writer": "cli.mjs"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
}
},
"node_modules/conventional-commits-filter": {
- "version": "5.0.0",
- "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==",
+ "version": "4.0.0",
+ "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
- "node": ">=18"
+ "node": ">=16"
}
},
"node_modules/conventional-commits-parser": {
- "version": "6.0.0",
- "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==",
+ "version": "5.0.0",
+ "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "meow": "^13.0.0"
+ "is-text-path": "^2.0.0",
+ "JSONStream": "^1.3.5",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
},
"bin": {
- "conventional-commits-parser": "dist/cli/index.js"
+ "conventional-commits-parser": "cli.mjs"
},
"engines": {
- "node": ">=18"
- }
- },
- "node_modules/convert-hrtime": {
- "version": "5.0.0",
- "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=16"
}
},
"node_modules/convert-source-map": {
@@ -3073,17 +3855,6 @@
"safe-buffer": "~5.1.1"
}
},
- "node_modules/cookie": {
- "version": "0.6.0",
- "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
- },
"node_modules/core-util-is": {
"version": "1.0.2",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
@@ -3093,8 +3864,6 @@
"version": "9.0.0",
"integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"env-paths": "^2.2.1",
"import-fresh": "^3.3.0",
@@ -3116,6 +3885,22 @@
}
}
},
+ "node_modules/cosmiconfig/node_modules/argparse": {
+ "version": "2.0.1",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/cosmiconfig/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/create-require": {
"version": "1.1.1",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
@@ -3138,7 +3923,6 @@
"version": "4.0.0",
"integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"type-fest": "^1.0.1"
},
@@ -3153,7 +3937,6 @@
"version": "1.4.0",
"integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -3161,6 +3944,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/dayjs": {
+ "version": "1.11.10",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==",
+ "dev": true
+ },
"node_modules/debug": {
"version": "4.3.5",
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
@@ -3186,6 +3974,14 @@
"node": "*"
}
},
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/deep-extend": {
"version": "0.6.0",
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
@@ -3197,8 +3993,18 @@
"node_modules/deep-is": {
"version": "0.1.4",
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "node_modules/default-require-extensions": {
+ "version": "3.0.0",
+ "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
"dev": true,
- "license": "MIT"
+ "dependencies": {
+ "strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/delayed-stream": {
"version": "1.0.0",
@@ -3208,21 +4014,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/depd": {
- "version": "2.0.0",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
"node_modules/dezalgo": {
"version": "1.0.3",
"integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
@@ -3256,8 +4047,6 @@
"version": "5.3.0",
"integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"is-obj": "^2.0.0"
},
@@ -3269,7 +4058,6 @@
"version": "0.1.4",
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
"dev": true,
- "peer": true,
"dependencies": {
"readable-stream": "^2.0.2"
}
@@ -3280,15 +4068,15 @@
"dev": true,
"license": "MIT"
},
- "node_modules/ee-first": {
- "version": "1.1.1",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ "node_modules/electron-to-chromium": {
+ "version": "1.3.752",
+ "integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==",
+ "dev": true
},
"node_modules/email-addresses": {
"version": "5.0.0",
"integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/emoji-regex": {
"version": "8.0.0",
@@ -3298,16 +4086,7 @@
"node_modules/emojilib": {
"version": "2.4.0",
"integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "engines": {
- "node": ">= 0.8"
- }
+ "dev": true
},
"node_modules/entities": {
"version": "4.5.0",
@@ -3325,8 +4104,6 @@
"version": "11.0.0",
"integrity": "sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"execa": "^8.0.0",
"java-properties": "^1.0.2"
@@ -3339,8 +4116,6 @@
"version": "8.0.1",
"integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^8.0.1",
@@ -3363,8 +4138,6 @@
"version": "8.0.1",
"integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=16"
},
@@ -3376,8 +4149,6 @@
"version": "5.0.0",
"integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
"dev": true,
- "license": "Apache-2.0",
- "peer": true,
"engines": {
"node": ">=16.17.0"
}
@@ -3386,8 +4157,6 @@
"version": "3.0.0",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -3399,8 +4168,6 @@
"version": "4.0.0",
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -3409,11 +4176,9 @@
}
},
"node_modules/env-ci/node_modules/npm-run-path": {
- "version": "5.3.0",
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "version": "5.2.0",
+ "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"path-key": "^4.0.0"
},
@@ -3427,9 +4192,7 @@
"node_modules/env-ci/node_modules/onetime": {
"version": "6.0.0",
"integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
+ "dev": true,
"dependencies": {
"mimic-fn": "^4.0.0"
},
@@ -3444,8 +4207,6 @@
"version": "4.0.0",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -3457,8 +4218,6 @@
"version": "4.1.0",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
- "license": "ISC",
- "peer": true,
"engines": {
"node": ">=14"
},
@@ -3470,8 +4229,6 @@
"version": "3.0.0",
"integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -3483,25 +4240,10 @@
"version": "2.2.1",
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=6"
}
},
- "node_modules/environment": {
- "version": "1.1.0",
- "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/error-ex": {
"version": "1.3.2",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
@@ -3510,9 +4252,14 @@
"is-arrayish": "^0.2.1"
}
},
+ "node_modules/es6-error": {
+ "version": "4.1.1",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
+ "dev": true
+ },
"node_modules/esbuild": {
- "version": "0.21.5",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "version": "0.23.0",
+ "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -3520,32 +4267,33 @@
"esbuild": "bin/esbuild"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
+ "@esbuild/aix-ppc64": "0.23.0",
+ "@esbuild/android-arm": "0.23.0",
+ "@esbuild/android-arm64": "0.23.0",
+ "@esbuild/android-x64": "0.23.0",
+ "@esbuild/darwin-arm64": "0.23.0",
+ "@esbuild/darwin-x64": "0.23.0",
+ "@esbuild/freebsd-arm64": "0.23.0",
+ "@esbuild/freebsd-x64": "0.23.0",
+ "@esbuild/linux-arm": "0.23.0",
+ "@esbuild/linux-arm64": "0.23.0",
+ "@esbuild/linux-ia32": "0.23.0",
+ "@esbuild/linux-loong64": "0.23.0",
+ "@esbuild/linux-mips64el": "0.23.0",
+ "@esbuild/linux-ppc64": "0.23.0",
+ "@esbuild/linux-riscv64": "0.23.0",
+ "@esbuild/linux-s390x": "0.23.0",
+ "@esbuild/linux-x64": "0.23.0",
+ "@esbuild/netbsd-x64": "0.23.0",
+ "@esbuild/openbsd-arm64": "0.23.0",
+ "@esbuild/openbsd-x64": "0.23.0",
+ "@esbuild/sunos-x64": "0.23.0",
+ "@esbuild/win32-arm64": "0.23.0",
+ "@esbuild/win32-ia32": "0.23.0",
+ "@esbuild/win32-x64": "0.23.0"
}
},
"node_modules/escalade": {
@@ -3558,7 +4306,8 @@
},
"node_modules/escape-html": {
"version": "1.0.3",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
},
"node_modules/escape-string-regexp": {
"version": "4.0.0",
@@ -3572,16 +4321,16 @@
}
},
"node_modules/eslint": {
- "version": "9.6.0",
- "integrity": "sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==",
+ "version": "9.7.0",
+ "integrity": "sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
+ "@eslint-community/regexpp": "^4.11.0",
"@eslint/config-array": "^0.17.0",
"@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "9.6.0",
+ "@eslint/js": "9.7.0",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.3.0",
"@nodelib/fs.walk": "^1.2.8",
@@ -3590,7 +4339,7 @@
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^8.0.1",
+ "eslint-scope": "^8.0.2",
"eslint-visitor-keys": "^4.0.0",
"espree": "^10.1.0",
"esquery": "^1.5.0",
@@ -3623,10 +4372,9 @@
}
},
"node_modules/eslint-compat-utils": {
- "version": "0.5.1",
- "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==",
+ "version": "0.5.0",
+ "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"semver": "^7.5.4"
},
@@ -3662,8 +4410,8 @@
}
},
"node_modules/eslint-scope": {
- "version": "8.0.1",
- "integrity": "sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==",
+ "version": "8.0.2",
+ "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -3677,29 +4425,15 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint-utils": {
- "version": "3.0.0",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^2.0.0"
- },
"engines": {
- "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=5"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "2.1.0",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true,
- "engines": {
- "node": ">=10"
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint/node_modules/eslint-visitor-keys": {
@@ -3754,7 +4488,6 @@
"version": "9.6.1",
"integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -3767,23 +4500,22 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
},
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "engines": {
+ "node": ">=4"
}
},
"node_modules/esquery": {
"version": "1.5.0",
"integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -3807,7 +4539,6 @@
"version": "5.3.0",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
- "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
@@ -3821,13 +4552,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/etag": {
- "version": "1.8.1",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/execa": {
"version": "5.1.1",
"integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
@@ -3850,75 +4574,6 @@
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/express": {
- "version": "4.19.2",
- "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.2",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.6.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "node_modules/express/node_modules/safe-buffer": {
- "version": "5.2.1",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
@@ -3929,7 +4584,6 @@
"version": "3.3.2",
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -3950,8 +4604,7 @@
"node_modules/fast-levenshtein": {
"version": "2.0.6",
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/fastq": {
"version": "1.13.0",
@@ -3980,7 +4633,6 @@
"version": "2.0.0",
"integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -4004,7 +4656,6 @@
"version": "2.0.0",
"integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -4013,7 +4664,6 @@
"version": "4.3.0",
"integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"filename-reserved-regex": "^2.0.0",
"strip-outer": "^1.0.1",
@@ -4027,8 +4677,8 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -4037,38 +4687,10 @@
"node": ">=8"
}
},
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/find-cache-dir": {
- "version": "3.3.2",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "version": "3.3.1",
+ "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -4100,8 +4722,6 @@
"version": "1.0.0",
"integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=18"
},
@@ -4110,17 +4730,14 @@
}
},
"node_modules/find-versions": {
- "version": "6.0.0",
- "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==",
+ "version": "5.1.0",
+ "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "semver-regex": "^4.0.5",
- "super-regex": "^1.0.0"
+ "semver-regex": "^4.0.5"
},
"engines": {
- "node": ">=18"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -4154,31 +4771,15 @@
"license": "ISC"
},
"node_modules/foreground-child": {
- "version": "3.2.1",
- "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
+ "version": "2.0.0",
+ "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
+ "signal-exit": "^3.0.2"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/foreground-child/node_modules/signal-exit": {
- "version": "4.1.0",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "license": "ISC",
"engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">=8.0.0"
}
},
"node_modules/form-data": {
@@ -4194,36 +4795,38 @@
"node": ">= 0.12"
}
},
- "node_modules/forwarded": {
- "version": "0.2.0",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/from2": {
"version": "2.3.0",
"integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"inherits": "^2.0.1",
"readable-stream": "^2.0.0"
}
},
+ "node_modules/fromentries": {
+ "version": "1.3.2",
+ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/fs-extra": {
- "version": "11.2.0",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+ "version": "11.1.1",
+ "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -4258,19 +4861,15 @@
},
"node_modules/function-bind": {
"version": "1.1.1",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
},
- "node_modules/function-timeout": {
- "version": "1.0.2",
- "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==",
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=6.9.0"
}
},
"node_modules/get-caller-file": {
@@ -4284,6 +4883,7 @@
"node_modules/get-intrinsic": {
"version": "1.1.1",
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "dev": true,
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
@@ -4293,6 +4893,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-package-type": {
+ "version": "0.1.0",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/get-stream": {
"version": "6.0.1",
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
@@ -4305,10 +4913,9 @@
}
},
"node_modules/gh-pages": {
- "version": "6.1.1",
- "integrity": "sha512-upnohfjBwN5hBP9w2dPE7HO5JJTHzSGMV1JrLrHvNuqmjoYHg6TBrCcnEoorjG/e0ejbuvnwyKMdTyM40PEByw==",
+ "version": "6.0.0",
+ "integrity": "sha512-FXZWJRsvP/fK2HJGY+Di6FRNHvqFF6gOIELaopDjXXgjeOYSNURcuYwEO/6bwuq6koP5Lnkvnr5GViXzuOB89g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"async": "^3.2.4",
"commander": "^11.0.0",
@@ -4330,7 +4937,6 @@
"version": "1.0.2",
"integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-uniq": "^1.0.1"
},
@@ -4338,11 +4944,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/gh-pages/node_modules/async": {
+ "version": "3.2.4",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+ "dev": true
+ },
"node_modules/gh-pages/node_modules/globby": {
"version": "6.1.0",
"integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-union": "^1.0.1",
"glob": "^7.0.3",
@@ -4358,7 +4968,6 @@
"version": "2.3.0",
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -4367,7 +4976,6 @@
"version": "1.2.0",
"integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=",
"dev": true,
- "peer": true,
"dependencies": {
"argv-formatter": "~1.0.0",
"spawn-error-forwarder": "~1.0.0",
@@ -4381,7 +4989,6 @@
"version": "1.0.0",
"integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=",
"dev": true,
- "peer": true,
"dependencies": {
"through2": "~2.0.0"
}
@@ -4390,7 +4997,6 @@
"version": "2.0.5",
"integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
"dev": true,
- "peer": true,
"dependencies": {
"readable-stream": "~2.3.6",
"xtend": "~4.0.1"
@@ -4400,7 +5006,6 @@
"version": "7.0.0",
"integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-ssh": "^1.4.0",
"parse-url": "^8.1.0"
@@ -4410,14 +5015,13 @@
"version": "14.0.0",
"integrity": "sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"git-up": "^7.0.0"
}
},
"node_modules/glob": {
- "version": "7.1.7",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "version": "7.2.0",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
@@ -4484,15 +5088,12 @@
"node_modules/graphemer": {
"version": "1.4.0",
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/handlebars": {
"version": "4.7.8",
"integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"minimist": "^1.2.5",
"neo-async": "^2.6.2",
@@ -4512,6 +5113,7 @@
"node_modules/has": {
"version": "1.0.3",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
"dependencies": {
"function-bind": "^1.1.1"
},
@@ -4530,6 +5132,7 @@
"node_modules/has-symbols": {
"version": "1.0.2",
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
+ "dev": true,
"engines": {
"node": ">= 0.4"
},
@@ -4537,6 +5140,29 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/hasha": {
+ "version": "5.2.2",
+ "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
+ "dev": true,
+ "dependencies": {
+ "is-stream": "^2.0.0",
+ "type-fest": "^0.8.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/hasha/node_modules/type-fest": {
+ "version": "0.8.1",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/he": {
"version": "1.2.0",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
@@ -4549,8 +5175,6 @@
"version": "10.7.3",
"integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
"dev": true,
- "license": "BSD-3-Clause",
- "peer": true,
"engines": {
"node": "*"
}
@@ -4559,8 +5183,6 @@
"version": "3.0.0",
"integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -4569,10 +5191,9 @@
}
},
"node_modules/hosted-git-info": {
- "version": "7.0.2",
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "version": "7.0.1",
+ "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^10.0.1"
},
@@ -4583,8 +5204,7 @@
"node_modules/html-escaper": {
"version": "2.0.2",
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/http-basic": {
"version": "8.1.3",
@@ -4600,26 +5220,10 @@
"node": ">=6.0.0"
}
},
- "node_modules/http-errors": {
- "version": "2.0.0",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/http-proxy-agent": {
"version": "7.0.2",
"integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
@@ -4642,11 +5246,9 @@
"dev": true
},
"node_modules/https-proxy-agent": {
- "version": "7.0.5",
- "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
+ "version": "7.0.4",
+ "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"agent-base": "^7.0.2",
"debug": "4"
@@ -4663,16 +5265,6 @@
"node": ">=10.17.0"
}
},
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/ignore": {
"version": "5.3.1",
"integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
@@ -4686,7 +5278,6 @@
"version": "3.3.0",
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -4698,12 +5289,21 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/import-from-esm": {
- "version": "1.3.4",
- "integrity": "sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==",
+ "node_modules/import-from": {
+ "version": "4.0.0",
+ "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-from-esm": {
+ "version": "1.3.3",
+ "integrity": "sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"debug": "^4.3.4",
"import-meta-resolve": "^4.0.0"
@@ -4713,11 +5313,9 @@
}
},
"node_modules/import-meta-resolve": {
- "version": "4.1.0",
- "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
+ "version": "4.0.0",
+ "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -4743,7 +5341,6 @@
"version": "0.1.2",
"integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -4762,7 +5359,8 @@
},
"node_modules/inherits": {
"version": "2.0.4",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
},
"node_modules/ini": {
"version": "1.3.8",
@@ -4773,8 +5371,6 @@
"version": "7.0.0",
"integrity": "sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"from2": "^2.3.0",
"p-is-promise": "^3.0.0"
@@ -4786,13 +5382,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/is-arrayish": {
"version": "0.2.1",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
@@ -4810,8 +5399,8 @@
}
},
"node_modules/is-core-module": {
- "version": "2.4.0",
- "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
+ "version": "2.12.0",
+ "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
"dev": true,
"dependencies": {
"has": "^1.0.3"
@@ -4859,8 +5448,6 @@
"version": "2.0.0",
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=8"
}
@@ -4889,7 +5476,6 @@
"version": "1.4.0",
"integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"protocols": "^2.0.1"
}
@@ -4902,6 +5488,22 @@
"node": ">=8"
}
},
+ "node_modules/is-text-path": {
+ "version": "2.0.0",
+ "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
+ "dev": true,
+ "dependencies": {
+ "text-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
"node_modules/is-unicode-supported": {
"version": "0.1.0",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
@@ -4913,6 +5515,14 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/isarray": {
"version": "1.0.0",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
@@ -4924,11 +5534,9 @@
"dev": true
},
"node_modules/issue-parser": {
- "version": "7.0.1",
- "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==",
+ "version": "7.0.0",
+ "integrity": "sha512-jgAw78HO3gs9UrKqJNQvfDj9Ouy8Mhu40fbEJ8yXff4MW8+/Fcn9iFjyWUQ6SKbX8ipPk3X5A3AyfYHRu6uVLw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"lodash.capitalize": "^4.2.1",
"lodash.escaperegexp": "^4.1.2",
@@ -4941,19 +5549,76 @@
}
},
"node_modules/istanbul-lib-coverage": {
- "version": "3.2.2",
- "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "version": "3.2.0",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">=8"
}
},
+ "node_modules/istanbul-lib-hook": {
+ "version": "3.0.0",
+ "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
+ "dev": true,
+ "dependencies": {
+ "append-transform": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "4.0.3",
+ "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.7.5",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.0.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/node_modules/semver": {
+ "version": "6.3.0",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/istanbul-lib-processinfo": {
+ "version": "2.0.2",
+ "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==",
+ "dev": true,
+ "dependencies": {
+ "archy": "^1.0.0",
+ "cross-spawn": "^7.0.0",
+ "istanbul-lib-coverage": "^3.0.0-alpha.1",
+ "make-dir": "^3.0.0",
+ "p-map": "^3.0.0",
+ "rimraf": "^3.0.0",
+ "uuid": "^3.3.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-processinfo/node_modules/uuid": {
+ "version": "3.4.0",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "dev": true,
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
"node_modules/istanbul-lib-report": {
"version": "3.0.1",
"integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^4.0.0",
@@ -4967,7 +5632,6 @@
"version": "4.0.0",
"integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"semver": "^7.5.3"
},
@@ -4978,11 +5642,23 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "4.0.0",
+ "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/istanbul-reports": {
- "version": "3.1.7",
- "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "version": "3.1.6",
+ "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"html-escaper": "^2.0.0",
"istanbul-lib-report": "^3.0.0"
@@ -4992,16 +5668,13 @@
}
},
"node_modules/jackspeak": {
- "version": "3.4.1",
- "integrity": "sha512-U23pQPDnmYybVkYjObcuYMk43VRlMLLqLI+RdZy8s8WV8WsxO9SnqSroKaluuvcNOdCAlauKszDwd+umbot5Mg==",
+ "version": "3.4.3",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
- "engines": {
- "node": ">=18"
- },
"funding": {
"url": "https://github.com/sponsors/isaacs"
},
@@ -5013,8 +5686,6 @@
"version": "1.0.2",
"integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">= 0.6.0"
}
@@ -5033,17 +5704,28 @@
"dev": true
},
"node_modules/js-yaml": {
- "version": "4.1.0",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "3.14.1",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "argparse": "^2.0.1"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/json-buffer": {
"version": "3.0.1",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
@@ -5053,8 +5735,7 @@
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
@@ -5077,27 +5758,32 @@
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"dev": true
},
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/jsonc-eslint-parser": {
- "version": "2.0.4",
- "integrity": "sha512-a3ZRus4qea0tSRCW2qvF/spFt7iCpdeJbiDjxbFZRZ87JCF8sI8hbxpVvUBVyZ3fLB/RQnTi+Y/yZbMlqt1BCg==",
+ "version": "2.1.0",
+ "integrity": "sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==",
"dev": true,
"dependencies": {
"acorn": "^8.5.0",
- "eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.0.0",
"espree": "^9.0.0",
"semver": "^7.3.5"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/jsonc-eslint-parser/node_modules/eslint-visitor-keys": {
- "version": "3.1.0",
- "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ota-meshi"
}
},
"node_modules/jsonfile": {
@@ -5111,6 +5797,41 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/jsonparse": {
+ "version": "1.3.1",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
+ "dev": true,
+ "engines": [
+ "node >= 0.2.0"
+ ]
+ },
+ "node_modules/JSONStream": {
+ "version": "1.3.5",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+ "dev": true,
+ "dependencies": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ },
+ "bin": {
+ "JSONStream": "bin.js"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jsr": {
+ "version": "0.12.2",
+ "integrity": "sha512-VjRK2vqfFxz6ml1NEbRLwD0+YAT90SXX9qKU+w1lytbAz7uaB4ewLxuuilr+R049OJ/p4MbWEvCRWISCjCZyfQ==",
+ "dev": true,
+ "dependencies": {
+ "kolorist": "^1.8.0",
+ "node-stream-zip": "^1.15.0"
+ },
+ "bin": {
+ "jsr": "dist/bin.js"
+ }
+ },
"node_modules/keyv": {
"version": "4.5.4",
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
@@ -5120,11 +5841,15 @@
"json-buffer": "3.0.1"
}
},
+ "node_modules/kolorist": {
+ "version": "1.8.0",
+ "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
+ "dev": true
+ },
"node_modules/levn": {
"version": "0.4.1",
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -5263,7 +5988,6 @@
"version": "4.0.0",
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
"dev": true,
- "peer": true,
"dependencies": {
"graceful-fs": "^4.1.2",
"parse-json": "^4.0.0",
@@ -5278,7 +6002,6 @@
"version": "4.0.0",
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
- "peer": true,
"dependencies": {
"error-ex": "^1.3.1",
"json-parse-better-errors": "^1.0.1"
@@ -5291,7 +6014,6 @@
"version": "3.0.0",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true,
- "peer": true,
"engines": {
"node": ">=4"
}
@@ -5300,6 +6022,7 @@
"version": "0.2.5",
"integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
@@ -5326,22 +6049,22 @@
"node_modules/lodash-es": {
"version": "4.17.21",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/lodash.capitalize": {
"version": "4.2.1",
"integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==",
- "dev": true,
- "license": "MIT",
- "peer": true
+ "dev": true
},
"node_modules/lodash.escaperegexp": {
"version": "4.1.2",
"integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
- "dev": true,
- "license": "MIT",
- "peer": true
+ "dev": true
+ },
+ "node_modules/lodash.flattendeep": {
+ "version": "4.4.0",
+ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
+ "dev": true
},
"node_modules/lodash.isempty": {
"version": "4.4.0",
@@ -5361,9 +6084,7 @@
"node_modules/lodash.isplainobject": {
"version": "4.0.6",
"integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "dev": true,
- "license": "MIT",
- "peer": true
+ "dev": true
},
"node_modules/lodash.isstring": {
"version": "4.0.1",
@@ -5383,9 +6104,7 @@
"node_modules/lodash.uniqby": {
"version": "4.7.0",
"integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==",
- "dev": true,
- "license": "MIT",
- "peer": true
+ "dev": true
},
"node_modules/log-symbols": {
"version": "4.1.0",
@@ -5414,24 +6133,28 @@
}
},
"node_modules/lru-cache": {
- "version": "10.3.1",
- "integrity": "sha512-9/8QXrtbGeMB6LxwQd4x1tIMnsmUxMvIH/qWGsccz6bt9Uln3S+sgAaqfQNhbGA8ufzs2fHuP/yqapGgP9Hh2g==",
+ "version": "10.4.3",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=18"
- }
+ "license": "ISC"
},
"node_modules/lunr": {
"version": "2.3.9",
"integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
"dev": true
},
+ "node_modules/luxon": {
+ "version": "3.4.4",
+ "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/make-dir": {
"version": "3.1.0",
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -5443,10 +6166,9 @@
}
},
"node_modules/make-dir/node_modules/semver": {
- "version": "6.3.1",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "version": "6.3.0",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
@@ -5473,30 +6195,33 @@
"markdown-it": "bin/markdown-it.mjs"
}
},
+ "node_modules/markdown-it/node_modules/argparse": {
+ "version": "2.0.1",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
"node_modules/marked": {
- "version": "12.0.2",
- "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==",
+ "version": "4.3.0",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
"dev": true,
- "license": "MIT",
"peer": true,
"bin": {
"marked": "bin/marked.js"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 12"
}
},
"node_modules/marked-terminal": {
- "version": "7.1.0",
- "integrity": "sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==",
+ "version": "7.0.0",
+ "integrity": "sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "ansi-escapes": "^7.0.0",
+ "ansi-escapes": "^6.2.0",
"chalk": "^5.3.0",
"cli-highlight": "^2.1.11",
- "cli-table3": "^0.6.5",
+ "cli-table3": "^0.6.3",
"node-emoji": "^2.1.3",
"supports-hyperlinks": "^3.0.0"
},
@@ -5504,15 +6229,13 @@
"node": ">=16.0.0"
},
"peerDependencies": {
- "marked": ">=1 <14"
+ "marked": ">=1 <13"
}
},
"node_modules/marked-terminal/node_modules/chalk": {
"version": "5.3.0",
"integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": "^12.17.0 || ^14.13 || >=16.0.0"
},
@@ -5526,30 +6249,17 @@
"dev": true,
"license": "MIT"
},
- "node_modules/media-typer": {
- "version": "0.3.0",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/meow": {
- "version": "13.2.0",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "version": "12.1.1",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
- "node": ">=18"
+ "node": ">=16.10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
- },
"node_modules/merge-stream": {
"version": "2.0.0",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
@@ -5563,13 +6273,6 @@
"node": ">= 8"
}
},
- "node_modules/methods": {
- "version": "1.1.2",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/micromatch": {
"version": "4.0.4",
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
@@ -5583,14 +6286,12 @@
}
},
"node_modules/mime": {
- "version": "4.0.4",
- "integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==",
+ "version": "4.0.1",
+ "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==",
"dev": true,
"funding": [
"https://github.com/sponsors/broofa"
],
- "license": "MIT",
- "peer": true,
"bin": {
"mime": "bin/cli.js"
},
@@ -5599,17 +6300,19 @@
}
},
"node_modules/mime-db": {
- "version": "1.52.0",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "version": "1.48.0",
+ "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==",
+ "dev": true,
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
- "version": "2.1.35",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "version": "2.1.31",
+ "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==",
+ "dev": true,
"dependencies": {
- "mime-db": "1.52.0"
+ "mime-db": "1.48.0"
},
"engines": {
"node": ">= 0.6"
@@ -5649,19 +6352,19 @@
}
},
"node_modules/mkdirp": {
- "version": "0.5.5",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "version": "0.5.6",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"dev": true,
"dependencies": {
- "minimist": "^1.2.5"
+ "minimist": "^1.2.6"
},
"bin": {
"mkdirp": "bin/cmd.js"
}
},
"node_modules/mocha": {
- "version": "10.6.0",
- "integrity": "sha512-hxjt4+EEB0SA0ZDygSS015t65lJw/I2yRCS3Ae+SJ5FrbzrXgfYwJr96f0OvIXdj7h4lv/vLCrH3rkiuizFSvw==",
+ "version": "10.7.0",
+ "integrity": "sha512-v8/rBWr2VO5YkspYINnvu81inSz2y3ODJrhO175/Exzor1RcEZZkizgE2A+w/CAXXoESS8Kys5E62dOHGHzULA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5694,11 +6397,15 @@
"node": ">= 14.0.0"
}
},
+ "node_modules/mocha/node_modules/argparse": {
+ "version": "2.0.1",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
"node_modules/mocha/node_modules/brace-expansion": {
"version": "2.0.1",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -5706,9 +6413,7 @@
"node_modules/mocha/node_modules/glob": {
"version": "8.1.0",
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
- "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -5723,6 +6428,17 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/mocha/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/mocha/node_modules/minimatch": {
"version": "5.1.6",
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
@@ -5805,8 +6521,8 @@
}
},
"node_modules/mochawesome-report-generator/node_modules/fs-extra": {
- "version": "10.1.0",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "version": "10.0.1",
+ "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -5818,8 +6534,8 @@
}
},
"node_modules/mochawesome-report-generator/node_modules/yargs": {
- "version": "17.5.1",
- "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
+ "version": "17.4.0",
+ "integrity": "sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==",
"dev": true,
"dependencies": {
"cliui": "^7.0.2",
@@ -5839,7 +6555,26 @@
"integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
"dev": true,
"engines": {
- "node": ">=12"
+ "node": ">=12"
+ }
+ },
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/moment-timezone": {
+ "version": "0.5.45",
+ "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==",
+ "dev": true,
+ "dependencies": {
+ "moment": "^2.29.4"
+ },
+ "engines": {
+ "node": "*"
}
},
"node_modules/ms": {
@@ -5862,31 +6597,20 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
- "node_modules/negotiator": {
- "version": "0.6.3",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/neo-async": {
"version": "2.6.2",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true,
- "license": "MIT",
- "peer": true
+ "dev": true
},
"node_modules/nerf-dart": {
"version": "1.0.0",
- "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==",
+ "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=",
"dev": true
},
"node_modules/node-emoji": {
"version": "2.1.3",
"integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"@sindresorhus/is": "^4.6.0",
"char-regex": "^1.0.2",
@@ -5897,6 +6621,34 @@
"node": ">=18"
}
},
+ "node_modules/node-preload": {
+ "version": "0.2.1",
+ "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
+ "dev": true,
+ "dependencies": {
+ "process-on-spawn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "1.1.73",
+ "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
+ "dev": true
+ },
+ "node_modules/node-stream-zip": {
+ "version": "1.15.0",
+ "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/antelle"
+ }
+ },
"node_modules/nopt": {
"version": "4.0.3",
"integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
@@ -5910,12 +6662,12 @@
}
},
"node_modules/normalize-package-data": {
- "version": "6.0.2",
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
+ "version": "6.0.0",
+ "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^7.0.0",
+ "is-core-module": "^2.8.1",
"semver": "^7.3.5",
"validate-npm-package-license": "^3.0.4"
},
@@ -5931,21 +6683,9 @@
"node": ">=0.10.0"
}
},
- "node_modules/normalize-url": {
- "version": "8.0.1",
- "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/npm": {
- "version": "10.8.1",
- "integrity": "sha512-Dp1C6SvSMYQI7YHq/y2l94uvI+59Eqbu1EpuKQHQ8p16txXRuRit5gH3Lnaagk2aXDIjg/Iru9pd05bnneKgdw==",
+ "version": "10.5.0",
+ "integrity": "sha512-Ejxwvfh9YnWVU2yA5FzoYLTW52vxHCz+MHrOFg9Cc8IFgF/6f5AGPAvb5WTay5DIUP1NIfN3VBZ0cLlGO0Ys+A==",
"bundleDependencies": [
"@isaacs/string-locale-compare",
"@npmcli/arborist",
@@ -5954,7 +6694,6 @@
"@npmcli/map-workspaces",
"@npmcli/package-json",
"@npmcli/promise-spawn",
- "@npmcli/redact",
"@npmcli/run-script",
"@sigstore/tuf",
"abbrev",
@@ -5963,6 +6702,8 @@
"chalk",
"ci-info",
"cli-columns",
+ "cli-table3",
+ "columnify",
"fastest-levenshtein",
"fs-minipass",
"glob",
@@ -5998,6 +6739,7 @@
"npm-profile",
"npm-registry-fetch",
"npm-user-validate",
+ "npmlog",
"p-map",
"pacote",
"parse-conflict-json",
@@ -6017,81 +6759,75 @@
"write-file-atomic"
],
"dev": true,
- "license": "Artistic-2.0",
- "workspaces": [
- "docs",
- "smoke-tests",
- "mock-globals",
- "mock-registry",
- "workspaces/*"
- ],
"dependencies": {
"@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/arborist": "^7.5.3",
- "@npmcli/config": "^8.3.3",
- "@npmcli/fs": "^3.1.1",
- "@npmcli/map-workspaces": "^3.0.6",
- "@npmcli/package-json": "^5.1.1",
- "@npmcli/promise-spawn": "^7.0.2",
- "@npmcli/redact": "^2.0.0",
- "@npmcli/run-script": "^8.1.0",
- "@sigstore/tuf": "^2.3.4",
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/config": "^8.0.2",
+ "@npmcli/fs": "^3.1.0",
+ "@npmcli/map-workspaces": "^3.0.4",
+ "@npmcli/package-json": "^5.0.0",
+ "@npmcli/promise-spawn": "^7.0.1",
+ "@npmcli/run-script": "^7.0.4",
+ "@sigstore/tuf": "^2.3.1",
"abbrev": "^2.0.0",
"archy": "~1.0.0",
- "cacache": "^18.0.3",
+ "cacache": "^18.0.2",
"chalk": "^5.3.0",
"ci-info": "^4.0.0",
"cli-columns": "^4.0.0",
+ "cli-table3": "^0.6.3",
+ "columnify": "^1.6.0",
"fastest-levenshtein": "^1.0.16",
"fs-minipass": "^3.0.3",
- "glob": "^10.4.1",
+ "glob": "^10.3.10",
"graceful-fs": "^4.2.11",
- "hosted-git-info": "^7.0.2",
- "ini": "^4.1.3",
- "init-package-json": "^6.0.3",
- "is-cidr": "^5.1.0",
- "json-parse-even-better-errors": "^3.0.2",
- "libnpmaccess": "^8.0.6",
- "libnpmdiff": "^6.1.3",
- "libnpmexec": "^8.1.2",
- "libnpmfund": "^5.0.11",
- "libnpmhook": "^10.0.5",
- "libnpmorg": "^6.0.6",
- "libnpmpack": "^7.0.3",
- "libnpmpublish": "^9.0.9",
- "libnpmsearch": "^7.0.6",
- "libnpmteam": "^6.0.5",
- "libnpmversion": "^6.0.3",
- "make-fetch-happen": "^13.0.1",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.1",
+ "hosted-git-info": "^7.0.1",
+ "ini": "^4.1.1",
+ "init-package-json": "^6.0.0",
+ "is-cidr": "^5.0.3",
+ "json-parse-even-better-errors": "^3.0.1",
+ "libnpmaccess": "^8.0.1",
+ "libnpmdiff": "^6.0.3",
+ "libnpmexec": "^7.0.4",
+ "libnpmfund": "^5.0.1",
+ "libnpmhook": "^10.0.0",
+ "libnpmorg": "^6.0.1",
+ "libnpmpack": "^6.0.3",
+ "libnpmpublish": "^9.0.2",
+ "libnpmsearch": "^7.0.0",
+ "libnpmteam": "^6.0.0",
+ "libnpmversion": "^5.0.1",
+ "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": "^10.1.0",
- "nopt": "^7.2.1",
- "normalize-package-data": "^6.0.1",
+ "node-gyp": "^10.0.1",
+ "nopt": "^7.2.0",
+ "normalize-package-data": "^6.0.0",
"npm-audit-report": "^5.0.0",
"npm-install-checks": "^6.3.0",
- "npm-package-arg": "^11.0.2",
- "npm-pick-manifest": "^9.0.1",
- "npm-profile": "^10.0.0",
- "npm-registry-fetch": "^17.0.1",
- "npm-user-validate": "^2.0.1",
+ "npm-package-arg": "^11.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-profile": "^9.0.0",
+ "npm-registry-fetch": "^16.1.0",
+ "npm-user-validate": "^2.0.0",
+ "npmlog": "^7.0.1",
"p-map": "^4.0.0",
- "pacote": "^18.0.6",
+ "pacote": "^17.0.6",
"parse-conflict-json": "^3.0.1",
- "proc-log": "^4.2.0",
+ "proc-log": "^3.0.0",
"qrcode-terminal": "^0.12.0",
- "read": "^3.0.1",
- "semver": "^7.6.2",
- "spdx-expression-parse": "^4.0.0",
- "ssri": "^10.0.6",
+ "read": "^2.1.0",
+ "semver": "^7.6.0",
+ "spdx-expression-parse": "^3.0.1",
+ "ssri": "^10.0.5",
"supports-color": "^9.4.0",
- "tar": "^6.2.1",
+ "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.1",
+ "validate-npm-package-name": "^5.0.0",
"which": "^4.0.0",
"write-file-atomic": "^5.0.1"
},
@@ -6119,6 +6855,16 @@
"node": ">=8"
}
},
+ "node_modules/npm/node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
"node_modules/npm/node_modules/@isaacs/cliui": {
"version": "8.0.2",
"dev": true,
@@ -6193,7 +6939,7 @@
"license": "ISC"
},
"node_modules/npm/node_modules/@npmcli/agent": {
- "version": "2.2.2",
+ "version": "2.2.1",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6202,51 +6948,49 @@
"http-proxy-agent": "^7.0.0",
"https-proxy-agent": "^7.0.1",
"lru-cache": "^10.0.1",
- "socks-proxy-agent": "^8.0.3"
+ "socks-proxy-agent": "^8.0.1"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/@npmcli/arborist": {
- "version": "7.5.3",
+ "version": "7.4.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/fs": "^3.1.1",
- "@npmcli/installed-package-contents": "^2.1.0",
+ "@npmcli/fs": "^3.1.0",
+ "@npmcli/installed-package-contents": "^2.0.2",
"@npmcli/map-workspaces": "^3.0.2",
- "@npmcli/metavuln-calculator": "^7.1.1",
+ "@npmcli/metavuln-calculator": "^7.0.0",
"@npmcli/name-from-folder": "^2.0.0",
"@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^5.1.0",
+ "@npmcli/package-json": "^5.0.0",
"@npmcli/query": "^3.1.0",
- "@npmcli/redact": "^2.0.0",
- "@npmcli/run-script": "^8.1.0",
- "bin-links": "^4.0.4",
- "cacache": "^18.0.3",
+ "@npmcli/run-script": "^7.0.2",
+ "bin-links": "^4.0.1",
+ "cacache": "^18.0.0",
"common-ancestor-path": "^1.0.1",
- "hosted-git-info": "^7.0.2",
- "json-parse-even-better-errors": "^3.0.2",
+ "hosted-git-info": "^7.0.1",
+ "json-parse-even-better-errors": "^3.0.0",
"json-stringify-nice": "^1.1.4",
- "lru-cache": "^10.2.2",
- "minimatch": "^9.0.4",
- "nopt": "^7.2.1",
+ "minimatch": "^9.0.0",
+ "nopt": "^7.0.0",
"npm-install-checks": "^6.2.0",
- "npm-package-arg": "^11.0.2",
- "npm-pick-manifest": "^9.0.1",
- "npm-registry-fetch": "^17.0.1",
- "pacote": "^18.0.6",
+ "npm-package-arg": "^11.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-registry-fetch": "^16.0.0",
+ "npmlog": "^7.0.1",
+ "pacote": "^17.0.4",
"parse-conflict-json": "^3.0.0",
- "proc-log": "^4.2.0",
- "proggy": "^2.0.0",
+ "proc-log": "^3.0.0",
"promise-all-reject-late": "^1.0.0",
"promise-call-limit": "^3.0.1",
"read-package-json-fast": "^3.0.2",
"semver": "^7.3.7",
- "ssri": "^10.0.6",
+ "ssri": "^10.0.5",
"treeverse": "^3.0.0",
"walk-up-path": "^3.0.1"
},
@@ -6258,16 +7002,16 @@
}
},
"node_modules/npm/node_modules/@npmcli/config": {
- "version": "8.3.3",
+ "version": "8.2.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"@npmcli/map-workspaces": "^3.0.2",
"ci-info": "^4.0.0",
- "ini": "^4.1.2",
- "nopt": "^7.2.1",
- "proc-log": "^4.2.0",
+ "ini": "^4.1.0",
+ "nopt": "^7.0.0",
+ "proc-log": "^3.0.0",
"read-package-json-fast": "^3.0.2",
"semver": "^7.3.5",
"walk-up-path": "^3.0.1"
@@ -6276,8 +7020,35 @@
"node": "^16.14.0 || >=18.0.0"
}
},
+ "node_modules/npm/node_modules/@npmcli/disparity-colors": {
+ "version": "3.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "ansi-styles": "^4.3.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/disparity-colors/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
"node_modules/npm/node_modules/@npmcli/fs": {
- "version": "3.1.1",
+ "version": "3.1.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6289,7 +7060,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/git": {
- "version": "5.0.7",
+ "version": "5.0.4",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6297,7 +7068,7 @@
"@npmcli/promise-spawn": "^7.0.0",
"lru-cache": "^10.0.1",
"npm-pick-manifest": "^9.0.0",
- "proc-log": "^4.0.0",
+ "proc-log": "^3.0.0",
"promise-inflight": "^1.0.1",
"promise-retry": "^2.0.1",
"semver": "^7.3.5",
@@ -6308,7 +7079,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/installed-package-contents": {
- "version": "2.1.0",
+ "version": "2.0.2",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6317,14 +7088,14 @@
"npm-normalize-package-bin": "^3.0.0"
},
"bin": {
- "installed-package-contents": "bin/index.js"
+ "installed-package-contents": "lib/index.js"
},
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/@npmcli/map-workspaces": {
- "version": "3.0.6",
+ "version": "3.0.4",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6339,15 +7110,14 @@
}
},
"node_modules/npm/node_modules/@npmcli/metavuln-calculator": {
- "version": "7.1.1",
+ "version": "7.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"cacache": "^18.0.0",
"json-parse-even-better-errors": "^3.0.0",
- "pacote": "^18.0.0",
- "proc-log": "^4.1.0",
+ "pacote": "^17.0.0",
"semver": "^7.3.5"
},
"engines": {
@@ -6373,7 +7143,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/package-json": {
- "version": "5.1.1",
+ "version": "5.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6383,7 +7153,7 @@
"hosted-git-info": "^7.0.0",
"json-parse-even-better-errors": "^3.0.0",
"normalize-package-data": "^6.0.0",
- "proc-log": "^4.0.0",
+ "proc-log": "^3.0.0",
"semver": "^7.5.3"
},
"engines": {
@@ -6391,7 +7161,7 @@
}
},
"node_modules/npm/node_modules/@npmcli/promise-spawn": {
- "version": "7.0.2",
+ "version": "7.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6414,17 +7184,8 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/@npmcli/redact": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
"node_modules/npm/node_modules/@npmcli/run-script": {
- "version": "8.1.0",
+ "version": "7.0.4",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6433,7 +7194,6 @@
"@npmcli/package-json": "^5.0.0",
"@npmcli/promise-spawn": "^7.0.0",
"node-gyp": "^10.0.0",
- "proc-log": "^4.0.0",
"which": "^4.0.0"
},
"engines": {
@@ -6451,19 +7211,19 @@
}
},
"node_modules/npm/node_modules/@sigstore/bundle": {
- "version": "2.3.2",
+ "version": "2.2.0",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"dependencies": {
- "@sigstore/protobuf-specs": "^0.3.2"
+ "@sigstore/protobuf-specs": "^0.3.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/@sigstore/core": {
- "version": "1.1.0",
+ "version": "1.0.0",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
@@ -6472,53 +7232,51 @@
}
},
"node_modules/npm/node_modules/@sigstore/protobuf-specs": {
- "version": "0.3.2",
+ "version": "0.3.0",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/@sigstore/sign": {
- "version": "2.3.2",
+ "version": "2.2.3",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"dependencies": {
- "@sigstore/bundle": "^2.3.2",
+ "@sigstore/bundle": "^2.2.0",
"@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "make-fetch-happen": "^13.0.1",
- "proc-log": "^4.2.0",
- "promise-retry": "^2.0.1"
+ "@sigstore/protobuf-specs": "^0.3.0",
+ "make-fetch-happen": "^13.0.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/@sigstore/tuf": {
- "version": "2.3.4",
+ "version": "2.3.1",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"dependencies": {
- "@sigstore/protobuf-specs": "^0.3.2",
- "tuf-js": "^2.2.1"
+ "@sigstore/protobuf-specs": "^0.3.0",
+ "tuf-js": "^2.2.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/@sigstore/verify": {
- "version": "1.2.1",
+ "version": "1.1.0",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"dependencies": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.1.0",
- "@sigstore/protobuf-specs": "^0.3.2"
+ "@sigstore/bundle": "^2.2.0",
+ "@sigstore/core": "^1.0.0",
+ "@sigstore/protobuf-specs": "^0.3.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
@@ -6534,13 +7292,13 @@
}
},
"node_modules/npm/node_modules/@tufjs/models": {
- "version": "2.0.1",
+ "version": "2.0.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
"@tufjs/canonical-json": "2.0.0",
- "minimatch": "^9.0.4"
+ "minimatch": "^9.0.3"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
@@ -6556,7 +7314,7 @@
}
},
"node_modules/npm/node_modules/agent-base": {
- "version": "7.1.1",
+ "version": "7.1.0",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -6613,6 +7371,15 @@
"inBundle": true,
"license": "MIT"
},
+ "node_modules/npm/node_modules/are-we-there-yet": {
+ "version": "4.0.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/npm/node_modules/balanced-match": {
"version": "1.0.2",
"dev": true,
@@ -6620,7 +7387,7 @@
"license": "MIT"
},
"node_modules/npm/node_modules/bin-links": {
- "version": "4.0.4",
+ "version": "4.0.3",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6635,15 +7402,12 @@
}
},
"node_modules/npm/node_modules/binary-extensions": {
- "version": "2.3.0",
+ "version": "2.2.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/npm/node_modules/brace-expansion": {
@@ -6655,8 +7419,17 @@
"balanced-match": "^1.0.0"
}
},
+ "node_modules/npm/node_modules/builtins": {
+ "version": "5.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.0.0"
+ }
+ },
"node_modules/npm/node_modules/cacache": {
- "version": "18.0.3",
+ "version": "18.0.2",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6715,7 +7488,7 @@
}
},
"node_modules/npm/node_modules/cidr-regex": {
- "version": "4.1.1",
+ "version": "4.0.3",
"dev": true,
"inBundle": true,
"license": "BSD-2-Clause",
@@ -6748,8 +7521,32 @@
"node": ">= 10"
}
},
+ "node_modules/npm/node_modules/cli-table3": {
+ "version": "0.6.3",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": "10.* || >= 12.*"
+ },
+ "optionalDependencies": {
+ "@colors/colors": "1.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/clone": {
+ "version": "1.0.4",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/npm/node_modules/cmd-shim": {
- "version": "6.0.3",
+ "version": "6.0.2",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6775,12 +7572,40 @@
"inBundle": true,
"license": "MIT"
},
+ "node_modules/npm/node_modules/color-support": {
+ "version": "1.1.3",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "bin": {
+ "color-support": "bin.js"
+ }
+ },
+ "node_modules/npm/node_modules/columnify": {
+ "version": "1.6.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "strip-ansi": "^6.0.1",
+ "wcwidth": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/npm/node_modules/common-ancestor-path": {
"version": "1.0.1",
"dev": true,
"inBundle": true,
"license": "ISC"
},
+ "node_modules/npm/node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC"
+ },
"node_modules/npm/node_modules/cross-spawn": {
"version": "7.0.3",
"dev": true,
@@ -6845,6 +7670,18 @@
"inBundle": true,
"license": "MIT"
},
+ "node_modules/npm/node_modules/defaults": {
+ "version": "1.0.4",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/npm/node_modules/diff": {
"version": "5.2.0",
"dev": true,
@@ -6943,23 +7780,42 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/npm/node_modules/gauge": {
+ "version": "5.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^1.0.3 || ^2.0.0",
+ "color-support": "^1.1.3",
+ "console-control-strings": "^1.1.0",
+ "has-unicode": "^2.0.1",
+ "signal-exit": "^4.0.1",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.5"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/npm/node_modules/glob": {
- "version": "10.4.1",
+ "version": "10.3.10",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "path-scurry": "^1.11.1"
+ "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.18"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -6971,8 +7827,14 @@
"inBundle": true,
"license": "ISC"
},
+ "node_modules/npm/node_modules/has-unicode": {
+ "version": "2.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC"
+ },
"node_modules/npm/node_modules/hasown": {
- "version": "2.0.2",
+ "version": "2.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -6984,7 +7846,7 @@
}
},
"node_modules/npm/node_modules/hosted-git-info": {
- "version": "7.0.2",
+ "version": "7.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7041,7 +7903,7 @@
}
},
"node_modules/npm/node_modules/ignore-walk": {
- "version": "6.0.5",
+ "version": "6.0.4",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7071,7 +7933,7 @@
}
},
"node_modules/npm/node_modules/ini": {
- "version": "4.1.3",
+ "version": "4.1.1",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7080,15 +7942,15 @@
}
},
"node_modules/npm/node_modules/init-package-json": {
- "version": "6.0.3",
+ "version": "6.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/package-json": "^5.0.0",
"npm-package-arg": "^11.0.0",
"promzard": "^1.0.0",
- "read": "^3.0.1",
+ "read": "^2.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"
@@ -7110,6 +7972,12 @@
"node": ">= 12"
}
},
+ "node_modules/npm/node_modules/ip-address/node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "dev": true,
+ "inBundle": true,
+ "license": "BSD-3-Clause"
+ },
"node_modules/npm/node_modules/ip-regex": {
"version": "5.0.0",
"dev": true,
@@ -7123,12 +7991,12 @@
}
},
"node_modules/npm/node_modules/is-cidr": {
- "version": "5.1.0",
+ "version": "5.0.3",
"dev": true,
"inBundle": true,
"license": "BSD-2-Clause",
"dependencies": {
- "cidr-regex": "^4.1.1"
+ "cidr-regex": "4.0.3"
},
"engines": {
"node": ">=14"
@@ -7168,7 +8036,7 @@
"license": "ISC"
},
"node_modules/npm/node_modules/jackspeak": {
- "version": "3.1.2",
+ "version": "2.3.6",
"dev": true,
"inBundle": true,
"license": "BlueOak-1.0.0",
@@ -7192,7 +8060,7 @@
"license": "MIT"
},
"node_modules/npm/node_modules/json-parse-even-better-errors": {
- "version": "3.0.2",
+ "version": "3.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -7231,50 +8099,52 @@
"license": "MIT"
},
"node_modules/npm/node_modules/libnpmaccess": {
- "version": "8.0.6",
+ "version": "8.0.2",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1"
+ "npm-package-arg": "^11.0.1",
+ "npm-registry-fetch": "^16.0.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/libnpmdiff": {
- "version": "6.1.3",
+ "version": "6.0.7",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^7.5.3",
- "@npmcli/installed-package-contents": "^2.1.0",
- "binary-extensions": "^2.3.0",
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/disparity-colors": "^3.0.0",
+ "@npmcli/installed-package-contents": "^2.0.2",
+ "binary-extensions": "^2.2.0",
"diff": "^5.1.0",
- "minimatch": "^9.0.4",
- "npm-package-arg": "^11.0.2",
- "pacote": "^18.0.6",
- "tar": "^6.2.1"
+ "minimatch": "^9.0.0",
+ "npm-package-arg": "^11.0.1",
+ "pacote": "^17.0.4",
+ "tar": "^6.2.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/libnpmexec": {
- "version": "8.1.2",
+ "version": "7.0.8",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^7.5.3",
- "@npmcli/run-script": "^8.1.0",
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/run-script": "^7.0.2",
"ci-info": "^4.0.0",
- "npm-package-arg": "^11.0.2",
- "pacote": "^18.0.6",
- "proc-log": "^4.2.0",
- "read": "^3.0.1",
+ "npm-package-arg": "^11.0.1",
+ "npmlog": "^7.0.1",
+ "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": "^3.0.1"
@@ -7284,112 +8154,112 @@
}
},
"node_modules/npm/node_modules/libnpmfund": {
- "version": "5.0.11",
+ "version": "5.0.5",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^7.5.3"
+ "@npmcli/arborist": "^7.2.1"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/libnpmhook": {
- "version": "10.0.5",
+ "version": "10.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"aproba": "^2.0.0",
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^16.0.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/libnpmorg": {
- "version": "6.0.6",
+ "version": "6.0.2",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"aproba": "^2.0.0",
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^16.0.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/libnpmpack": {
- "version": "7.0.3",
+ "version": "6.0.7",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^7.5.3",
- "@npmcli/run-script": "^8.1.0",
- "npm-package-arg": "^11.0.2",
- "pacote": "^18.0.6"
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/run-script": "^7.0.2",
+ "npm-package-arg": "^11.0.1",
+ "pacote": "^17.0.4"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/libnpmpublish": {
- "version": "9.0.9",
+ "version": "9.0.4",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"ci-info": "^4.0.0",
- "normalize-package-data": "^6.0.1",
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1",
- "proc-log": "^4.2.0",
+ "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": "^2.2.0",
- "ssri": "^10.0.6"
+ "ssri": "^10.0.5"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/libnpmsearch": {
- "version": "7.0.6",
+ "version": "7.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^16.0.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/libnpmteam": {
- "version": "6.0.5",
+ "version": "6.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"aproba": "^2.0.0",
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^16.0.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/libnpmversion": {
- "version": "6.0.3",
+ "version": "5.0.2",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/git": "^5.0.7",
- "@npmcli/run-script": "^8.1.0",
- "json-parse-even-better-errors": "^3.0.2",
- "proc-log": "^4.2.0",
+ "@npmcli/git": "^5.0.3",
+ "@npmcli/run-script": "^7.0.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "proc-log": "^3.0.0",
"semver": "^7.3.7"
},
"engines": {
@@ -7397,7 +8267,7 @@
}
},
"node_modules/npm/node_modules/lru-cache": {
- "version": "10.2.2",
+ "version": "10.2.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7406,7 +8276,7 @@
}
},
"node_modules/npm/node_modules/make-fetch-happen": {
- "version": "13.0.1",
+ "version": "13.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7420,7 +8290,6 @@
"minipass-flush": "^1.0.5",
"minipass-pipeline": "^1.2.4",
"negotiator": "^0.6.3",
- "proc-log": "^4.2.0",
"promise-retry": "^2.0.1",
"ssri": "^10.0.0"
},
@@ -7429,7 +8298,7 @@
}
},
"node_modules/npm/node_modules/minimatch": {
- "version": "9.0.4",
+ "version": "9.0.3",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7444,7 +8313,7 @@
}
},
"node_modules/npm/node_modules/minipass": {
- "version": "7.1.2",
+ "version": "7.0.4",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7465,7 +8334,7 @@
}
},
"node_modules/npm/node_modules/minipass-fetch": {
- "version": "3.0.5",
+ "version": "3.0.4",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -7637,7 +8506,7 @@
}
},
"node_modules/npm/node_modules/node-gyp": {
- "version": "10.1.0",
+ "version": "10.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -7660,17 +8529,8 @@
"node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
"node_modules/npm/node_modules/nopt": {
- "version": "7.2.1",
+ "version": "7.2.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7685,7 +8545,7 @@
}
},
"node_modules/npm/node_modules/normalize-package-data": {
- "version": "6.0.1",
+ "version": "6.0.0",
"dev": true,
"inBundle": true,
"license": "BSD-2-Clause",
@@ -7709,7 +8569,7 @@
}
},
"node_modules/npm/node_modules/npm-bundled": {
- "version": "3.0.1",
+ "version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7742,13 +8602,13 @@
}
},
"node_modules/npm/node_modules/npm-package-arg": {
- "version": "11.0.2",
+ "version": "11.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"hosted-git-info": "^7.0.0",
- "proc-log": "^4.0.0",
+ "proc-log": "^3.0.0",
"semver": "^7.3.5",
"validate-npm-package-name": "^5.0.0"
},
@@ -7769,7 +8629,7 @@
}
},
"node_modules/npm/node_modules/npm-pick-manifest": {
- "version": "9.0.1",
+ "version": "9.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7784,39 +8644,38 @@
}
},
"node_modules/npm/node_modules/npm-profile": {
- "version": "10.0.0",
+ "version": "9.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "npm-registry-fetch": "^17.0.1",
- "proc-log": "^4.0.0"
+ "npm-registry-fetch": "^16.0.0",
+ "proc-log": "^3.0.0"
},
"engines": {
- "node": ">=18.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/npm-registry-fetch": {
- "version": "17.0.1",
+ "version": "16.1.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/redact": "^2.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": "^11.0.0",
- "proc-log": "^4.0.0"
+ "proc-log": "^3.0.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
}
},
"node_modules/npm/node_modules/npm-user-validate": {
- "version": "2.0.1",
+ "version": "2.0.0",
"dev": true,
"inBundle": true,
"license": "BSD-2-Clause",
@@ -7824,6 +8683,21 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
+ "node_modules/npm/node_modules/npmlog": {
+ "version": "7.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "are-we-there-yet": "^4.0.0",
+ "console-control-strings": "^1.1.0",
+ "gauge": "^5.0.0",
+ "set-blocking": "^2.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/npm/node_modules/p-map": {
"version": "4.0.0",
"dev": true,
@@ -7840,31 +8714,32 @@
}
},
"node_modules/npm/node_modules/pacote": {
- "version": "18.0.6",
+ "version": "17.0.6",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"@npmcli/git": "^5.0.0",
"@npmcli/installed-package-contents": "^2.0.1",
- "@npmcli/package-json": "^5.1.0",
"@npmcli/promise-spawn": "^7.0.0",
- "@npmcli/run-script": "^8.0.0",
+ "@npmcli/run-script": "^7.0.0",
"cacache": "^18.0.0",
"fs-minipass": "^3.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": "^17.0.0",
- "proc-log": "^4.0.0",
+ "npm-registry-fetch": "^16.0.0",
+ "proc-log": "^3.0.0",
"promise-retry": "^2.0.1",
+ "read-package-json": "^7.0.0",
+ "read-package-json-fast": "^3.0.0",
"sigstore": "^2.2.0",
"ssri": "^10.0.0",
"tar": "^6.1.11"
},
"bin": {
- "pacote": "bin/index.js"
+ "pacote": "lib/bin.js"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
@@ -7894,23 +8769,23 @@
}
},
"node_modules/npm/node_modules/path-scurry": {
- "version": "1.11.1",
+ "version": "1.10.1",
"dev": true,
"inBundle": true,
"license": "BlueOak-1.0.0",
"dependencies": {
- "lru-cache": "^10.2.0",
+ "lru-cache": "^9.1.1 || ^10.0.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
- "node": ">=16 || 14 >=14.18"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/npm/node_modules/postcss-selector-parser": {
- "version": "6.1.0",
+ "version": "6.0.15",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -7923,16 +8798,7 @@
}
},
"node_modules/npm/node_modules/proc-log": {
- "version": "4.2.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/proggy": {
- "version": "2.0.0",
+ "version": "3.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -7978,12 +8844,12 @@
}
},
"node_modules/npm/node_modules/promzard": {
- "version": "1.0.2",
+ "version": "1.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "read": "^3.0.1"
+ "read": "^2.0.0"
},
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -7998,12 +8864,12 @@
}
},
"node_modules/npm/node_modules/read": {
- "version": "3.0.1",
+ "version": "2.1.0",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "mute-stream": "^1.0.0"
+ "mute-stream": "~1.0.0"
},
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -8018,6 +8884,21 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
+ "node_modules/npm/node_modules/read-package-json": {
+ "version": "7.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^10.2.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
"node_modules/npm/node_modules/read-package-json-fast": {
"version": "3.0.2",
"dev": true,
@@ -8048,10 +8929,13 @@
"optional": true
},
"node_modules/npm/node_modules/semver": {
- "version": "7.6.2",
+ "version": "7.6.0",
"dev": true,
"inBundle": true,
"license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
"bin": {
"semver": "bin/semver.js"
},
@@ -8059,6 +8943,24 @@
"node": ">=10"
}
},
+ "node_modules/npm/node_modules/semver/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm/node_modules/set-blocking": {
+ "version": "2.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC"
+ },
"node_modules/npm/node_modules/shebang-command": {
"version": "2.0.0",
"dev": true,
@@ -8093,17 +8995,17 @@
}
},
"node_modules/npm/node_modules/sigstore": {
- "version": "2.3.1",
+ "version": "2.2.2",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"dependencies": {
- "@sigstore/bundle": "^2.3.2",
+ "@sigstore/bundle": "^2.2.0",
"@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "@sigstore/sign": "^2.3.2",
- "@sigstore/tuf": "^2.3.4",
- "@sigstore/verify": "^1.2.1"
+ "@sigstore/protobuf-specs": "^0.3.0",
+ "@sigstore/sign": "^2.2.3",
+ "@sigstore/tuf": "^2.3.1",
+ "@sigstore/verify": "^1.1.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
@@ -8120,7 +9022,7 @@
}
},
"node_modules/npm/node_modules/socks": {
- "version": "2.8.3",
+ "version": "2.8.0",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -8129,17 +9031,17 @@
"smart-buffer": "^4.2.0"
},
"engines": {
- "node": ">= 10.0.0",
+ "node": ">= 16.0.0",
"npm": ">= 3.0.0"
}
},
"node_modules/npm/node_modules/socks-proxy-agent": {
- "version": "8.0.3",
+ "version": "8.0.2",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
- "agent-base": "^7.1.1",
+ "agent-base": "^7.0.2",
"debug": "^4.3.4",
"socks": "^2.7.1"
},
@@ -8157,16 +9059,6 @@
"spdx-license-ids": "^3.0.0"
}
},
- "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
"node_modules/npm/node_modules/spdx-exceptions": {
"version": "2.5.0",
"dev": true,
@@ -8174,7 +9066,7 @@
"license": "CC-BY-3.0"
},
"node_modules/npm/node_modules/spdx-expression-parse": {
- "version": "4.0.0",
+ "version": "3.0.1",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -8184,19 +9076,13 @@
}
},
"node_modules/npm/node_modules/spdx-license-ids": {
- "version": "3.0.18",
+ "version": "3.0.17",
"dev": true,
"inBundle": true,
"license": "CC0-1.0"
},
- "node_modules/npm/node_modules/sprintf-js": {
- "version": "1.1.3",
- "dev": true,
- "inBundle": true,
- "license": "BSD-3-Clause"
- },
"node_modules/npm/node_modules/ssri": {
- "version": "10.0.6",
+ "version": "10.0.5",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -8274,7 +9160,7 @@
}
},
"node_modules/npm/node_modules/tar": {
- "version": "6.2.1",
+ "version": "6.2.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -8345,14 +9231,14 @@
}
},
"node_modules/npm/node_modules/tuf-js": {
- "version": "2.2.1",
+ "version": "2.2.0",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
- "@tufjs/models": "2.0.1",
+ "@tufjs/models": "2.0.0",
"debug": "^4.3.4",
- "make-fetch-happen": "^13.0.1"
+ "make-fetch-happen": "^13.0.0"
},
"engines": {
"node": "^16.14.0 || >=18.0.0"
@@ -8398,21 +9284,14 @@
"spdx-expression-parse": "^3.0.0"
}
},
- "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
"node_modules/npm/node_modules/validate-npm-package-name": {
- "version": "5.0.1",
+ "version": "5.0.0",
"dev": true,
"inBundle": true,
"license": "ISC",
+ "dependencies": {
+ "builtins": "^5.0.0"
+ },
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
@@ -8423,6 +9302,15 @@
"inBundle": true,
"license": "ISC"
},
+ "node_modules/npm/node_modules/wcwidth": {
+ "version": "1.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
"node_modules/npm/node_modules/which": {
"version": "4.0.0",
"dev": true,
@@ -8447,6 +9335,15 @@
"node": ">=16"
}
},
+ "node_modules/npm/node_modules/wide-align": {
+ "version": "1.1.5",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
"node_modules/npm/node_modules/wrap-ansi": {
"version": "8.1.0",
"dev": true,
@@ -8526,45 +9423,202 @@
"strip-ansi": "^7.0.1"
},
"engines": {
- "node": ">=12"
+ "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/write-file-atomic": {
+ "version": "5.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/yallist": {
+ "version": "4.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/nyc": {
+ "version": "15.1.0",
+ "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
+ "dev": true,
+ "dependencies": {
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "caching-transform": "^4.0.0",
+ "convert-source-map": "^1.7.0",
+ "decamelize": "^1.2.0",
+ "find-cache-dir": "^3.2.0",
+ "find-up": "^4.1.0",
+ "foreground-child": "^2.0.0",
+ "get-package-type": "^0.1.0",
+ "glob": "^7.1.6",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-hook": "^3.0.0",
+ "istanbul-lib-instrument": "^4.0.0",
+ "istanbul-lib-processinfo": "^2.0.2",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.0.2",
+ "make-dir": "^3.0.0",
+ "node-preload": "^0.2.1",
+ "p-map": "^3.0.0",
+ "process-on-spawn": "^1.0.0",
+ "resolve-from": "^5.0.0",
+ "rimraf": "^3.0.0",
+ "signal-exit": "^3.0.2",
+ "spawn-wrap": "^2.0.0",
+ "test-exclude": "^6.0.0",
+ "yargs": "^15.0.2"
+ },
+ "bin": {
+ "nyc": "bin/nyc.js"
+ },
+ "engines": {
+ "node": ">=8.9"
+ }
+ },
+ "node_modules/nyc/node_modules/cliui": {
+ "version": "6.0.0",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/nyc/node_modules/find-up": {
+ "version": "4.1.0",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nyc/node_modules/locate-path": {
+ "version": "5.0.0",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nyc/node_modules/p-limit": {
+ "version": "2.3.0",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "7.1.0",
+ "node_modules/nyc/node_modules/p-locate": {
+ "version": "4.1.0",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "ansi-regex": "^6.0.1"
+ "p-limit": "^2.2.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=8"
+ }
+ },
+ "node_modules/nyc/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nyc/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/npm/node_modules/write-file-atomic": {
- "version": "5.0.1",
+ "node_modules/nyc/node_modules/y18n": {
+ "version": "4.0.3",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
+ "dev": true
+ },
+ "node_modules/nyc/node_modules/yargs": {
+ "version": "15.4.1",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"dev": true,
- "inBundle": true,
- "license": "ISC",
"dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=8"
}
},
- "node_modules/npm/node_modules/yallist": {
- "version": "4.0.0",
+ "node_modules/nyc/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dev": true,
- "inBundle": true,
- "license": "ISC"
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
},
"node_modules/object-assign": {
"version": "4.1.1",
@@ -8575,22 +9629,13 @@
}
},
"node_modules/object-inspect": {
- "version": "1.11.0",
- "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==",
+ "version": "1.10.3",
+ "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==",
+ "dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/on-finished": {
- "version": "2.4.1",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/once": {
"version": "1.4.0",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
@@ -8622,17 +9667,16 @@
}
},
"node_modules/optionator": {
- "version": "0.9.4",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+ "version": "0.9.3",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
"dev": true,
- "license": "MIT",
"dependencies": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
+ "type-check": "^0.4.0"
},
"engines": {
"node": ">= 0.8.0"
@@ -8667,8 +9711,6 @@
"version": "3.0.0",
"integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -8680,8 +9722,6 @@
"version": "4.1.0",
"integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"p-map": "^7.0.1"
},
@@ -8692,12 +9732,21 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/p-filter/node_modules/p-map": {
+ "version": "7.0.1",
+ "integrity": "sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/p-is-promise": {
"version": "3.0.0",
"integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=8"
}
@@ -8731,15 +9780,14 @@
}
},
"node_modules/p-map": {
- "version": "7.0.2",
- "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==",
+ "version": "3.0.0",
+ "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/p-reduce": {
@@ -8754,11 +9802,24 @@
"version": "2.2.0",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
+ "node_modules/package-hash": {
+ "version": "4.0.0",
+ "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.15",
+ "hasha": "^5.0.0",
+ "lodash.flattendeep": "^4.4.0",
+ "release-zalgo": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/package-json-from-dist": {
"version": "1.0.0",
"integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
@@ -8769,7 +9830,6 @@
"version": "1.0.1",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -8815,7 +9875,6 @@
"version": "7.0.0",
"integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==",
"dev": true,
- "license": "MIT",
"dependencies": {
"protocols": "^2.0.0"
}
@@ -8824,7 +9883,6 @@
"version": "8.1.0",
"integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"parse-path": "^7.0.0"
}
@@ -8832,16 +9890,12 @@
"node_modules/parse5": {
"version": "5.1.1",
"integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
- "dev": true,
- "license": "MIT",
- "peer": true
+ "dev": true
},
"node_modules/parse5-htmlparser2-tree-adapter": {
"version": "6.0.1",
"integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"parse5": "^6.0.1"
}
@@ -8849,16 +9903,7 @@
"node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": {
"version": "6.0.1",
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
+ "dev": true
},
"node_modules/path-exists": {
"version": "4.0.0",
@@ -8905,10 +9950,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
- },
"node_modules/path-type": {
"version": "4.0.0",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
@@ -8938,7 +9979,6 @@
"version": "3.0.0",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"dev": true,
- "peer": true,
"engines": {
"node": ">=4"
}
@@ -8947,7 +9987,6 @@
"version": "2.0.4",
"integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -8956,7 +9995,6 @@
"version": "2.0.1",
"integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"pinkie": "^2.0.0"
},
@@ -8965,9 +10003,10 @@
}
},
"node_modules/pirates": {
- "version": "4.0.5",
- "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
+ "version": "4.0.6",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 6"
}
@@ -8976,7 +10015,6 @@
"version": "2.1.0",
"integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=",
"dev": true,
- "peer": true,
"dependencies": {
"find-up": "^2.0.0",
"load-json-file": "^4.0.0"
@@ -8989,7 +10027,6 @@
"version": "2.1.0",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dev": true,
- "peer": true,
"dependencies": {
"locate-path": "^2.0.0"
},
@@ -9001,7 +10038,6 @@
"version": "2.0.0",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"dev": true,
- "peer": true,
"dependencies": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -9014,7 +10050,6 @@
"version": "1.3.0",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dev": true,
- "peer": true,
"dependencies": {
"p-try": "^1.0.0"
},
@@ -9026,7 +10061,6 @@
"version": "2.0.0",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"dev": true,
- "peer": true,
"dependencies": {
"p-limit": "^1.1.0"
},
@@ -9038,7 +10072,6 @@
"version": "1.0.0",
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
"dev": true,
- "peer": true,
"engines": {
"node": ">=4"
}
@@ -9047,7 +10080,6 @@
"version": "3.0.0",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"dev": true,
- "peer": true,
"engines": {
"node": ">=4"
}
@@ -9056,7 +10088,6 @@
"version": "4.2.0",
"integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -9068,7 +10099,6 @@
"version": "4.1.0",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -9081,7 +10111,6 @@
"version": "5.0.0",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -9093,7 +10122,6 @@
"version": "2.3.0",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -9108,7 +10136,6 @@
"version": "4.1.0",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -9117,8 +10144,8 @@
}
},
"node_modules/postcss-load-config": {
- "version": "4.0.2",
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "version": "6.0.1",
+ "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
"dev": true,
"funding": [
{
@@ -9132,21 +10159,28 @@
],
"license": "MIT",
"dependencies": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
+ "lilconfig": "^3.1.1"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
},
"peerDependencies": {
+ "jiti": ">=1.21.0",
"postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
},
"peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ },
"postcss": {
"optional": true
},
- "ts-node": {
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
"optional": true
}
}
@@ -9155,7 +10189,6 @@
"version": "1.2.1",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.8.0"
}
@@ -9180,6 +10213,17 @@
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true
},
+ "node_modules/process-on-spawn": {
+ "version": "1.0.0",
+ "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
+ "dev": true,
+ "dependencies": {
+ "fromentries": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/promise": {
"version": "8.1.0",
"integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==",
@@ -9206,23 +10250,11 @@
"node_modules/protocols": {
"version": "2.0.1",
"integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
+ "dev": true
},
"node_modules/punycode": {
- "version": "2.1.1",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "version": "2.3.0",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
"dev": true,
"engines": {
"node": ">=6"
@@ -9240,6 +10272,7 @@
"node_modules/qs": {
"version": "6.11.0",
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "dev": true,
"dependencies": {
"side-channel": "^1.0.4"
},
@@ -9273,7 +10306,6 @@
"version": "1.2.1",
"integrity": "sha512-/5BvkHo2waR923r7NZE+G1Z7+ddW8wENrPrzt1SJRPbibHyYAHy3ZlaPfE2oX993JRqpwGyEyUD4nYhX+PfC5Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"tslib": "^2.5.0"
}
@@ -9287,26 +10319,6 @@
"safe-buffer": "^5.1.0"
}
},
- "node_modules/range-parser": {
- "version": "1.2.1",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.2",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/rc": {
"version": "1.2.8",
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
@@ -9385,82 +10397,191 @@
"validate-npm-package-license": "^3.0.1"
}
},
- "node_modules/read-package-json/node_modules/semver": {
- "version": "5.7.1",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "node_modules/read-package-json/node_modules/semver": {
+ "version": "5.7.1",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/read-pkg": {
+ "version": "5.2.0",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "10.1.0",
+ "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^6.3.0",
+ "read-pkg": "^8.1.0",
+ "type-fest": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/find-up": {
+ "version": "6.3.0",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
+ },
+ "engines": {
+ "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",
+ "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",
+ "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": "7.2.0",
+ "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/read-pkg-up/node_modules/p-limit": {
+ "version": "4.0.0",
+ "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/read-pkg-up/node_modules/p-locate": {
+ "version": "6.0.0",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
"dev": true,
- "bin": {
- "semver": "bin/semver"
+ "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/read-package-up": {
- "version": "11.0.0",
- "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==",
+ "node_modules/read-pkg-up/node_modules/parse-json": {
+ "version": "7.1.0",
+ "integrity": "sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "find-up-simple": "^1.0.0",
- "read-pkg": "^9.0.0",
- "type-fest": "^4.6.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"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-package-up/node_modules/parse-json": {
- "version": "8.1.0",
- "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==",
+ "node_modules/read-pkg-up/node_modules/parse-json/node_modules/type-fest": {
+ "version": "3.13.1",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/code-frame": "^7.22.13",
- "index-to-position": "^0.1.2",
- "type-fest": "^4.7.1"
- },
"engines": {
- "node": ">=18"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-package-up/node_modules/read-pkg": {
- "version": "9.0.1",
- "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
+ "node_modules/read-pkg-up/node_modules/path-exists": {
+ "version": "5.0.0",
+ "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",
+ "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "@types/normalize-package-data": "^2.4.3",
+ "@types/normalize-package-data": "^2.4.1",
"normalize-package-data": "^6.0.0",
- "parse-json": "^8.0.0",
- "type-fest": "^4.6.0",
- "unicorn-magic": "^0.1.0"
+ "parse-json": "^7.0.0",
+ "type-fest": "^4.2.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-pkg": {
- "version": "5.2.0",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "node_modules/read-pkg-up/node_modules/type-fest": {
+ "version": "4.4.0",
+ "integrity": "sha512-HT3RRs7sTfY22KuPQJkD/XjbTbxgP2Je5HPt6H6JEGvcjHd5Lqru75EbrP3tb4FYjNJ+DjLp+MNQTFQU0mhXNw==",
"dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
+ "engines": {
+ "node": ">=16"
},
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/yocto-queue": {
+ "version": "1.0.0",
+ "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+ "dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/read-pkg/node_modules/hosted-git-info": {
@@ -9496,10 +10617,9 @@
}
},
"node_modules/readable-stream": {
- "version": "2.3.8",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "version": "2.3.7",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -9543,6 +10663,17 @@
"node": ">=14"
}
},
+ "node_modules/release-zalgo": {
+ "version": "1.0.0",
+ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=",
+ "dev": true,
+ "dependencies": {
+ "es6-error": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/require-directory": {
"version": "2.1.1",
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
@@ -9551,6 +10682,11 @@
"node": ">=0.10.0"
}
},
+ "node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
"node_modules/resolve": {
"version": "1.20.0",
"integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
@@ -9567,7 +10703,6 @@
"version": "4.0.0",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -9581,9 +10716,23 @@
"node": ">=0.10.0"
}
},
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/rollup": {
- "version": "4.18.0",
- "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==",
+ "version": "4.19.0",
+ "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9597,25 +10746,33 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.18.0",
- "@rollup/rollup-android-arm64": "4.18.0",
- "@rollup/rollup-darwin-arm64": "4.18.0",
- "@rollup/rollup-darwin-x64": "4.18.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.18.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.18.0",
- "@rollup/rollup-linux-arm64-gnu": "4.18.0",
- "@rollup/rollup-linux-arm64-musl": "4.18.0",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.18.0",
- "@rollup/rollup-linux-s390x-gnu": "4.18.0",
- "@rollup/rollup-linux-x64-gnu": "4.18.0",
- "@rollup/rollup-linux-x64-musl": "4.18.0",
- "@rollup/rollup-win32-arm64-msvc": "4.18.0",
- "@rollup/rollup-win32-ia32-msvc": "4.18.0",
- "@rollup/rollup-win32-x64-msvc": "4.18.0",
+ "@rollup/rollup-android-arm-eabi": "4.19.0",
+ "@rollup/rollup-android-arm64": "4.19.0",
+ "@rollup/rollup-darwin-arm64": "4.19.0",
+ "@rollup/rollup-darwin-x64": "4.19.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.19.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.19.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.19.0",
+ "@rollup/rollup-linux-arm64-musl": "4.19.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.19.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.19.0",
+ "@rollup/rollup-linux-x64-gnu": "4.19.0",
+ "@rollup/rollup-linux-x64-musl": "4.19.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.19.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.19.0",
+ "@rollup/rollup-win32-x64-msvc": "4.19.0",
"fsevents": "~2.3.2"
}
},
+ "node_modules/rrule": {
+ "version": "2.8.1",
+ "integrity": "sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/run-parallel": {
"version": "1.2.0",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
@@ -9643,29 +10800,23 @@
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
"node_modules/semantic-release": {
- "version": "24.0.0",
- "integrity": "sha512-v46CRPw+9eI3ZuYGF2oAjqPqsfbnfFTwLBgQsv/lch4goD09ytwOTESMN4QIrx/wPLxUGey60/NMx+ANQtWRsA==",
+ "version": "23.0.5",
+ "integrity": "sha512-4eZG/vRTV8E7rw5oHPv2Fht5qx6ITemE/b1vzG42ayYVcffJqXYy40nP4bHEPWX1/kleJWWrlPVDt1hSYVlpKQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "@semantic-release/commit-analyzer": "^13.0.0-beta.1",
+ "@semantic-release/commit-analyzer": "^12.0.0",
"@semantic-release/error": "^4.0.0",
"@semantic-release/github": "^10.0.0",
"@semantic-release/npm": "^12.0.0",
- "@semantic-release/release-notes-generator": "^14.0.0-beta.1",
+ "@semantic-release/release-notes-generator": "^12.0.0",
"aggregate-error": "^5.0.0",
"cosmiconfig": "^9.0.0",
"debug": "^4.0.0",
"env-ci": "^11.0.0",
- "execa": "^9.0.0",
+ "execa": "^8.0.0",
"figures": "^6.0.0",
- "find-versions": "^6.0.0",
+ "find-versions": "^5.1.0",
"get-stream": "^6.0.0",
"git-log-parser": "^1.2.0",
"hook-std": "^3.0.0",
@@ -9677,7 +10828,7 @@
"micromatch": "^4.0.2",
"p-each-series": "^3.0.0",
"p-reduce": "^3.0.0",
- "read-package-up": "^11.0.0",
+ "read-pkg-up": "^11.0.0",
"resolve-from": "^5.0.0",
"semver": "^7.3.2",
"semver-diff": "^4.0.0",
@@ -9696,25 +10847,10 @@
"integrity": "sha512-d+p1WSCFzIxLNPKXSkRpXWKQDBhRbp7g+w8LPzjVqFsUQ/eNw0KhMnKLoxsgVzZXAhEwpsZUx1VxBT5sjgOkIQ==",
"dev": true
},
- "node_modules/semantic-release/node_modules/@sindresorhus/merge-streams": {
- "version": "4.0.0",
- "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/semantic-release/node_modules/aggregate-error": {
"version": "5.0.0",
"integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"clean-stack": "^5.2.0",
"indent-string": "^5.0.0"
@@ -9730,8 +10866,6 @@
"version": "5.2.0",
"integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"escape-string-regexp": "5.0.0"
},
@@ -9746,8 +10880,6 @@
"version": "8.0.1",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
- "license": "ISC",
- "peer": true,
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
@@ -9761,8 +10893,6 @@
"version": "5.0.0",
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -9771,65 +10901,50 @@
}
},
"node_modules/semantic-release/node_modules/execa": {
- "version": "9.3.0",
- "integrity": "sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==",
+ "version": "8.0.1",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
- "@sindresorhus/merge-streams": "^4.0.0",
"cross-spawn": "^7.0.3",
- "figures": "^6.1.0",
- "get-stream": "^9.0.0",
- "human-signals": "^7.0.0",
- "is-plain-obj": "^4.1.0",
- "is-stream": "^4.0.1",
- "npm-run-path": "^5.2.0",
- "pretty-ms": "^9.0.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": "^4.1.0",
- "strip-final-newline": "^4.0.0",
- "yoctocolors": "^2.0.0"
+ "strip-final-newline": "^3.0.0"
},
"engines": {
- "node": "^18.19.0 || >=20.5.0"
+ "node": ">=16.17"
},
"funding": {
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
"node_modules/semantic-release/node_modules/execa/node_modules/get-stream": {
- "version": "9.0.1",
- "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
+ "version": "8.0.1",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
"dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@sec-ant/readable-stream": "^0.4.1",
- "is-stream": "^4.0.1"
- },
"engines": {
- "node": ">=18"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/semantic-release/node_modules/human-signals": {
- "version": "7.0.0",
- "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==",
+ "version": "5.0.0",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
"dev": true,
- "license": "Apache-2.0",
- "peer": true,
"engines": {
- "node": ">=18.18.0"
+ "node": ">=16.17.0"
}
},
"node_modules/semantic-release/node_modules/indent-string": {
"version": "5.0.0",
"integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -9838,24 +10953,50 @@
}
},
"node_modules/semantic-release/node_modules/is-stream": {
- "version": "4.0.1",
- "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
+ "version": "3.0.0",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
- "node": ">=18"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/semantic-release/node_modules/json-parse-even-better-errors": {
+ "version": "3.0.0",
+ "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/semantic-release/node_modules/marked": {
+ "version": "12.0.0",
+ "integrity": "sha512-Vkwtq9rLqXryZnWaQc86+FHLC6tr/fycMfYAhiOIXkrNmeGAyhSxjqu0Rs1i0bBqw5u0S7+lV9fdH2ZSVaoa0w==",
+ "dev": true,
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/semantic-release/node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/semantic-release/node_modules/npm-run-path": {
- "version": "5.3.0",
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "version": "5.1.0",
+ "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"path-key": "^4.0.0"
},
@@ -9866,27 +11007,88 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/semantic-release/node_modules/onetime": {
+ "version": "6.0.0",
+ "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-reduce": {
"version": "3.0.0",
"integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
- "node": ">=12"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/semantic-release/node_modules/parse-json": {
+ "version": "8.0.0",
+ "integrity": "sha512-QtWnjHuun44MCLbq9f2rlcX9Bp9FSsPgQS9nuGcIm3J557b3/CvmYUhwChgJJDlMpuNN0sFRAogzQ8xMitD1oQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.22.13",
+ "index-to-position": "^0.1.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "type-fest": "^4.6.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/semantic-release/node_modules/path-key": {
+ "version": "4.0.0",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/semantic-release/node_modules/read-pkg": {
+ "version": "9.0.0",
+ "integrity": "sha512-SBoBio4xhJmlF4xs9IBliWZGSbDAnrOfQkLGL7xB+RYEUZNAN2LlNkzO45B7gc7c2dLMX987bhHAaJ/LG3efeQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.3",
+ "normalize-package-data": "^6.0.0",
+ "parse-json": "^8.0.0",
+ "type-fest": "^4.6.0"
+ },
+ "engines": {
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/semantic-release/node_modules/path-key": {
- "version": "4.0.0",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "node_modules/semantic-release/node_modules/read-pkg-up": {
+ "version": "11.0.0",
+ "integrity": "sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==",
+ "deprecated": "Renamed to read-package-up",
"dev": true,
- "license": "MIT",
- "peer": true,
+ "dependencies": {
+ "find-up-simple": "^1.0.0",
+ "read-pkg": "^9.0.0",
+ "type-fest": "^4.6.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -9896,7 +11098,6 @@
"version": "5.0.0",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=8"
}
@@ -9905,8 +11106,6 @@
"version": "4.1.0",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
- "license": "ISC",
- "peer": true,
"engines": {
"node": ">=14"
},
@@ -9915,24 +11114,31 @@
}
},
"node_modules/semantic-release/node_modules/strip-final-newline": {
- "version": "4.0.0",
- "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==",
+ "version": "3.0.0",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
- "node": ">=18"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/semantic-release/node_modules/type-fest": {
+ "version": "4.6.0",
+ "integrity": "sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/semantic-release/node_modules/yargs": {
- "version": "17.7.2",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "version": "17.6.2",
+ "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -9950,15 +11156,13 @@
"version": "21.1.1",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
- "license": "ISC",
- "peer": true,
"engines": {
"node": ">=12"
}
},
"node_modules/semver": {
- "version": "7.6.2",
- "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "version": "7.6.3",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
"license": "ISC",
"bin": {
@@ -9972,8 +11176,6 @@
"version": "4.0.0",
"integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"semver": "^7.3.5"
},
@@ -9988,8 +11190,6 @@
"version": "4.0.5",
"integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -9997,53 +11197,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/send": {
- "version": "0.18.0",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/send/node_modules/mime": {
- "version": "1.6.0",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
"node_modules/serialize-javascript": {
"version": "6.0.2",
"integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
@@ -10053,22 +11206,10 @@
"randombytes": "^2.1.0"
}
},
- "node_modules/serve-static": {
- "version": "1.15.0",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
},
"node_modules/shebang-command": {
"version": "2.0.0",
@@ -10090,18 +11231,19 @@
}
},
"node_modules/shiki": {
- "version": "1.10.3",
- "integrity": "sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ==",
+ "version": "1.11.0",
+ "integrity": "sha512-NqH/O1zRHvnuk/WfSL6b7+DtI7/kkMMSQGlZhm9DyzSU+SoIHhaw/fBZMr+zp9R8KjdIzkk3JKSC6hORuGDyng==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@shikijs/core": "1.10.3",
+ "@shikijs/core": "1.11.0",
"@types/hast": "^3.0.4"
}
},
"node_modules/side-channel": {
"version": "1.0.4",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
@@ -10112,15 +11254,14 @@
}
},
"node_modules/signal-exit": {
- "version": "3.0.3",
- "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+ "version": "3.0.7",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true
},
"node_modules/signale": {
"version": "1.4.0",
"integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==",
"dev": true,
- "peer": true,
"dependencies": {
"chalk": "^2.3.2",
"figures": "^2.0.0",
@@ -10134,7 +11275,6 @@
"version": "3.2.1",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
- "peer": true,
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -10146,7 +11286,6 @@
"version": "2.4.2",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
- "peer": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -10160,7 +11299,6 @@
"version": "1.9.3",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
- "peer": true,
"dependencies": {
"color-name": "1.1.3"
}
@@ -10168,14 +11306,12 @@
"node_modules/signale/node_modules/color-name": {
"version": "1.1.3",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true,
- "peer": true
+ "dev": true
},
"node_modules/signale/node_modules/escape-string-regexp": {
"version": "1.0.5",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true,
- "peer": true,
"engines": {
"node": ">=0.8.0"
}
@@ -10184,7 +11320,6 @@
"version": "2.0.0",
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
- "peer": true,
"dependencies": {
"escape-string-regexp": "^1.0.5"
},
@@ -10196,7 +11331,6 @@
"version": "3.0.0",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true,
- "peer": true,
"engines": {
"node": ">=4"
}
@@ -10205,7 +11339,6 @@
"version": "5.5.0",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
- "peer": true,
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -10217,8 +11350,6 @@
"version": "2.0.0",
"integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"unicode-emoji-modifier-base": "^1.0.0"
},
@@ -10262,8 +11393,23 @@
"node_modules/spawn-error-forwarder": {
"version": "1.0.0",
"integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=",
+ "dev": true
+ },
+ "node_modules/spawn-wrap": {
+ "version": "2.0.0",
+ "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "foreground-child": "^2.0.0",
+ "is-windows": "^1.0.2",
+ "make-dir": "^3.0.0",
+ "rimraf": "^3.0.0",
+ "signal-exit": "^3.0.2",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/spdx-compare": {
"version": "1.0.0",
@@ -10318,18 +11464,23 @@
"spdx-ranges": "^2.0.0"
}
},
- "node_modules/statuses": {
- "version": "2.0.1",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "node_modules/split2": {
+ "version": "4.2.0",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "dev": true,
"engines": {
- "node": ">= 0.8"
+ "node": ">= 10.x"
}
},
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
"node_modules/stream-combiner2": {
"version": "1.1.1",
"integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
"dev": true,
- "peer": true,
"dependencies": {
"duplexer2": "~0.1.0",
"readable-stream": "^2.0.2"
@@ -10339,7 +11490,6 @@
"version": "1.1.1",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
@@ -10396,6 +11546,14 @@
"node": ">=8"
}
},
+ "node_modules/strip-bom": {
+ "version": "4.0.0",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/strip-final-newline": {
"version": "2.0.0",
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
@@ -10419,7 +11577,6 @@
"version": "1.0.1",
"integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"escape-string-regexp": "^1.0.2"
},
@@ -10431,18 +11588,19 @@
"version": "1.0.5",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/sucrase": {
- "version": "3.30.0",
- "integrity": "sha512-7d37d3vLF0IeH2dzvHpzDNDxUqpbDHJXTJOAnQ8jvMW04o2Czps6mxtaSnKWpE+hUS/eczqfWPUgQTrazKZPnQ==",
+ "version": "3.35.0",
+ "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
"commander": "^4.0.0",
- "glob": "7.1.6",
+ "glob": "^10.3.10",
"lines-and-columns": "^1.1.6",
"mz": "^2.7.0",
"pirates": "^4.0.1",
@@ -10453,51 +11611,88 @@
"sucrase-node": "bin/sucrase-node"
},
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/sucrase/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
"node_modules/sucrase/node_modules/commander": {
"version": "4.1.1",
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 6"
}
},
- "node_modules/sucrase/node_modules/glob": {
- "version": "7.1.6",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "node_modules/sucrase/node_modules/foreground-child": {
+ "version": "3.2.1",
+ "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
},
"engines": {
- "node": "*"
+ "node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/super-regex": {
- "version": "1.0.0",
- "integrity": "sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==",
+ "node_modules/sucrase/node_modules/glob": {
+ "version": "10.4.5",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true,
- "license": "MIT",
- "peer": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sucrase/node_modules/minimatch": {
+ "version": "9.0.5",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "function-timeout": "^1.0.1",
- "time-span": "^5.1.0"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=18"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sucrase/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/supports-color": {
@@ -10515,8 +11710,6 @@
"version": "3.0.0",
"integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"dependencies": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
@@ -10529,7 +11722,6 @@
"version": "0.6.2",
"integrity": "sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"tslib": "^2.3.1"
},
@@ -10551,22 +11743,20 @@
}
},
"node_modules/temp-dir": {
- "version": "3.0.0",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
+ "version": "2.0.0",
+ "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">=14.16"
+ "node": ">=8"
}
},
"node_modules/tempy": {
- "version": "3.1.0",
- "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
+ "version": "3.0.0",
+ "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-stream": "^3.0.0",
- "temp-dir": "^3.0.0",
+ "temp-dir": "^2.0.0",
"type-fest": "^2.12.2",
"unique-string": "^3.0.0"
},
@@ -10581,85 +11771,46 @@
"version": "3.0.0",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tempy/node_modules/type-fest": {
- "version": "2.19.0",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/test-exclude": {
- "version": "7.0.1",
- "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^10.4.1",
- "minimatch": "^9.0.4"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/test-exclude/node_modules/brace-expansion": {
- "version": "2.0.1",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/test-exclude/node_modules/glob": {
- "version": "10.4.3",
- "integrity": "sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/tempy/node_modules/type-fest": {
+ "version": "2.19.0",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "dev": true,
"engines": {
- "node": ">=18"
+ "node": ">=12.20"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/test-exclude/node_modules/minimatch": {
- "version": "9.0.5",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "node_modules/test-exclude": {
+ "version": "6.0.0",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
- "license": "ISC",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">=8"
+ }
+ },
+ "node_modules/text-extensions": {
+ "version": "2.4.0",
+ "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/text-table": {
@@ -10712,20 +11863,17 @@
"node": ">=0.8"
}
},
- "node_modules/time-span": {
- "version": "5.1.0",
- "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==",
+ "node_modules/through": {
+ "version": "2.3.8",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "convert-hrtime": "^5.0.0"
- },
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=4"
}
},
"node_modules/to-regex-range": {
@@ -10739,18 +11887,18 @@
"node": ">=8.0"
}
},
- "node_modules/toidentifier": {
+ "node_modules/tr46": {
"version": "1.0.1",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
+ "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
}
},
"node_modules/traverse": {
"version": "0.6.6",
"integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=",
- "dev": true,
- "peer": true
+ "dev": true
},
"node_modules/tree-kill": {
"version": "1.2.2",
@@ -10772,7 +11920,6 @@
"version": "1.0.0",
"integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"escape-string-regexp": "^1.0.2"
},
@@ -10784,7 +11931,6 @@
"version": "1.0.5",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
@@ -10804,13 +11950,13 @@
"node_modules/ts-interface-checker": {
"version": "0.1.13",
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/ts-node": {
"version": "10.9.2",
"integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
@@ -10858,30 +12004,31 @@
}
},
"node_modules/tslib": {
- "version": "2.6.3",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
- "dev": true,
- "license": "0BSD"
+ "version": "2.6.2",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
},
"node_modules/tsup": {
- "version": "8.1.0",
- "integrity": "sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==",
+ "version": "8.2.2",
+ "integrity": "sha512-MufIuzdSt6HYPOeOtjUXLR4rqRJySi6XsRNZdwvjC2XR+xghsu2L3vSmYmX+k4S1mO6j0OlUEyVQ3Fc0H66XcA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "bundle-require": "^4.0.0",
- "cac": "^6.7.12",
- "chokidar": "^3.5.1",
- "debug": "^4.3.1",
- "esbuild": "^0.21.4",
- "execa": "^5.0.0",
- "globby": "^11.0.3",
- "joycon": "^3.0.1",
- "postcss-load-config": "^4.0.1",
+ "bundle-require": "^5.0.0",
+ "cac": "^6.7.14",
+ "chokidar": "^3.6.0",
+ "consola": "^3.2.3",
+ "debug": "^4.3.5",
+ "esbuild": "^0.23.0",
+ "execa": "^5.1.1",
+ "globby": "^11.1.0",
+ "joycon": "^3.1.1",
+ "picocolors": "^1.0.1",
+ "postcss-load-config": "^6.0.1",
"resolve-from": "^5.0.0",
- "rollup": "^4.0.2",
+ "rollup": "^4.19.0",
"source-map": "0.8.0-beta.0",
- "sucrase": "^3.20.3",
+ "sucrase": "^3.35.0",
"tree-kill": "^1.2.2"
},
"bin": {
@@ -10931,92 +12078,249 @@
"node": ">= 8"
}
},
- "node_modules/tsup/node_modules/tr46": {
- "version": "1.0.1",
- "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
"dependencies": {
- "punycode": "^2.1.0"
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "node_modules/tsup/node_modules/webidl-conversions": {
- "version": "4.0.2",
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true
},
- "node_modules/tsup/node_modules/whatwg-url": {
- "version": "7.1.0",
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
"dev": true,
"dependencies": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
+ "is-typedarray": "^1.0.0"
}
},
- "node_modules/type-check": {
- "version": "0.4.0",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "node_modules/typedoc": {
+ "version": "0.26.5",
+ "integrity": "sha512-Vn9YKdjKtDZqSk+by7beZ+xzkkr8T8CYoiasqyt4TTRFy5+UHzL/mF/o4wGBjRF+rlWQHDb0t6xCpA3JNL5phg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "lunr": "^2.3.9",
+ "markdown-it": "^14.1.0",
+ "minimatch": "^9.0.5",
+ "shiki": "^1.9.1",
+ "yaml": "^2.4.5"
+ },
+ "bin": {
+ "typedoc": "bin/typedoc"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x"
+ }
+ },
+ "node_modules/typedoc/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "prelude-ls": "^1.2.1"
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/typedoc/node_modules/minimatch": {
+ "version": "9.0.5",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/type-fest": {
- "version": "4.21.0",
- "integrity": "sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==",
+ "node_modules/typescript": {
+ "version": "5.5.3",
+ "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
"engines": {
- "node": ">=16"
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/typescript-eslint": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-Hs60EyclUz1wBZMkmJ/xiiWGW91UZWcumWqOCQeWBp+xlPJJAufr5/OTrWhW+58yPv/72moEVhrA0VeUAlNoDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/eslint-plugin": "8.0.0-alpha.51",
+ "@typescript-eslint/parser": "8.0.0-alpha.51",
+ "@typescript-eslint/utils": "8.0.0-alpha.51"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/type-is": {
- "version": "1.6.18",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-989dk3/IA2HNdfl8T1Tj0+AEAtqHN5Cdac7Ff1N367Lh5e5xKi3nXWMkptbZaAEo/wi5+CZD8jngQ70wnCRweA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "8.0.0-alpha.51",
+ "@typescript-eslint/type-utils": "8.0.0-alpha.51",
+ "@typescript-eslint/utils": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
+ "eslint": "^8.57.0 || ^9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/typedarray": {
- "version": "0.0.6",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "dev": true
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-UPMhWLqkP/wBGB3/eI9fRG8UFFmT8tTLlBUQFN01xtsRNhYlMYS5FQHDMkfPynnKp62AqLRrwkrI49cZN3aDUA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "8.0.0-alpha.51",
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/typescript-estree": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
},
- "node_modules/typedoc": {
- "version": "0.26.3",
- "integrity": "sha512-6d2Sw9disvvpdk4K7VNjKr5/3hzijtfQVHRthhDqJgnhMHy1wQz4yPMJVKXElvnZhFr0nkzo+GzjXDTRV5yLpg==",
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-zT8Ib31deJCqRVJepZOMFoHiFAsSHOh5TmedcFeqyiMuzrqBMtF95iv6mPJqFDIXNgxmTkahpRan1z043ckBnA==",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT",
"dependencies": {
- "lunr": "^2.3.9",
- "markdown-it": "^14.1.0",
- "minimatch": "^9.0.5",
- "shiki": "^1.9.1",
- "yaml": "^2.4.5"
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51"
},
- "bin": {
- "typedoc": "bin/typedoc"
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-joqeu3jITe9BbgXAggKKg9mBIGDL6mAf2JVlo00zWP50u4qnsa3NWKMwWp77pjtI9E2DPU0vlTEdL+v/3aTPJA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-p3kD3rVdqmr4Iga86xzUR5wTsIKof/GsqnUMWZbmFpD3fmMXs1VLoXJegTqVMtWncu14dZUohRV2xPSScBAnxg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-bOLfR14nLfhO9BBD1YpmnQSTNTapAIegKsb4Ms1RAQXkJRKIeuLS42AEYRM8uvLiNLk0hDIBjCnMPTAyDAWLbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
- "node": ">= 18"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
- "peerDependencies": {
- "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/typedoc/node_modules/brace-expansion": {
+ "node_modules/typescript-eslint/node_modules/brace-expansion": {
"version": "2.0.1",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
@@ -11025,7 +12329,7 @@
"balanced-match": "^1.0.0"
}
},
- "node_modules/typedoc/node_modules/minimatch": {
+ "node_modules/typescript-eslint/node_modules/minimatch": {
"version": "9.0.5",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
@@ -11040,42 +12344,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/typescript": {
- "version": "5.5.3",
- "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/typescript-eslint": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-+e7D2XDZeHLe9D3bP7S0Va8YdLHzn3YcesoxMS9SjMWhtaSb5ylxk2txqT84sUS0WIDQetZlvDg2/UmY5B/ycg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/eslint-plugin": "8.0.0-alpha.41",
- "@typescript-eslint/parser": "8.0.0-alpha.41",
- "@typescript-eslint/utils": "8.0.0-alpha.41"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
"node_modules/uc.micro": {
"version": "2.1.0",
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
@@ -11083,12 +12351,10 @@
"license": "MIT"
},
"node_modules/uglify-js": {
- "version": "3.18.0",
- "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==",
+ "version": "3.17.4",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
"dev": true,
- "license": "BSD-2-Clause",
"optional": true,
- "peer": true,
"bin": {
"uglifyjs": "bin/uglifyjs"
},
@@ -11106,8 +12372,6 @@
"version": "1.0.0",
"integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": ">=4"
}
@@ -11116,7 +12380,6 @@
"version": "0.1.0",
"integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -11128,7 +12391,6 @@
"version": "3.0.0",
"integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"crypto-random-string": "^4.0.0"
},
@@ -11142,9 +12404,7 @@
"node_modules/universal-user-agent": {
"version": "7.0.2",
"integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==",
- "dev": true,
- "license": "ISC",
- "peer": true
+ "dev": true
},
"node_modules/universalify": {
"version": "2.0.0",
@@ -11154,13 +12414,6 @@
"node": ">= 10.0.0"
}
},
- "node_modules/unpipe": {
- "version": "1.0.0",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/uri-js": {
"version": "4.4.1",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
@@ -11174,8 +12427,6 @@
"version": "5.0.0",
"integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==",
"dev": true,
- "license": "MIT",
- "peer": true,
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
@@ -11190,13 +12441,6 @@
"integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=",
"dev": true
},
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
"node_modules/uuid": {
"version": "8.3.2",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
@@ -11205,14 +12449,18 @@
"uuid": "dist/bin/uuid"
}
},
+ "node_modules/uuid-random": {
+ "version": "1.3.2",
+ "integrity": "sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ=="
+ },
"node_modules/v8-compile-cache-lib": {
"version": "3.0.1",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
"dev": true
},
"node_modules/v8-to-istanbul": {
- "version": "9.0.1",
- "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
+ "version": "9.1.0",
+ "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==",
"dev": true,
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.12",
@@ -11224,12 +12472,12 @@
}
},
"node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
+ "version": "0.3.17",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
"dev": true,
"dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
}
},
"node_modules/validate-npm-package-license": {
@@ -11249,11 +12497,19 @@
"node": ">= 0.10"
}
},
- "node_modules/vary": {
- "version": "1.1.2",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
- "engines": {
- "node": ">= 0.8"
+ "node_modules/webidl-conversions": {
+ "version": "4.0.2",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "dev": true
+ },
+ "node_modules/whatwg-url": {
+ "version": "7.1.0",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "dev": true,
+ "dependencies": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
}
},
"node_modules/which": {
@@ -11270,21 +12526,15 @@
"node": ">= 8"
}
},
- "node_modules/word-wrap": {
- "version": "1.2.5",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/which-module": {
+ "version": "2.0.0",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
},
"node_modules/wordwrap": {
"version": "1.0.0",
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true,
- "license": "MIT",
- "peer": true
+ "dev": true
},
"node_modules/workerpool": {
"version": "6.5.1",
@@ -11331,11 +12581,21 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
+ "node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
"node_modules/xtend": {
"version": "4.0.2",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=0.4"
}
@@ -11414,77 +12674,319 @@
"version": "4.0.0",
"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
"dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yn": {
+ "version": "3.1.1",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/yoctocolors": {
+ "version": "2.1.1",
+ "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ },
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true
+ },
+ "@babel/code-frame": {
+ "version": "7.22.13",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "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",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.14.5",
+ "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==",
+ "dev": true
+ },
+ "@babel/core": {
+ "version": "7.14.6",
+ "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.14.5",
+ "@babel/generator": "^7.14.5",
+ "@babel/helper-compilation-targets": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.14.5",
+ "@babel/helpers": "^7.14.6",
+ "@babel/parser": "^7.14.6",
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.1.2",
+ "semver": "^6.3.0",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.23.0",
+ "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.23.0",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "dependencies": {
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.19",
+ "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ }
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.14.5",
+ "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.14.5",
+ "@babel/helper-validator-option": "^7.14.5",
+ "browserslist": "^4.16.6",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "dev": true
+ },
+ "@babel/helper-function-name": {
+ "version": "7.23.0",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.14.5",
+ "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.14.5",
+ "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.14.5"
}
},
- "node_modules/yargs-unparser/node_modules/is-plain-obj": {
- "version": "2.1.0",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "@babel/helper-module-transforms": {
+ "version": "7.14.5",
+ "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "requires": {
+ "@babel/helper-module-imports": "^7.14.5",
+ "@babel/helper-replace-supers": "^7.14.5",
+ "@babel/helper-simple-access": "^7.14.5",
+ "@babel/helper-split-export-declaration": "^7.14.5",
+ "@babel/helper-validator-identifier": "^7.14.5",
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5"
}
},
- "node_modules/yn": {
- "version": "3.1.1",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.14.5",
+ "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==",
"dev": true,
- "engines": {
- "node": ">=6"
+ "requires": {
+ "@babel/types": "^7.14.5"
}
},
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "@babel/helper-replace-supers": {
+ "version": "7.14.5",
+ "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==",
"dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.14.5",
+ "@babel/helper-optimise-call-expression": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5"
}
},
- "node_modules/yoctocolors": {
- "version": "2.1.1",
- "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==",
+ "@babel/helper-simple-access": {
+ "version": "7.14.5",
+ "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "requires": {
+ "@babel/types": "^7.14.5"
}
- }
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.24.7",
- "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.24.7",
- "picocolors": "^1.0.0"
+ "@babel/types": "^7.22.5"
}
},
+ "@babel/helper-string-parser": {
+ "version": "7.22.5",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "dev": true
+ },
"@babel/helper-validator-identifier": {
- "version": "7.24.7",
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "version": "7.22.20",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "dev": true
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.14.5",
+ "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==",
"dev": true
},
+ "@babel/helpers": {
+ "version": "7.14.6",
+ "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ }
+ },
"@babel/highlight": {
- "version": "7.24.7",
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "version": "7.22.20",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.4.2",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
+ "js-tokens": "^4.0.0"
},
"dependencies": {
"ansi-styles": {
@@ -11538,6 +13040,55 @@
}
}
},
+ "@babel/parser": {
+ "version": "7.23.0",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
+ "dev": true
+ },
+ "@babel/template": {
+ "version": "7.22.15",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/parser": "^7.22.15",
+ "@babel/types": "^7.22.15"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.23.2",
+ "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"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "11.12.0",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/types": {
+ "version": "7.23.0",
+ "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
"@bcoe/v8-coverage": {
"version": "0.2.3",
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
@@ -11547,8 +13098,7 @@
"version": "1.5.0",
"integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
"dev": true,
- "optional": true,
- "peer": true
+ "optional": true
},
"@cspotcode/source-map-support": {
"version": "0.8.1",
@@ -11559,140 +13109,146 @@
}
},
"@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "version": "0.23.0",
+ "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==",
"dev": true,
"optional": true
},
"@esbuild/android-arm": {
- "version": "0.21.5",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "version": "0.23.0",
+ "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==",
"dev": true,
"optional": true
},
"@esbuild/android-arm64": {
- "version": "0.21.5",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "version": "0.23.0",
+ "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==",
"dev": true,
"optional": true
},
"@esbuild/android-x64": {
- "version": "0.21.5",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "version": "0.23.0",
+ "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==",
"dev": true,
"optional": true
},
"@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "version": "0.23.0",
+ "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==",
"dev": true,
"optional": true
},
"@esbuild/darwin-x64": {
- "version": "0.21.5",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "version": "0.23.0",
+ "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "version": "0.23.0",
+ "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "version": "0.23.0",
+ "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm": {
- "version": "0.21.5",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "version": "0.23.0",
+ "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm64": {
- "version": "0.21.5",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "version": "0.23.0",
+ "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==",
"dev": true,
"optional": true
},
"@esbuild/linux-ia32": {
- "version": "0.21.5",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "version": "0.23.0",
+ "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==",
"dev": true,
"optional": true
},
"@esbuild/linux-loong64": {
- "version": "0.21.5",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "version": "0.23.0",
+ "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==",
"dev": true,
"optional": true
},
"@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "version": "0.23.0",
+ "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==",
"dev": true,
"optional": true
},
"@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "version": "0.23.0",
+ "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==",
"dev": true,
"optional": true
},
"@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "version": "0.23.0",
+ "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==",
"dev": true,
"optional": true
},
"@esbuild/linux-s390x": {
- "version": "0.21.5",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "version": "0.23.0",
+ "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==",
"dev": true,
"optional": true
},
"@esbuild/linux-x64": {
- "version": "0.21.5",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "version": "0.23.0",
+ "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==",
"dev": true,
"optional": true
},
"@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "version": "0.23.0",
+ "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openbsd-arm64": {
+ "version": "0.23.0",
+ "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==",
"dev": true,
"optional": true
},
"@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "version": "0.23.0",
+ "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==",
"dev": true,
"optional": true
},
"@esbuild/sunos-x64": {
- "version": "0.21.5",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "version": "0.23.0",
+ "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==",
"dev": true,
"optional": true
},
"@esbuild/win32-arm64": {
- "version": "0.21.5",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "version": "0.23.0",
+ "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==",
"dev": true,
"optional": true
},
"@esbuild/win32-ia32": {
- "version": "0.21.5",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "version": "0.23.0",
+ "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==",
"dev": true,
"optional": true
},
"@esbuild/win32-x64": {
- "version": "0.21.5",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "version": "0.23.0",
+ "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==",
"dev": true,
"optional": true
},
@@ -11702,13 +13258,6 @@
"dev": true,
"requires": {
"eslint-visitor-keys": "^3.3.0"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "3.4.3",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true
- }
}
},
"@eslint-community/regexpp": {
@@ -11717,8 +13266,8 @@
"dev": true
},
"@eslint/config-array": {
- "version": "0.17.0",
- "integrity": "sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==",
+ "version": "0.17.1",
+ "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==",
"dev": true,
"requires": {
"@eslint/object-schema": "^2.1.4",
@@ -11742,6 +13291,11 @@
"strip-json-comments": "^3.1.1"
},
"dependencies": {
+ "argparse": {
+ "version": "2.0.1",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
"eslint-visitor-keys": {
"version": "4.0.0",
"integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==",
@@ -11756,12 +13310,20 @@
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^4.0.0"
}
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
}
}
},
"@eslint/js": {
- "version": "9.6.0",
- "integrity": "sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==",
+ "version": "9.7.0",
+ "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==",
"dev": true
},
"@eslint/object-schema": {
@@ -11837,19 +13399,86 @@
}
}
},
+ "@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "4.1.0",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ }
+ }
+ },
"@istanbuljs/schema": {
"version": "0.1.3",
"integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true
},
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "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.0.7",
- "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==",
+ "version": "3.1.0",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "dev": true
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
"dev": true
},
"@jridgewell/sourcemap-codec": {
- "version": "1.4.13",
- "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==",
+ "version": "1.4.14",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
"dev": true
},
"@jridgewell/trace-mapping": {
@@ -11885,111 +13514,100 @@
}
},
"@octokit/auth-token": {
- "version": "5.1.1",
- "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==",
- "dev": true,
- "peer": true
+ "version": "5.0.1",
+ "integrity": "sha512-RTmWsLfig8SBoiSdgvCht4BXl1CHU89Co5xiQ5JF19my/sIRDFCQ1RPrmK0exgqUZuNm39C/bV8+/83+MJEjGg==",
+ "dev": true
},
"@octokit/core": {
- "version": "6.1.2",
- "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==",
+ "version": "6.0.1",
+ "integrity": "sha512-MIpPQXu8Y8GjHwXM81JLveiV+DHJZtLMcB5nKekBGOl3iAtk0HT3i12Xl8Biybu+bCS1+k4qbuKEq5d0RxNRnQ==",
"dev": true,
- "peer": true,
"requires": {
"@octokit/auth-token": "^5.0.0",
"@octokit/graphql": "^8.0.0",
"@octokit/request": "^9.0.0",
"@octokit/request-error": "^6.0.1",
- "@octokit/types": "^13.0.0",
+ "@octokit/types": "^12.0.0",
"before-after-hook": "^3.0.2",
"universal-user-agent": "^7.0.0"
}
},
"@octokit/endpoint": {
- "version": "10.1.1",
- "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==",
+ "version": "10.0.0",
+ "integrity": "sha512-emBcNDxBdC1y3+knJonS5zhUB/CG6TihubxM2U1/pG/Z1y3a4oV0Gzz3lmkCvWWQI6h3tqBAX9MgCBFp+M68Jw==",
"dev": true,
- "peer": true,
"requires": {
- "@octokit/types": "^13.0.0",
+ "@octokit/types": "^12.0.0",
"universal-user-agent": "^7.0.2"
}
},
"@octokit/graphql": {
- "version": "8.1.1",
- "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==",
+ "version": "8.0.1",
+ "integrity": "sha512-lLDb6LhC1gBj2CxEDa5Xk10+H/boonhs+3Mi6jpRyetskDKNHe6crMeKmUE2efoLofMP8ruannLlCUgpTFmVzQ==",
"dev": true,
- "peer": true,
"requires": {
"@octokit/request": "^9.0.0",
- "@octokit/types": "^13.0.0",
+ "@octokit/types": "^12.0.0",
"universal-user-agent": "^7.0.0"
}
},
"@octokit/openapi-types": {
- "version": "22.2.0",
- "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==",
- "dev": true,
- "peer": true
+ "version": "20.0.0",
+ "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==",
+ "dev": true
},
"@octokit/plugin-paginate-rest": {
- "version": "11.3.3",
- "integrity": "sha512-o4WRoOJZlKqEEgj+i9CpcmnByvtzoUYC6I8PD2SA95M+BJ2x8h7oLcVOg9qcowWXBOdcTRsMZiwvM3EyLm9AfA==",
+ "version": "10.0.0",
+ "integrity": "sha512-G1Z67qOiFneKDJyMafHQkWnKm1kU3FfbRZLzxgsFg4dOa3pRNdABbdk+xo/oev6P88lnbt7GKdBNB6dJZuPphA==",
"dev": true,
- "peer": true,
"requires": {
- "@octokit/types": "^13.5.0"
+ "@octokit/types": "^12.6.0"
}
},
"@octokit/plugin-retry": {
- "version": "7.1.1",
- "integrity": "sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==",
+ "version": "7.0.3",
+ "integrity": "sha512-T9l5Z7XnDZ7dkyNmhJPSUq0YjbqUT/xn4yQbhcSuv4WGC/LqM73/mKwkl68VDPoLw20e8oz4L7qQopWt9v6sow==",
"dev": true,
- "peer": true,
"requires": {
"@octokit/request-error": "^6.0.0",
- "@octokit/types": "^13.0.0",
+ "@octokit/types": "^12.0.0",
"bottleneck": "^2.15.3"
}
},
"@octokit/plugin-throttling": {
- "version": "9.3.0",
- "integrity": "sha512-B5YTToSRTzNSeEyssnrT7WwGhpIdbpV9NKIs3KyTWHX6PhpYn7gqF/+lL3BvsASBM3Sg5BAUYk7KZx5p/Ec77w==",
+ "version": "9.0.3",
+ "integrity": "sha512-DReKamrLBJOzld73dmmxV2H137QKJfsxszAczEZXeAJQ/Po6bzQacKajPdodA6T1jfmP9+waImus+d/R2j+R7Q==",
"dev": true,
- "peer": true,
"requires": {
- "@octokit/types": "^13.0.0",
+ "@octokit/types": "^12.6.0",
"bottleneck": "^2.15.3"
}
},
"@octokit/request": {
- "version": "9.1.1",
- "integrity": "sha512-pyAguc0p+f+GbQho0uNetNQMmLG1e80WjkIaqqgUkihqUp0boRU6nKItXO4VWnr+nbZiLGEyy4TeKRwqaLvYgw==",
+ "version": "9.0.1",
+ "integrity": "sha512-kL+cAcbSl3dctYLuJmLfx6Iku2MXXy0jszhaEIjQNaCp4zjHXrhVAHeuaRdNvJjW9qjl3u1MJ72+OuBP0YW/pg==",
"dev": true,
- "peer": true,
"requires": {
"@octokit/endpoint": "^10.0.0",
"@octokit/request-error": "^6.0.1",
- "@octokit/types": "^13.1.0",
+ "@octokit/types": "^12.0.0",
"universal-user-agent": "^7.0.2"
}
},
"@octokit/request-error": {
- "version": "6.1.1",
- "integrity": "sha512-1mw1gqT3fR/WFvnoVpY/zUM2o/XkMs/2AszUUG9I69xn0JFLv6PGkPhNk5lbfvROs79wiS0bqiJNxfCZcRJJdg==",
+ "version": "6.0.2",
+ "integrity": "sha512-WtRVpoHcNXs84+s9s/wqfHaxM68NGMg8Av7h59B50OVO0PwwMx+2GgQ/OliUd0iQBSNWgR6N8afi/KjSHbXHWw==",
"dev": true,
- "peer": true,
"requires": {
- "@octokit/types": "^13.0.0"
+ "@octokit/types": "^12.0.0"
}
},
"@octokit/types": {
- "version": "13.5.0",
- "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
+ "version": "12.6.0",
+ "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
"dev": true,
- "peer": true,
"requires": {
- "@octokit/openapi-types": "^22.2.0"
+ "@octokit/openapi-types": "^20.0.0"
}
},
"@pkgjs/parseargs": {
@@ -12039,134 +13657,142 @@
}
},
"@qiwi/substrate": {
- "version": "2.1.0",
- "integrity": "sha512-F19fckn9+ztlPD0yogxoqWRRlGiLaSJcI+mqYWc8mzSwr4LFRJhwPkitmCPXluKxHeOT1IYQJacRMEWt5yA1AA==",
+ "version": "2.0.4",
+ "integrity": "sha512-MCJfVyqnc5gasdeAYWQnFo/P3eysvrQzrS5NB9g5WKMWBvAmBz6BkzOgMOGaHRgW0dkGsGT/iDu5c5sFhdISPQ==",
"dev": true,
"requires": {
- "@qiwi/substrate-abstract": "2.1.0",
- "@qiwi/substrate-std": "2.1.0",
- "@qiwi/substrate-types": "2.1.0",
- "tslib": "^2.6.2"
+ "@qiwi/substrate-abstract": "2.0.4",
+ "@qiwi/substrate-std": "2.0.4",
+ "@qiwi/substrate-types": "2.0.4",
+ "tslib": "^2.5.2"
}
},
"@qiwi/substrate-abstract": {
- "version": "2.1.0",
- "integrity": "sha512-ZzvNT1kWLGLMBtnsTRNs+1WXl1m+z9RNDvhjFcX0whpCtYxYQW1iIfpTJ/UbxiZ4TAQW72ROtIXkob3MuXF31g==",
+ "version": "2.0.4",
+ "integrity": "sha512-QSVLvJnBWLMcfS5uSZhEv/027xGu9tCoMVKyAFo2OEoVXtKfs57JR8Ig92uYEhzzLPwVRhaF3wrbrISXgHuFTw==",
"dev": true,
"requires": {
- "@qiwi/substrate-types": "2.1.0"
+ "@qiwi/substrate-types": "2.0.4"
}
},
"@qiwi/substrate-std": {
- "version": "2.1.0",
- "integrity": "sha512-wqQF0g2ISnww4eggCfL4FJUemx7r07i1y8MVHo5qd7gG35LMjeWP0X05Ez/pyGsOxO+aaRxmm3iFSQMSrNCnyw==",
+ "version": "2.0.4",
+ "integrity": "sha512-0VQZ0kO3KjOBWaGsK1eSbBfdBFw7FIF76ZTelMOuyJr8o0beJGZvuGt382SpLrrf28HoxKc3ML/ZAHmcx7a1Zg==",
"dev": true,
"requires": {
- "@qiwi/substrate-types": "2.1.0",
- "tslib": "^2.6.2"
+ "@qiwi/substrate-types": "2.0.4",
+ "tslib": "^2.5.2"
}
},
"@qiwi/substrate-types": {
- "version": "2.1.0",
- "integrity": "sha512-WLPKeX61SNFTUDLpywY91MNKwR/+JN+KEqyYnCncjqEtlmDkuUn+FVWhzmbd4BUmF5PQ3icyQkppSCgrxcEBlg==",
+ "version": "2.0.4",
+ "integrity": "sha512-XXVPfaBoN27Lim/jClxy9ofCXAPkHMAb/PX/a/kqS3ijhOv0TbDqN34Ko4D9OCqLdEvhu1prYOhA58zlXtr8/g==",
"dev": true
},
"@rollup/rollup-android-arm-eabi": {
- "version": "4.18.0",
- "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==",
+ "version": "4.19.0",
+ "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==",
"dev": true,
"optional": true
},
"@rollup/rollup-android-arm64": {
- "version": "4.18.0",
- "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==",
+ "version": "4.19.0",
+ "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==",
"dev": true,
"optional": true
},
"@rollup/rollup-darwin-arm64": {
- "version": "4.18.0",
- "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==",
+ "version": "4.19.0",
+ "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==",
"dev": true,
"optional": true
},
"@rollup/rollup-darwin-x64": {
- "version": "4.18.0",
- "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==",
+ "version": "4.19.0",
+ "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.18.0",
- "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==",
+ "version": "4.19.0",
+ "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.18.0",
- "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==",
+ "version": "4.19.0",
+ "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-arm64-gnu": {
- "version": "4.18.0",
- "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==",
+ "version": "4.19.0",
+ "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-arm64-musl": {
- "version": "4.18.0",
- "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==",
+ "version": "4.19.0",
+ "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.18.0",
- "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==",
+ "version": "4.19.0",
+ "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.18.0",
- "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==",
+ "version": "4.19.0",
+ "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-s390x-gnu": {
- "version": "4.18.0",
- "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==",
+ "version": "4.19.0",
+ "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-x64-gnu": {
- "version": "4.18.0",
- "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==",
+ "version": "4.19.0",
+ "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-x64-musl": {
- "version": "4.18.0",
- "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==",
+ "version": "4.19.0",
+ "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==",
"dev": true,
"optional": true
},
"@rollup/rollup-win32-arm64-msvc": {
- "version": "4.18.0",
- "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==",
+ "version": "4.19.0",
+ "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==",
"dev": true,
"optional": true
},
"@rollup/rollup-win32-ia32-msvc": {
- "version": "4.18.0",
- "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==",
+ "version": "4.19.0",
+ "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==",
"dev": true,
"optional": true
},
"@rollup/rollup-win32-x64-msvc": {
- "version": "4.18.0",
- "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==",
+ "version": "4.19.0",
+ "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==",
"dev": true,
"optional": true
},
+ "@sebbo2002/semantic-release-jsr": {
+ "version": "1.0.0-develop.6",
+ "integrity": "sha512-SkSjF/NpTx9Fp0RYUu2XksEsGosu62Gbw6UpOVbSNWinUh+LY6202GU9uzS2WuxeGYEH1307y8SZZS4+QbAkag==",
+ "dev": true,
+ "requires": {
+ "jsr": "^0.12.2"
+ }
+ },
"@sec-ant/readable-stream": {
"version": "0.4.1",
"integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==",
@@ -12191,15 +13817,13 @@
}
},
"@semantic-release/commit-analyzer": {
- "version": "13.0.0",
- "integrity": "sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==",
+ "version": "12.0.0",
+ "integrity": "sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==",
"dev": true,
- "peer": true,
"requires": {
- "conventional-changelog-angular": "^8.0.0",
- "conventional-changelog-writer": "^8.0.0",
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.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-esm": "^1.0.3",
"lodash-es": "^4.17.21",
@@ -12254,13 +13878,12 @@
}
},
"@semantic-release/github": {
- "version": "10.0.7",
- "integrity": "sha512-J7JiFvOu/8QKqFF5FDTk/k19Z/Jku4LdDof/+LsjaGgLOISJR7TL66q89c2YXV6Dh5Jw5VmiT4uK4q6SSfbQGA==",
+ "version": "10.0.2",
+ "integrity": "sha512-SP5ihhv/uQa8vPuWKmbJrrzfv8lRUkDFC6qwgaWoorrflN1DEW0IGCa9w/PxUp8Ad3dbvXZPmpXdGiP3eyTzhg==",
"dev": true,
- "peer": true,
"requires": {
"@octokit/core": "^6.0.0",
- "@octokit/plugin-paginate-rest": "^11.0.0",
+ "@octokit/plugin-paginate-rest": "^10.0.0",
"@octokit/plugin-retry": "^7.0.0",
"@octokit/plugin-throttling": "^9.0.0",
"@semantic-release/error": "^4.0.0",
@@ -12281,7 +13904,6 @@
"version": "5.0.0",
"integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
"dev": true,
- "peer": true,
"requires": {
"clean-stack": "^5.2.0",
"indent-string": "^5.0.0"
@@ -12291,7 +13913,6 @@
"version": "5.2.0",
"integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==",
"dev": true,
- "peer": true,
"requires": {
"escape-string-regexp": "5.0.0"
}
@@ -12299,14 +13920,12 @@
"escape-string-regexp": {
"version": "5.0.0",
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"globby": {
- "version": "14.0.2",
- "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==",
+ "version": "14.0.1",
+ "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==",
"dev": true,
- "peer": true,
"requires": {
"@sindresorhus/merge-streams": "^2.1.0",
"fast-glob": "^3.3.2",
@@ -12319,20 +13938,17 @@
"indent-string": {
"version": "5.0.0",
"integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
- "dev": true,
- "peer": true
+ "dev": true
},
"path-type": {
"version": "5.0.0",
"integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
- "dev": true,
- "peer": true
+ "dev": true
},
"slash": {
"version": "5.1.0",
"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
- "dev": true,
- "peer": true
+ "dev": true
}
}
},
@@ -12426,6 +14042,16 @@
"integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
"dev": true
},
+ "json-parse-even-better-errors": {
+ "version": "3.0.0",
+ "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "8.0.0",
+ "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
+ "dev": true
+ },
"npm-run-path": {
"version": "5.3.0",
"integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
@@ -12435,12 +14061,13 @@
}
},
"parse-json": {
- "version": "8.1.0",
- "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==",
+ "version": "8.0.1",
+ "integrity": "sha512-soKUg/q/8bcfuF3+plsbYldE74cVEVEPSC1BUPIGTaX1byXdz6Fo+CVYBdH0jj/5xWsFrNRksl11QkBgHqPQeQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.22.13",
- "index-to-position": "^0.1.2",
+ "index-to-position": "^0.1.1",
+ "json-parse-even-better-errors": "^3.0.0",
"type-fest": "^4.7.1"
}
},
@@ -12450,15 +14077,14 @@
"dev": true
},
"read-pkg": {
- "version": "9.0.1",
- "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
+ "version": "9.0.0",
+ "integrity": "sha512-SBoBio4xhJmlF4xs9IBliWZGSbDAnrOfQkLGL7xB+RYEUZNAN2LlNkzO45B7gc7c2dLMX987bhHAaJ/LG3efeQ==",
"dev": true,
"requires": {
"@types/normalize-package-data": "^2.4.3",
"normalize-package-data": "^6.0.0",
"parse-json": "^8.0.0",
- "type-fest": "^4.6.0",
- "unicorn-magic": "^0.1.0"
+ "type-fest": "^4.6.0"
}
},
"signal-exit": {
@@ -12470,38 +14096,41 @@
"version": "4.0.0",
"integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==",
"dev": true
+ },
+ "type-fest": {
+ "version": "4.7.1",
+ "integrity": "sha512-iWr8RUmzAJRfhZugX9O7nZE6pCxDU8CZ3QxsLuTnGcBLJpCaP2ll3s4eMTBoFnU/CeXY/5rfQSuAEsTGJO4y8A==",
+ "dev": true
}
}
},
"@semantic-release/release-notes-generator": {
- "version": "14.0.1",
- "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==",
+ "version": "12.0.0",
+ "integrity": "sha512-m7Ds8ComP1KJgA2Lke2xMwE1TOOU40U7AzP4lT8hJ2tUAeicziPz/1GeDFmRkTOkMFlfHvE6kuvMkvU+mIzIDQ==",
"dev": true,
- "peer": true,
"requires": {
- "conventional-changelog-angular": "^8.0.0",
- "conventional-changelog-writer": "^8.0.0",
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.0.0",
+ "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": "^7.0.0",
- "import-from-esm": "^1.0.3",
+ "import-from": "^4.0.0",
"into-stream": "^7.0.0",
"lodash-es": "^4.17.21",
- "read-package-up": "^11.0.0"
+ "read-pkg-up": "^10.0.0"
},
"dependencies": {
"get-stream": {
"version": "7.0.1",
"integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==",
- "dev": true,
- "peer": true
+ "dev": true
}
}
},
"@shikijs/core": {
- "version": "1.10.3",
- "integrity": "sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg==",
+ "version": "1.11.0",
+ "integrity": "sha512-VbEhDAhT/2ozO0TPr5/ZQBO/NWLqtk4ZiBf6NplYpF38mKjNfMMied5fNEfIfYfN+cdKvhDB4VMcKvG/g9c3zg==",
"dev": true,
"requires": {
"@types/hast": "^3.0.4"
@@ -12510,14 +14139,17 @@
"@sindresorhus/is": {
"version": "4.6.0",
"integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"@sindresorhus/merge-streams": {
"version": "2.3.0",
"integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
- "dev": true,
- "peer": true
+ "dev": true
+ },
+ "@touch4it/ical-timezones": {
+ "version": "1.9.0",
+ "integrity": "sha512-UAiZMrFlgMdOIaJDPsKu5S7OecyMLr3GGALJTYkRgHmsHAA/8Ixm1qD09ELP2X7U1lqgrctEgvKj9GzMbczC+g==",
+ "dev": true
},
"@tsconfig/node10": {
"version": "1.0.8",
@@ -12540,8 +14172,8 @@
"dev": true
},
"@types/body-parser": {
- "version": "1.19.0",
- "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==",
+ "version": "1.19.5",
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
"dev": true,
"requires": {
"@types/connect": "*",
@@ -12557,24 +14189,24 @@
}
},
"@types/connect": {
- "version": "3.4.34",
- "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==",
+ "version": "3.4.38",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/debug": {
- "version": "4.1.12",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
+ "version": "4.1.10",
+ "integrity": "sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==",
"dev": true,
"requires": {
"@types/ms": "*"
}
},
"@types/eslint": {
- "version": "8.56.10",
- "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==",
+ "version": "9.6.0",
+ "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==",
"dev": true,
"requires": {
"@types/estree": "*",
@@ -12630,8 +14262,8 @@
"dev": true
},
"@types/git-url-parse": {
- "version": "9.0.3",
- "integrity": "sha512-Wrb8zeghhpKbYuqAOg203g+9YSNlrZWNZYvwxJuDF4dTmerijqpnGbI79yCuPtHSXHPEwv1pAFUB4zsSqn82Og==",
+ "version": "9.0.2",
+ "integrity": "sha512-WLeklQNHJVFaChgqO0GdlSxvTPIofIPz/rK2UJdDXkkCYZjy8nonkl4RwssvD/BbKYoFHcvJ7qlAE1RvYNaHOQ==",
"dev": true
},
"@types/hast": {
@@ -12642,6 +14274,11 @@
"@types/unist": "*"
}
},
+ "@types/http-errors": {
+ "version": "2.0.4",
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+ "dev": true
+ },
"@types/istanbul-lib-coverage": {
"version": "2.0.4",
"integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
@@ -12653,13 +14290,18 @@
"dev": true
},
"@types/lodash": {
- "version": "4.17.6",
- "integrity": "sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==",
+ "version": "4.14.200",
+ "integrity": "sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==",
+ "dev": true
+ },
+ "@types/luxon": {
+ "version": "3.4.2",
+ "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==",
"dev": true
},
"@types/mime": {
- "version": "1.3.2",
- "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
+ "version": "1.3.5",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
"dev": true
},
"@types/mocha": {
@@ -12668,21 +14310,21 @@
"dev": true
},
"@types/ms": {
- "version": "0.7.34",
- "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
+ "version": "0.7.33",
+ "integrity": "sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==",
"dev": true
},
"@types/node": {
- "version": "20.14.10",
- "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==",
+ "version": "20.14.11",
+ "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==",
"dev": true,
"requires": {
"undici-types": "~5.26.4"
}
},
"@types/normalize-package-data": {
- "version": "2.4.4",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
+ "version": "2.4.3",
+ "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==",
"dev": true
},
"@types/qs": {
@@ -12696,8 +14338,8 @@
"dev": true
},
"@types/semantic-release": {
- "version": "20.0.6",
- "integrity": "sha512-8YJXvsT1FwMrNdZI1e6NBHPzZWendDiUsLryzxurdup+9LnV3s9fF4NgO0D3LkBfLMnocb4Ax6TQ5yFdF3dXGQ==",
+ "version": "20.0.4",
+ "integrity": "sha512-9zjlWBYjlRKKOtCu7mEcUTu5Ii5nRAujRe841R6ZfwzhLFCa+BGMdWMImzXZDeVj0ODpI37pO0FSKpMiR7sdww==",
"dev": true,
"requires": {
"@types/node": "*"
@@ -12706,8 +14348,7 @@
"@types/semver": {
"version": "7.5.8",
"integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
- "dev": true,
- "peer": true
+ "dev": true
},
"@types/send": {
"version": "0.17.4",
@@ -12719,12 +14360,13 @@
}
},
"@types/serve-static": {
- "version": "1.13.9",
- "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==",
+ "version": "1.15.7",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
"dev": true,
"requires": {
- "@types/mime": "^1",
- "@types/node": "*"
+ "@types/http-errors": "*",
+ "@types/node": "*",
+ "@types/send": "*"
}
},
"@types/unist": {
@@ -12733,71 +14375,148 @@
"dev": true
},
"@typescript-eslint/eslint-plugin": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-WePtbzWMaQO4qtGAXp3zzEN8yYZCEuAHVCERCUXgoSUTQ80F5UB7T5lYyA9ySpFDB7rqJ2ev98DtnbS4U3Ms+w==",
+ "version": "7.3.1",
+ "integrity": "sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==",
"dev": true,
"requires": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.0.0-alpha.41",
- "@typescript-eslint/type-utils": "8.0.0-alpha.41",
- "@typescript-eslint/utils": "8.0.0-alpha.41",
- "@typescript-eslint/visitor-keys": "8.0.0-alpha.41",
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "7.3.1",
+ "@typescript-eslint/type-utils": "7.3.1",
+ "@typescript-eslint/utils": "7.3.1",
+ "@typescript-eslint/visitor-keys": "7.3.1",
+ "debug": "^4.3.4",
"graphemer": "^1.4.0",
- "ignore": "^5.3.1",
+ "ignore": "^5.2.4",
"natural-compare": "^1.4.0",
- "ts-api-utils": "^1.3.0"
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "dependencies": {
+ "@typescript-eslint/type-utils": {
+ "version": "7.3.1",
+ "integrity": "sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/typescript-estree": "7.3.1",
+ "@typescript-eslint/utils": "7.3.1",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.0.1"
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "7.3.1",
+ "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==",
+ "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": "7.3.1",
+ "@typescript-eslint/types": "7.3.1",
+ "@typescript-eslint/typescript-estree": "7.3.1",
+ "semver": "^7.5.4"
+ }
+ }
}
},
"@typescript-eslint/parser": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-7HMXwy/q/59ZASBXz2FtdIsR7LgABrR8j2dTKq9GMR8OkjjdO4klxWSY/uOBozVt4UxlMRYsBdBDhEq4/tHRiw==",
+ "version": "7.3.1",
+ "integrity": "sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==",
"dev": true,
+ "peer": true,
"requires": {
- "@typescript-eslint/scope-manager": "8.0.0-alpha.41",
- "@typescript-eslint/types": "8.0.0-alpha.41",
- "@typescript-eslint/typescript-estree": "8.0.0-alpha.41",
- "@typescript-eslint/visitor-keys": "8.0.0-alpha.41",
+ "@typescript-eslint/scope-manager": "7.3.1",
+ "@typescript-eslint/types": "7.3.1",
+ "@typescript-eslint/typescript-estree": "7.3.1",
+ "@typescript-eslint/visitor-keys": "7.3.1",
"debug": "^4.3.4"
}
},
"@typescript-eslint/scope-manager": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-iNxuQ0TMVfFiMJ2al4bGd/mY9+aLtBxnHfo7B2xoVzR6cRFgUdBLlMa//MSIjSmVRpCEqNLQnkxpJb96tFG+xw==",
+ "version": "7.3.1",
+ "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.0.0-alpha.41",
- "@typescript-eslint/visitor-keys": "8.0.0-alpha.41"
+ "@typescript-eslint/types": "7.3.1",
+ "@typescript-eslint/visitor-keys": "7.3.1"
}
},
"@typescript-eslint/type-utils": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-+QIA1z/jrox6bbvqlyqBQjotpevieLTycfiuoKuqGcKoskFZV5Rma51BV8LCJacnOafwJtSi+7b8zDo8OsXUvA==",
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-KqU2e3KITMGlRfG4ehfO2zS0GutDWc+zV2nwbRDQdUfh1izgFDAh5UqiJ8YafXVzY1v0dnRggnmvjOMotjQa1w==",
"dev": true,
"requires": {
- "@typescript-eslint/typescript-estree": "8.0.0-alpha.41",
- "@typescript-eslint/utils": "8.0.0-alpha.41",
+ "@typescript-eslint/typescript-estree": "8.0.0-alpha.51",
+ "@typescript-eslint/utils": "8.0.0-alpha.51",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
+ },
+ "dependencies": {
+ "@typescript-eslint/types": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-joqeu3jITe9BbgXAggKKg9mBIGDL6mAf2JVlo00zWP50u4qnsa3NWKMwWp77pjtI9E2DPU0vlTEdL+v/3aTPJA==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-p3kD3rVdqmr4Iga86xzUR5wTsIKof/GsqnUMWZbmFpD3fmMXs1VLoXJegTqVMtWncu14dZUohRV2xPSScBAnxg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-bOLfR14nLfhO9BBD1YpmnQSTNTapAIegKsb4Ms1RAQXkJRKIeuLS42AEYRM8uvLiNLk0hDIBjCnMPTAyDAWLbw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "eslint-visitor-keys": "^3.4.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.5",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
}
},
"@typescript-eslint/types": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-n0P2FP3YC3pD3yoiCf4lHqbUP45xlnOk8HkjB+LtKSUZZWLLJ8k1ZXZtQj7MEX22tytCMj//Bmq403xFuCwfIg==",
+ "version": "7.3.1",
+ "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-adCr+vbLYTFhwhIwjIjjMxTdUYiPA2Jlyuhnbj092IzgLHtT79bvuwcgPWeTyLbFb/13SMKmOEka00xHiqLpig==",
+ "version": "7.3.1",
+ "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.0.0-alpha.41",
- "@typescript-eslint/visitor-keys": "8.0.0-alpha.41",
+ "@typescript-eslint/types": "7.3.1",
+ "@typescript-eslint/visitor-keys": "7.3.1",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"dependencies": {
"brace-expansion": {
@@ -12809,8 +14528,8 @@
}
},
"minimatch": {
- "version": "9.0.5",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "version": "9.0.3",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
"requires": {
"brace-expansion": "^2.0.1"
@@ -12819,30 +14538,79 @@
}
},
"@typescript-eslint/utils": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-DTxc9VdERS6iloiw1P5tgRDqRArmp/sIuvgdHBvGh2SiltEFc3VjLGnHHGSTr6GfH7tjFWvcCnCtxx+pjWfp5Q==",
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-OJac7/t6M/jQlgAQSM2yffKXZL8d/6vTbQPChC5v4oGHFuKHF2dEFeevNJlIS9iR6EtquRsHup2GDwqw6bWyrw==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.0.0-alpha.41",
- "@typescript-eslint/types": "8.0.0-alpha.41",
- "@typescript-eslint/typescript-estree": "8.0.0-alpha.41"
+ "@typescript-eslint/scope-manager": "8.0.0-alpha.51",
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/typescript-estree": "8.0.0-alpha.51"
+ },
+ "dependencies": {
+ "@typescript-eslint/scope-manager": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-zT8Ib31deJCqRVJepZOMFoHiFAsSHOh5TmedcFeqyiMuzrqBMtF95iv6mPJqFDIXNgxmTkahpRan1z043ckBnA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-joqeu3jITe9BbgXAggKKg9mBIGDL6mAf2JVlo00zWP50u4qnsa3NWKMwWp77pjtI9E2DPU0vlTEdL+v/3aTPJA==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-p3kD3rVdqmr4Iga86xzUR5wTsIKof/GsqnUMWZbmFpD3fmMXs1VLoXJegTqVMtWncu14dZUohRV2xPSScBAnxg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-bOLfR14nLfhO9BBD1YpmnQSTNTapAIegKsb4Ms1RAQXkJRKIeuLS42AEYRM8uvLiNLk0hDIBjCnMPTAyDAWLbw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "eslint-visitor-keys": "^3.4.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.5",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
}
},
"@typescript-eslint/visitor-keys": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-uetCAUBVC+YarBdZnWzDDgX11PpAEGV8Cw31I3d1xNrhx6/bJGThKX+holEmd3amMdnr4w/XUKH/4YuQOgtjDA==",
+ "version": "7.3.1",
+ "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.0.0-alpha.41",
- "eslint-visitor-keys": "^3.4.3"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "3.4.3",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true
- }
+ "@typescript-eslint/types": "7.3.1",
+ "eslint-visitor-keys": "^3.4.1"
}
},
"abbrev": {
@@ -12850,14 +14618,6 @@
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true
},
- "accepts": {
- "version": "1.3.8",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "requires": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- }
- },
"acorn": {
"version": "8.12.1",
"integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
@@ -12870,15 +14630,14 @@
"requires": {}
},
"acorn-walk": {
- "version": "8.2.0",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "version": "8.1.1",
+ "integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==",
"dev": true
},
"agent-base": {
- "version": "7.1.1",
- "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
+ "version": "7.1.0",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
"dev": true,
- "peer": true,
"requires": {
"debug": "^4.3.4"
}
@@ -12909,12 +14668,18 @@
"dev": true
},
"ansi-escapes": {
- "version": "7.0.0",
- "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==",
+ "version": "6.2.0",
+ "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
"dev": true,
- "peer": true,
"requires": {
- "environment": "^1.0.0"
+ "type-fest": "^3.0.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "3.13.1",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true
+ }
}
},
"ansi-regex": {
@@ -12944,36 +14709,46 @@
"picomatch": "^2.0.4"
}
},
+ "append-transform": {
+ "version": "2.0.0",
+ "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
+ "dev": true,
+ "requires": {
+ "default-require-extensions": "^3.0.0"
+ }
+ },
+ "archy": {
+ "version": "1.0.0",
+ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
+ "dev": true
+ },
"arg": {
"version": "4.1.3",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true
},
"argparse": {
- "version": "2.0.1",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "version": "1.0.10",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
},
"argv-formatter": {
"version": "1.0.0",
"integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=",
- "dev": true,
- "peer": true
+ "dev": true
},
"array-find-index": {
"version": "1.0.2",
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
"dev": true
},
- "array-flatten": {
- "version": "1.1.1",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
- },
"array-ify": {
"version": "1.0.0",
"integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
- "dev": true,
- "peer": true
+ "dev": true
},
"array-union": {
"version": "2.1.0",
@@ -12990,11 +14765,6 @@
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
"dev": true
},
- "async": {
- "version": "3.2.5",
- "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
- "dev": true
- },
"asynckit": {
"version": "0.4.0",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
@@ -13008,50 +14778,17 @@
"before-after-hook": {
"version": "3.0.2",
"integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==",
- "dev": true,
- "peer": true
+ "dev": true
},
"binary-extensions": {
"version": "2.2.0",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true
},
- "body-parser": {
- "version": "1.20.2",
- "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
- "requires": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- }
- }
- },
"bottleneck": {
"version": "2.19.5",
"integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"brace-expansion": {
"version": "1.1.11",
@@ -13063,11 +14800,11 @@
}
},
"braces": {
- "version": "3.0.2",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
"requires": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
}
},
"browser-stdout": {
@@ -13075,23 +14812,31 @@
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
"dev": true
},
+ "browserslist": {
+ "version": "4.16.6",
+ "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001219",
+ "colorette": "^1.2.2",
+ "electron-to-chromium": "^1.3.723",
+ "escalade": "^3.1.1",
+ "node-releases": "^1.1.71"
+ }
+ },
"buffer-from": {
"version": "1.1.1",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
"dev": true
},
"bundle-require": {
- "version": "4.0.1",
- "integrity": "sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==",
+ "version": "5.0.0",
+ "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==",
"dev": true,
"requires": {
"load-tsconfig": "^0.2.3"
}
},
- "bytes": {
- "version": "3.1.2",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
- },
"c8": {
"version": "10.1.2",
"integrity": "sha512-Qr6rj76eSshu5CgRYvktW0uM0CFY0yi4Fd5D0duDXO6sYinyopmftUiJVuzBQxQcwQLor7JWDVRP+dUfCmzgJw==",
@@ -13110,6 +14855,14 @@
"yargs-parser": "^21.1.1"
},
"dependencies": {
+ "brace-expansion": {
+ "version": "2.0.1",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
"cliui": {
"version": "8.0.1",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
@@ -13120,6 +14873,51 @@
"wrap-ansi": "^7.0.0"
}
},
+ "foreground-child": {
+ "version": "3.1.1",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ }
+ },
+ "glob": {
+ "version": "10.4.5",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
+ "requires": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.5",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "signal-exit": {
+ "version": "4.1.0",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true
+ },
+ "test-exclude": {
+ "version": "7.0.1",
+ "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==",
+ "dev": true,
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^10.4.1",
+ "minimatch": "^9.0.4"
+ }
+ },
"yargs": {
"version": "17.7.2",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
@@ -13146,9 +14944,21 @@
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
"dev": true
},
+ "caching-transform": {
+ "version": "4.0.0",
+ "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
+ "dev": true,
+ "requires": {
+ "hasha": "^5.0.0",
+ "make-dir": "^3.0.0",
+ "package-hash": "^4.0.0",
+ "write-file-atomic": "^3.0.0"
+ }
+ },
"call-bind": {
"version": "1.0.2",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
"requires": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
@@ -13159,6 +14969,16 @@
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true
},
+ "camelcase": {
+ "version": "5.3.1",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001237",
+ "integrity": "sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw==",
+ "dev": true
+ },
"caseless": {
"version": "0.12.0",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
@@ -13176,12 +14996,11 @@
"char-regex": {
"version": "1.0.2",
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"chokidar": {
- "version": "3.5.3",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "version": "3.6.0",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
"requires": {
"anymatch": "~3.1.2",
@@ -13203,7 +15022,6 @@
"version": "2.1.11",
"integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==",
"dev": true,
- "peer": true,
"requires": {
"chalk": "^4.0.0",
"highlight.js": "^10.7.1",
@@ -13214,10 +15032,9 @@
}
},
"cli-table3": {
- "version": "0.6.5",
- "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
+ "version": "0.6.3",
+ "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
"dev": true,
- "peer": true,
"requires": {
"@colors/colors": "1.5.0",
"string-width": "^4.2.0"
@@ -13246,6 +15063,11 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "colorette": {
+ "version": "1.2.2",
+ "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
+ "dev": true
+ },
"combined-stream": {
"version": "1.0.8",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
@@ -13255,20 +15077,19 @@
}
},
"commander": {
- "version": "11.1.0",
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "version": "11.0.0",
+ "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
"dev": true
},
"commondir": {
"version": "1.0.1",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
"dev": true
},
"compare-func": {
"version": "2.0.0",
"integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
"dev": true,
- "peer": true,
"requires": {
"array-ify": "^1.0.0",
"dot-prop": "^5.1.0"
@@ -13299,66 +15120,48 @@
"proto-list": "~1.2.1"
}
},
- "content-disposition": {
- "version": "0.5.4",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "requires": {
- "safe-buffer": "5.2.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
- "content-type": {
- "version": "1.0.5",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
+ "consola": {
+ "version": "3.2.3",
+ "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
+ "dev": true
},
"conventional-changelog-angular": {
- "version": "8.0.0",
- "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==",
+ "version": "7.0.0",
+ "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
"dev": true,
- "peer": true,
"requires": {
"compare-func": "^2.0.0"
}
},
"conventional-changelog-writer": {
- "version": "8.0.0",
- "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==",
+ "version": "7.0.1",
+ "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==",
"dev": true,
- "peer": true,
"requires": {
- "@types/semver": "^7.5.5",
- "conventional-commits-filter": "^5.0.0",
+ "conventional-commits-filter": "^4.0.0",
"handlebars": "^4.7.7",
- "meow": "^13.0.0",
- "semver": "^7.5.2"
+ "json-stringify-safe": "^5.0.1",
+ "meow": "^12.0.1",
+ "semver": "^7.5.2",
+ "split2": "^4.0.0"
}
},
"conventional-commits-filter": {
- "version": "5.0.0",
- "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==",
- "dev": true,
- "peer": true
+ "version": "4.0.0",
+ "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==",
+ "dev": true
},
"conventional-commits-parser": {
- "version": "6.0.0",
- "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==",
+ "version": "5.0.0",
+ "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
"dev": true,
- "peer": true,
"requires": {
- "meow": "^13.0.0"
+ "is-text-path": "^2.0.0",
+ "JSONStream": "^1.3.5",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
}
},
- "convert-hrtime": {
- "version": "5.0.0",
- "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==",
- "dev": true,
- "peer": true
- },
"convert-source-map": {
"version": "1.7.0",
"integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
@@ -13367,14 +15170,6 @@
"safe-buffer": "~5.1.1"
}
},
- "cookie": {
- "version": "0.6.0",
- "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
- },
- "cookie-signature": {
- "version": "1.0.6",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
- },
"core-util-is": {
"version": "1.0.2",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
@@ -13384,12 +15179,26 @@
"version": "9.0.0",
"integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
"dev": true,
- "peer": true,
"requires": {
"env-paths": "^2.2.1",
"import-fresh": "^3.3.0",
"js-yaml": "^4.1.0",
"parse-json": "^5.2.0"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "2.0.1",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ }
}
},
"create-require": {
@@ -13422,6 +15231,11 @@
}
}
},
+ "dayjs": {
+ "version": "1.11.10",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==",
+ "dev": true
+ },
"debug": {
"version": "4.3.5",
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
@@ -13435,6 +15249,11 @@
"integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
"dev": true
},
+ "decamelize": {
+ "version": "1.2.0",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
"deep-extend": {
"version": "0.6.0",
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
@@ -13445,19 +15264,19 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
+ "default-require-extensions": {
+ "version": "3.0.0",
+ "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
+ "dev": true,
+ "requires": {
+ "strip-bom": "^4.0.0"
+ }
+ },
"delayed-stream": {
"version": "1.0.0",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true
},
- "depd": {
- "version": "2.0.0",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
- },
- "destroy": {
- "version": "1.2.0",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
- },
"dezalgo": {
"version": "1.0.3",
"integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
@@ -13484,7 +15303,6 @@
"version": "5.3.0",
"integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
"dev": true,
- "peer": true,
"requires": {
"is-obj": "^2.0.0"
}
@@ -13493,7 +15311,6 @@
"version": "0.1.4",
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
"dev": true,
- "peer": true,
"requires": {
"readable-stream": "^2.0.2"
}
@@ -13503,9 +15320,10 @@
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true
},
- "ee-first": {
- "version": "1.1.1",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ "electron-to-chromium": {
+ "version": "1.3.752",
+ "integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==",
+ "dev": true
},
"email-addresses": {
"version": "5.0.0",
@@ -13520,12 +15338,7 @@
"emojilib": {
"version": "2.4.0",
"integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==",
- "dev": true,
- "peer": true
- },
- "encodeurl": {
- "version": "1.0.2",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
+ "dev": true
},
"entities": {
"version": "4.5.0",
@@ -13536,7 +15349,6 @@
"version": "11.0.0",
"integrity": "sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==",
"dev": true,
- "peer": true,
"requires": {
"execa": "^8.0.0",
"java-properties": "^1.0.2"
@@ -13546,7 +15358,6 @@
"version": "8.0.1",
"integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
- "peer": true,
"requires": {
"cross-spawn": "^7.0.3",
"get-stream": "^8.0.1",
@@ -13562,32 +15373,27 @@
"get-stream": {
"version": "8.0.1",
"integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
- "dev": true,
- "peer": true
+ "dev": true
},
"human-signals": {
"version": "5.0.0",
"integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
- "dev": true,
- "peer": true
+ "dev": true
},
"is-stream": {
"version": "3.0.0",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true,
- "peer": true
+ "dev": true
},
"mimic-fn": {
"version": "4.0.0",
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"npm-run-path": {
- "version": "5.3.0",
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "version": "5.2.0",
+ "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
"dev": true,
- "peer": true,
"requires": {
"path-key": "^4.0.0"
}
@@ -13596,7 +15402,6 @@
"version": "6.0.0",
"integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
- "peer": true,
"requires": {
"mimic-fn": "^4.0.0"
}
@@ -13604,34 +15409,24 @@
"path-key": {
"version": "4.0.0",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dev": true,
- "peer": true
+ "dev": true
},
"signal-exit": {
"version": "4.1.0",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"strip-final-newline": {
"version": "3.0.0",
"integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dev": true,
- "peer": true
+ "dev": true
}
}
},
"env-paths": {
"version": "2.2.1",
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "dev": true,
- "peer": true
- },
- "environment": {
- "version": "1.1.0",
- "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
- "dev": true,
- "peer": true
+ "dev": true
},
"error-ex": {
"version": "1.3.2",
@@ -13641,34 +15436,40 @@
"is-arrayish": "^0.2.1"
}
},
+ "es6-error": {
+ "version": "4.1.1",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
+ "dev": true
+ },
"esbuild": {
- "version": "0.21.5",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dev": true,
- "requires": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
+ "version": "0.23.0",
+ "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==",
+ "dev": true,
+ "requires": {
+ "@esbuild/aix-ppc64": "0.23.0",
+ "@esbuild/android-arm": "0.23.0",
+ "@esbuild/android-arm64": "0.23.0",
+ "@esbuild/android-x64": "0.23.0",
+ "@esbuild/darwin-arm64": "0.23.0",
+ "@esbuild/darwin-x64": "0.23.0",
+ "@esbuild/freebsd-arm64": "0.23.0",
+ "@esbuild/freebsd-x64": "0.23.0",
+ "@esbuild/linux-arm": "0.23.0",
+ "@esbuild/linux-arm64": "0.23.0",
+ "@esbuild/linux-ia32": "0.23.0",
+ "@esbuild/linux-loong64": "0.23.0",
+ "@esbuild/linux-mips64el": "0.23.0",
+ "@esbuild/linux-ppc64": "0.23.0",
+ "@esbuild/linux-riscv64": "0.23.0",
+ "@esbuild/linux-s390x": "0.23.0",
+ "@esbuild/linux-x64": "0.23.0",
+ "@esbuild/netbsd-x64": "0.23.0",
+ "@esbuild/openbsd-arm64": "0.23.0",
+ "@esbuild/openbsd-x64": "0.23.0",
+ "@esbuild/sunos-x64": "0.23.0",
+ "@esbuild/win32-arm64": "0.23.0",
+ "@esbuild/win32-ia32": "0.23.0",
+ "@esbuild/win32-x64": "0.23.0"
}
},
"escalade": {
@@ -13678,7 +15479,8 @@
},
"escape-html": {
"version": "1.0.3",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
},
"escape-string-regexp": {
"version": "4.0.0",
@@ -13686,15 +15488,15 @@
"dev": true
},
"eslint": {
- "version": "9.6.0",
- "integrity": "sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==",
+ "version": "9.7.0",
+ "integrity": "sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
+ "@eslint-community/regexpp": "^4.11.0",
"@eslint/config-array": "^0.17.0",
"@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "9.6.0",
+ "@eslint/js": "9.7.0",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.3.0",
"@nodelib/fs.walk": "^1.2.8",
@@ -13703,7 +15505,7 @@
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^8.0.1",
+ "eslint-scope": "^8.0.2",
"eslint-visitor-keys": "^4.0.0",
"espree": "^10.1.0",
"esquery": "^1.5.0",
@@ -13752,8 +15554,8 @@
}
},
"eslint-compat-utils": {
- "version": "0.5.1",
- "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==",
+ "version": "0.5.0",
+ "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
"dev": true,
"requires": {
"semver": "^7.5.4"
@@ -13774,25 +15576,17 @@
}
},
"eslint-scope": {
- "version": "8.0.1",
- "integrity": "sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==",
+ "version": "8.0.2",
+ "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==",
"dev": true,
"requires": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
}
},
- "eslint-utils": {
- "version": "3.0.0",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^2.0.0"
- }
- },
"eslint-visitor-keys": {
- "version": "2.1.0",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "version": "3.4.3",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true
},
"esm": {
@@ -13808,15 +15602,13 @@
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.4.1"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "3.4.3",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true
- }
}
},
+ "esprima": {
+ "version": "4.0.1",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
"esquery": {
"version": "1.5.0",
"integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
@@ -13843,10 +15635,6 @@
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true
},
- "etag": {
- "version": "1.8.1",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
- },
"execa": {
"version": "5.1.1",
"integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
@@ -13863,60 +15651,6 @@
"strip-final-newline": "^2.0.0"
}
},
- "express": {
- "version": "4.19.2",
- "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
- "requires": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.2",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.6.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "safe-buffer": {
- "version": "5.2.1",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
"fast-deep-equal": {
"version": "3.1.3",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
@@ -13991,42 +15725,16 @@
}
},
"fill-range": {
- "version": "7.0.1",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
},
- "finalhandler": {
- "version": "1.2.0",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- }
- }
- },
"find-cache-dir": {
- "version": "3.3.2",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "version": "3.3.1",
+ "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
"dev": true,
"requires": {
"commondir": "^1.0.1",
@@ -14046,17 +15754,14 @@
"find-up-simple": {
"version": "1.0.0",
"integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"find-versions": {
- "version": "6.0.0",
- "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==",
+ "version": "5.1.0",
+ "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==",
"dev": true,
- "peer": true,
"requires": {
- "semver-regex": "^4.0.5",
- "super-regex": "^1.0.0"
+ "semver-regex": "^4.0.5"
}
},
"flat": {
@@ -14079,19 +15784,12 @@
"dev": true
},
"foreground-child": {
- "version": "3.2.1",
- "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
+ "version": "2.0.0",
+ "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "dependencies": {
- "signal-exit": {
- "version": "4.1.0",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true
- }
+ "signal-exit": "^3.0.2"
}
},
"form-data": {
@@ -14104,27 +15802,23 @@
"mime-types": "^2.1.12"
}
},
- "forwarded": {
- "version": "0.2.0",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
- },
- "fresh": {
- "version": "0.5.2",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
- },
"from2": {
"version": "2.3.0",
"integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
"dev": true,
- "peer": true,
"requires": {
"inherits": "^2.0.1",
"readable-stream": "^2.0.0"
}
},
+ "fromentries": {
+ "version": "1.3.2",
+ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
+ "dev": true
+ },
"fs-extra": {
- "version": "11.2.0",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+ "version": "11.1.1",
+ "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
"dev": true,
"requires": {
"graceful-fs": "^4.2.0",
@@ -14150,13 +15844,13 @@
},
"function-bind": {
"version": "1.1.1",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
},
- "function-timeout": {
- "version": "1.0.2",
- "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==",
- "dev": true,
- "peer": true
+ "gensync": {
+ "version": "1.0.0-beta.2",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true
},
"get-caller-file": {
"version": "2.0.5",
@@ -14166,20 +15860,26 @@
"get-intrinsic": {
"version": "1.1.1",
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "dev": true,
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1"
}
},
+ "get-package-type": {
+ "version": "0.1.0",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true
+ },
"get-stream": {
"version": "6.0.1",
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"dev": true
},
"gh-pages": {
- "version": "6.1.1",
- "integrity": "sha512-upnohfjBwN5hBP9w2dPE7HO5JJTHzSGMV1JrLrHvNuqmjoYHg6TBrCcnEoorjG/e0ejbuvnwyKMdTyM40PEByw==",
+ "version": "6.0.0",
+ "integrity": "sha512-FXZWJRsvP/fK2HJGY+Di6FRNHvqFF6gOIELaopDjXXgjeOYSNURcuYwEO/6bwuq6koP5Lnkvnr5GViXzuOB89g==",
"dev": true,
"requires": {
"async": "^3.2.4",
@@ -14199,6 +15899,11 @@
"array-uniq": "^1.0.1"
}
},
+ "async": {
+ "version": "3.2.4",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+ "dev": true
+ },
"globby": {
"version": "6.1.0",
"integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
@@ -14222,7 +15927,6 @@
"version": "1.2.0",
"integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=",
"dev": true,
- "peer": true,
"requires": {
"argv-formatter": "~1.0.0",
"spawn-error-forwarder": "~1.0.0",
@@ -14236,7 +15940,6 @@
"version": "1.0.0",
"integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=",
"dev": true,
- "peer": true,
"requires": {
"through2": "~2.0.0"
}
@@ -14245,7 +15948,6 @@
"version": "2.0.5",
"integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
"dev": true,
- "peer": true,
"requires": {
"readable-stream": "~2.3.6",
"xtend": "~4.0.1"
@@ -14271,8 +15973,8 @@
}
},
"glob": {
- "version": "7.1.7",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "version": "7.2.0",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
@@ -14323,7 +16025,6 @@
"version": "4.7.8",
"integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
"dev": true,
- "peer": true,
"requires": {
"minimist": "^1.2.5",
"neo-async": "^2.6.2",
@@ -14335,6 +16036,7 @@
"has": {
"version": "1.0.3",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
"requires": {
"function-bind": "^1.1.1"
}
@@ -14346,7 +16048,24 @@
},
"has-symbols": {
"version": "1.0.2",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
+ "dev": true
+ },
+ "hasha": {
+ "version": "5.2.2",
+ "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
+ "dev": true,
+ "requires": {
+ "is-stream": "^2.0.0",
+ "type-fest": "^0.8.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.8.1",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ }
+ }
},
"he": {
"version": "1.2.0",
@@ -14356,18 +16075,16 @@
"highlight.js": {
"version": "10.7.3",
"integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
- "dev": true,
- "peer": true
+ "dev": true
},
"hook-std": {
"version": "3.0.0",
"integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"hosted-git-info": {
- "version": "7.0.2",
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "version": "7.0.1",
+ "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
"dev": true,
"requires": {
"lru-cache": "^10.0.1"
@@ -14389,22 +16106,10 @@
"parse-cache-control": "^1.0.1"
}
},
- "http-errors": {
- "version": "2.0.0",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "requires": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- }
- },
"http-proxy-agent": {
"version": "7.0.2",
"integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
- "peer": true,
"requires": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
@@ -14426,10 +16131,9 @@
}
},
"https-proxy-agent": {
- "version": "7.0.5",
- "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
+ "version": "7.0.4",
+ "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
"dev": true,
- "peer": true,
"requires": {
"agent-base": "^7.0.2",
"debug": "4"
@@ -14440,13 +16144,6 @@
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
"dev": true
},
- "iconv-lite": {
- "version": "0.4.24",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
"ignore": {
"version": "5.3.1",
"integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
@@ -14461,21 +16158,24 @@
"resolve-from": "^4.0.0"
}
},
+ "import-from": {
+ "version": "4.0.0",
+ "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==",
+ "dev": true
+ },
"import-from-esm": {
- "version": "1.3.4",
- "integrity": "sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==",
+ "version": "1.3.3",
+ "integrity": "sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==",
"dev": true,
- "peer": true,
"requires": {
"debug": "^4.3.4",
"import-meta-resolve": "^4.0.0"
}
},
"import-meta-resolve": {
- "version": "4.1.0",
- "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
- "dev": true,
- "peer": true
+ "version": "4.0.0",
+ "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==",
+ "dev": true
},
"imurmurhash": {
"version": "0.1.4",
@@ -14503,7 +16203,8 @@
},
"inherits": {
"version": "2.0.4",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
},
"ini": {
"version": "1.3.8",
@@ -14514,16 +16215,11 @@
"version": "7.0.0",
"integrity": "sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==",
"dev": true,
- "peer": true,
"requires": {
"from2": "^2.3.0",
"p-is-promise": "^3.0.0"
}
},
- "ipaddr.js": {
- "version": "1.9.1",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
- },
"is-arrayish": {
"version": "0.2.1",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
@@ -14538,8 +16234,8 @@
}
},
"is-core-module": {
- "version": "2.4.0",
- "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
+ "version": "2.12.0",
+ "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
"dev": true,
"requires": {
"has": "^1.0.3"
@@ -14571,8 +16267,7 @@
"is-obj": {
"version": "2.0.0",
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dev": true,
- "peer": true
+ "dev": true
},
"is-path-inside": {
"version": "3.0.3",
@@ -14597,11 +16292,29 @@
"integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
"dev": true
},
+ "is-text-path": {
+ "version": "2.0.0",
+ "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
+ "dev": true,
+ "requires": {
+ "text-extensions": "^2.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
"is-unicode-supported": {
"version": "0.1.0",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"dev": true
},
+ "is-windows": {
+ "version": "1.0.2",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
"isarray": {
"version": "1.0.0",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
@@ -14613,10 +16326,9 @@
"dev": true
},
"issue-parser": {
- "version": "7.0.1",
- "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==",
+ "version": "7.0.0",
+ "integrity": "sha512-jgAw78HO3gs9UrKqJNQvfDj9Ouy8Mhu40fbEJ8yXff4MW8+/Fcn9iFjyWUQ6SKbX8ipPk3X5A3AyfYHRu6uVLw==",
"dev": true,
- "peer": true,
"requires": {
"lodash.capitalize": "^4.2.1",
"lodash.escaperegexp": "^4.1.2",
@@ -14626,10 +16338,57 @@
}
},
"istanbul-lib-coverage": {
- "version": "3.2.2",
- "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "version": "3.2.0",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
"dev": true
},
+ "istanbul-lib-hook": {
+ "version": "3.0.0",
+ "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
+ "dev": true,
+ "requires": {
+ "append-transform": "^2.0.0"
+ }
+ },
+ "istanbul-lib-instrument": {
+ "version": "4.0.3",
+ "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.7.5",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.0.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-processinfo": {
+ "version": "2.0.2",
+ "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==",
+ "dev": true,
+ "requires": {
+ "archy": "^1.0.0",
+ "cross-spawn": "^7.0.0",
+ "istanbul-lib-coverage": "^3.0.0-alpha.1",
+ "make-dir": "^3.0.0",
+ "p-map": "^3.0.0",
+ "rimraf": "^3.0.0",
+ "uuid": "^3.3.3"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.4.0",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true
+ }
+ }
+ },
"istanbul-lib-report": {
"version": "3.0.1",
"integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
@@ -14650,9 +16409,19 @@
}
}
},
+ "istanbul-lib-source-maps": {
+ "version": "4.0.0",
+ "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ }
+ },
"istanbul-reports": {
- "version": "3.1.7",
- "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "version": "3.1.6",
+ "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
"dev": true,
"requires": {
"html-escaper": "^2.0.0",
@@ -14660,8 +16429,8 @@
}
},
"jackspeak": {
- "version": "3.4.1",
- "integrity": "sha512-U23pQPDnmYybVkYjObcuYMk43VRlMLLqLI+RdZy8s8WV8WsxO9SnqSroKaluuvcNOdCAlauKszDwd+umbot5Mg==",
+ "version": "3.4.3",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"dev": true,
"requires": {
"@isaacs/cliui": "^8.0.2",
@@ -14671,8 +16440,7 @@
"java-properties": {
"version": "1.0.2",
"integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==",
- "dev": true,
- "peer": true
+ "dev": true
},
"joycon": {
"version": "3.1.1",
@@ -14685,13 +16453,19 @@
"dev": true
},
"js-yaml": {
- "version": "4.1.0",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "3.14.1",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
"requires": {
- "argparse": "^2.0.1"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
}
},
+ "jsesc": {
+ "version": "2.5.2",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
"json-buffer": {
"version": "3.0.1",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
@@ -14700,8 +16474,7 @@
"json-parse-better-errors": {
"version": "1.0.2",
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"json-parse-even-better-errors": {
"version": "2.3.1",
@@ -14723,23 +16496,20 @@
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"dev": true
},
+ "json5": {
+ "version": "2.2.3",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true
+ },
"jsonc-eslint-parser": {
- "version": "2.0.4",
- "integrity": "sha512-a3ZRus4qea0tSRCW2qvF/spFt7iCpdeJbiDjxbFZRZ87JCF8sI8hbxpVvUBVyZ3fLB/RQnTi+Y/yZbMlqt1BCg==",
+ "version": "2.1.0",
+ "integrity": "sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==",
"dev": true,
"requires": {
"acorn": "^8.5.0",
- "eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.0.0",
"espree": "^9.0.0",
"semver": "^7.3.5"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "3.1.0",
- "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
- "dev": true
- }
}
},
"jsonfile": {
@@ -14751,6 +16521,29 @@
"universalify": "^2.0.0"
}
},
+ "jsonparse": {
+ "version": "1.3.1",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
+ "dev": true
+ },
+ "JSONStream": {
+ "version": "1.3.5",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+ "dev": true,
+ "requires": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ }
+ },
+ "jsr": {
+ "version": "0.12.2",
+ "integrity": "sha512-VjRK2vqfFxz6ml1NEbRLwD0+YAT90SXX9qKU+w1lytbAz7uaB4ewLxuuilr+R049OJ/p4MbWEvCRWISCjCZyfQ==",
+ "dev": true,
+ "requires": {
+ "kolorist": "^1.8.0",
+ "node-stream-zip": "^1.15.0"
+ }
+ },
"keyv": {
"version": "4.5.4",
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
@@ -14759,6 +16552,11 @@
"json-buffer": "3.0.1"
}
},
+ "kolorist": {
+ "version": "1.8.0",
+ "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
+ "dev": true
+ },
"levn": {
"version": "0.4.1",
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
@@ -14871,7 +16669,6 @@
"version": "4.0.0",
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
"dev": true,
- "peer": true,
"requires": {
"graceful-fs": "^4.1.2",
"parse-json": "^4.0.0",
@@ -14883,7 +16680,6 @@
"version": "4.0.0",
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
- "peer": true,
"requires": {
"error-ex": "^1.3.1",
"json-parse-better-errors": "^1.0.1"
@@ -14892,8 +16688,7 @@
"strip-bom": {
"version": "3.0.0",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true,
- "peer": true
+ "dev": true
}
}
},
@@ -14923,14 +16718,17 @@
"lodash.capitalize": {
"version": "4.2.1",
"integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"lodash.escaperegexp": {
"version": "4.1.2",
"integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
- "dev": true,
- "peer": true
+ "dev": true
+ },
+ "lodash.flattendeep": {
+ "version": "4.4.0",
+ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
+ "dev": true
},
"lodash.isempty": {
"version": "4.4.0",
@@ -14950,8 +16748,7 @@
"lodash.isplainobject": {
"version": "4.0.6",
"integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "dev": true,
- "peer": true
+ "dev": true
},
"lodash.isstring": {
"version": "4.0.1",
@@ -14971,8 +16768,7 @@
"lodash.uniqby": {
"version": "4.7.0",
"integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==",
- "dev": true,
- "peer": true
+ "dev": true
},
"log-symbols": {
"version": "4.1.0",
@@ -14992,8 +16788,8 @@
}
},
"lru-cache": {
- "version": "10.3.1",
- "integrity": "sha512-9/8QXrtbGeMB6LxwQd4x1tIMnsmUxMvIH/qWGsccz6bt9Uln3S+sgAaqfQNhbGA8ufzs2fHuP/yqapGgP9Hh2g==",
+ "version": "10.4.3",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true
},
"lunr": {
@@ -15001,6 +16797,11 @@
"integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
"dev": true
},
+ "luxon": {
+ "version": "3.4.4",
+ "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==",
+ "dev": true
+ },
"make-dir": {
"version": "3.1.0",
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
@@ -15010,8 +16811,8 @@
},
"dependencies": {
"semver": {
- "version": "6.3.1",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "version": "6.3.0",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
}
}
@@ -15032,24 +16833,30 @@
"mdurl": "^2.0.0",
"punycode.js": "^2.3.1",
"uc.micro": "^2.1.0"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "2.0.1",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ }
}
},
"marked": {
- "version": "12.0.2",
- "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==",
+ "version": "4.3.0",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
"dev": true,
"peer": true
},
"marked-terminal": {
- "version": "7.1.0",
- "integrity": "sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==",
+ "version": "7.0.0",
+ "integrity": "sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==",
"dev": true,
- "peer": true,
"requires": {
- "ansi-escapes": "^7.0.0",
+ "ansi-escapes": "^6.2.0",
"chalk": "^5.3.0",
"cli-highlight": "^2.1.11",
- "cli-table3": "^0.6.5",
+ "cli-table3": "^0.6.3",
"node-emoji": "^2.1.3",
"supports-hyperlinks": "^3.0.0"
},
@@ -15057,8 +16864,7 @@
"chalk": {
"version": "5.3.0",
"integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
- "dev": true,
- "peer": true
+ "dev": true
}
}
},
@@ -15067,19 +16873,10 @@
"integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
"dev": true
},
- "media-typer": {
- "version": "0.3.0",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
- },
"meow": {
- "version": "13.2.0",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
- "dev": true,
- "peer": true
- },
- "merge-descriptors": {
- "version": "1.0.1",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ "version": "12.1.1",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
+ "dev": true
},
"merge-stream": {
"version": "2.0.0",
@@ -15091,10 +16888,6 @@
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true
},
- "methods": {
- "version": "1.1.2",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
- },
"micromatch": {
"version": "4.0.4",
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
@@ -15105,20 +16898,21 @@
}
},
"mime": {
- "version": "4.0.4",
- "integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==",
- "dev": true,
- "peer": true
+ "version": "4.0.1",
+ "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==",
+ "dev": true
},
"mime-db": {
- "version": "1.52.0",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ "version": "1.48.0",
+ "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==",
+ "dev": true
},
"mime-types": {
- "version": "2.1.35",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "version": "2.1.31",
+ "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==",
+ "dev": true,
"requires": {
- "mime-db": "1.52.0"
+ "mime-db": "1.48.0"
}
},
"mimic-fn": {
@@ -15145,16 +16939,16 @@
"dev": true
},
"mkdirp": {
- "version": "0.5.5",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "version": "0.5.6",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"dev": true,
"requires": {
- "minimist": "^1.2.5"
+ "minimist": "^1.2.6"
}
},
"mocha": {
- "version": "10.6.0",
- "integrity": "sha512-hxjt4+EEB0SA0ZDygSS015t65lJw/I2yRCS3Ae+SJ5FrbzrXgfYwJr96f0OvIXdj7h4lv/vLCrH3rkiuizFSvw==",
+ "version": "10.7.0",
+ "integrity": "sha512-v8/rBWr2VO5YkspYINnvu81inSz2y3ODJrhO175/Exzor1RcEZZkizgE2A+w/CAXXoESS8Kys5E62dOHGHzULA==",
"dev": true,
"requires": {
"ansi-colors": "^4.1.3",
@@ -15179,6 +16973,11 @@
"yargs-unparser": "^2.0.0"
},
"dependencies": {
+ "argparse": {
+ "version": "2.0.1",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
"brace-expansion": {
"version": "2.0.1",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
@@ -15199,6 +16998,14 @@
"once": "^1.3.0"
}
},
+ "js-yaml": {
+ "version": "4.1.0",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
"minimatch": {
"version": "5.1.6",
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
@@ -15264,8 +17071,8 @@
"dev": true
},
"fs-extra": {
- "version": "10.1.0",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "version": "10.0.1",
+ "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==",
"dev": true,
"requires": {
"graceful-fs": "^4.2.0",
@@ -15274,8 +17081,8 @@
}
},
"yargs": {
- "version": "17.5.1",
- "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
+ "version": "17.4.0",
+ "integrity": "sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==",
"dev": true,
"requires": {
"cliui": "^7.0.2",
@@ -15294,6 +17101,19 @@
}
}
},
+ "moment": {
+ "version": "2.30.1",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "dev": true
+ },
+ "moment-timezone": {
+ "version": "0.5.45",
+ "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==",
+ "dev": true,
+ "requires": {
+ "moment": "^2.29.4"
+ }
+ },
"ms": {
"version": "2.1.2",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
@@ -15314,26 +17134,20 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
- "negotiator": {
- "version": "0.6.3",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
- },
"neo-async": {
"version": "2.6.2",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"nerf-dart": {
"version": "1.0.0",
- "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==",
+ "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=",
"dev": true
},
"node-emoji": {
"version": "2.1.3",
"integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==",
"dev": true,
- "peer": true,
"requires": {
"@sindresorhus/is": "^4.6.0",
"char-regex": "^1.0.2",
@@ -15341,6 +17155,24 @@
"skin-tone": "^2.0.0"
}
},
+ "node-preload": {
+ "version": "0.2.1",
+ "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
+ "dev": true,
+ "requires": {
+ "process-on-spawn": "^1.0.0"
+ }
+ },
+ "node-releases": {
+ "version": "1.1.73",
+ "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
+ "dev": true
+ },
+ "node-stream-zip": {
+ "version": "1.15.0",
+ "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==",
+ "dev": true
+ },
"nopt": {
"version": "4.0.3",
"integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
@@ -15351,11 +17183,12 @@
}
},
"normalize-package-data": {
- "version": "6.0.2",
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
+ "version": "6.0.0",
+ "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
"dev": true,
"requires": {
"hosted-git-info": "^7.0.0",
+ "is-core-module": "^2.8.1",
"semver": "^7.3.5",
"validate-npm-package-license": "^3.0.4"
}
@@ -15365,86 +17198,89 @@
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
- "normalize-url": {
- "version": "8.0.1",
- "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==",
- "dev": true
- },
"npm": {
- "version": "10.8.1",
- "integrity": "sha512-Dp1C6SvSMYQI7YHq/y2l94uvI+59Eqbu1EpuKQHQ8p16txXRuRit5gH3Lnaagk2aXDIjg/Iru9pd05bnneKgdw==",
+ "version": "10.5.0",
+ "integrity": "sha512-Ejxwvfh9YnWVU2yA5FzoYLTW52vxHCz+MHrOFg9Cc8IFgF/6f5AGPAvb5WTay5DIUP1NIfN3VBZ0cLlGO0Ys+A==",
"dev": true,
"requires": {
"@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/arborist": "^7.5.3",
- "@npmcli/config": "^8.3.3",
- "@npmcli/fs": "^3.1.1",
- "@npmcli/map-workspaces": "^3.0.6",
- "@npmcli/package-json": "^5.1.1",
- "@npmcli/promise-spawn": "^7.0.2",
- "@npmcli/redact": "^2.0.0",
- "@npmcli/run-script": "^8.1.0",
- "@sigstore/tuf": "^2.3.4",
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/config": "^8.0.2",
+ "@npmcli/fs": "^3.1.0",
+ "@npmcli/map-workspaces": "^3.0.4",
+ "@npmcli/package-json": "^5.0.0",
+ "@npmcli/promise-spawn": "^7.0.1",
+ "@npmcli/run-script": "^7.0.4",
+ "@sigstore/tuf": "^2.3.1",
"abbrev": "^2.0.0",
"archy": "~1.0.0",
- "cacache": "^18.0.3",
+ "cacache": "^18.0.2",
"chalk": "^5.3.0",
"ci-info": "^4.0.0",
"cli-columns": "^4.0.0",
+ "cli-table3": "^0.6.3",
+ "columnify": "^1.6.0",
"fastest-levenshtein": "^1.0.16",
"fs-minipass": "^3.0.3",
- "glob": "^10.4.1",
+ "glob": "^10.3.10",
"graceful-fs": "^4.2.11",
- "hosted-git-info": "^7.0.2",
- "ini": "^4.1.3",
- "init-package-json": "^6.0.3",
- "is-cidr": "^5.1.0",
- "json-parse-even-better-errors": "^3.0.2",
- "libnpmaccess": "^8.0.6",
- "libnpmdiff": "^6.1.3",
- "libnpmexec": "^8.1.2",
- "libnpmfund": "^5.0.11",
- "libnpmhook": "^10.0.5",
- "libnpmorg": "^6.0.6",
- "libnpmpack": "^7.0.3",
- "libnpmpublish": "^9.0.9",
- "libnpmsearch": "^7.0.6",
- "libnpmteam": "^6.0.5",
- "libnpmversion": "^6.0.3",
- "make-fetch-happen": "^13.0.1",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.1",
+ "hosted-git-info": "^7.0.1",
+ "ini": "^4.1.1",
+ "init-package-json": "^6.0.0",
+ "is-cidr": "^5.0.3",
+ "json-parse-even-better-errors": "^3.0.1",
+ "libnpmaccess": "^8.0.1",
+ "libnpmdiff": "^6.0.3",
+ "libnpmexec": "^7.0.4",
+ "libnpmfund": "^5.0.1",
+ "libnpmhook": "^10.0.0",
+ "libnpmorg": "^6.0.1",
+ "libnpmpack": "^6.0.3",
+ "libnpmpublish": "^9.0.2",
+ "libnpmsearch": "^7.0.0",
+ "libnpmteam": "^6.0.0",
+ "libnpmversion": "^5.0.1",
+ "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": "^10.1.0",
- "nopt": "^7.2.1",
- "normalize-package-data": "^6.0.1",
+ "node-gyp": "^10.0.1",
+ "nopt": "^7.2.0",
+ "normalize-package-data": "^6.0.0",
"npm-audit-report": "^5.0.0",
"npm-install-checks": "^6.3.0",
- "npm-package-arg": "^11.0.2",
- "npm-pick-manifest": "^9.0.1",
- "npm-profile": "^10.0.0",
- "npm-registry-fetch": "^17.0.1",
- "npm-user-validate": "^2.0.1",
+ "npm-package-arg": "^11.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-profile": "^9.0.0",
+ "npm-registry-fetch": "^16.1.0",
+ "npm-user-validate": "^2.0.0",
+ "npmlog": "^7.0.1",
"p-map": "^4.0.0",
- "pacote": "^18.0.6",
+ "pacote": "^17.0.6",
"parse-conflict-json": "^3.0.1",
- "proc-log": "^4.2.0",
+ "proc-log": "^3.0.0",
"qrcode-terminal": "^0.12.0",
- "read": "^3.0.1",
- "semver": "^7.6.2",
- "spdx-expression-parse": "^4.0.0",
- "ssri": "^10.0.6",
+ "read": "^2.1.0",
+ "semver": "^7.6.0",
+ "spdx-expression-parse": "^3.0.1",
+ "ssri": "^10.0.5",
"supports-color": "^9.4.0",
- "tar": "^6.2.1",
+ "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.1",
+ "validate-npm-package-name": "^5.0.0",
"which": "^4.0.0",
"write-file-atomic": "^5.0.1"
},
"dependencies": {
+ "@colors/colors": {
+ "version": "1.5.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
"@isaacs/cliui": {
"version": "8.0.2",
"bundled": true,
@@ -15494,7 +17330,7 @@
"dev": true
},
"@npmcli/agent": {
- "version": "2.2.2",
+ "version": "2.2.1",
"bundled": true,
"dev": true,
"requires": {
@@ -15502,68 +17338,84 @@
"http-proxy-agent": "^7.0.0",
"https-proxy-agent": "^7.0.1",
"lru-cache": "^10.0.1",
- "socks-proxy-agent": "^8.0.3"
+ "socks-proxy-agent": "^8.0.1"
}
},
"@npmcli/arborist": {
- "version": "7.5.3",
+ "version": "7.4.0",
"bundled": true,
"dev": true,
"requires": {
"@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/fs": "^3.1.1",
- "@npmcli/installed-package-contents": "^2.1.0",
+ "@npmcli/fs": "^3.1.0",
+ "@npmcli/installed-package-contents": "^2.0.2",
"@npmcli/map-workspaces": "^3.0.2",
- "@npmcli/metavuln-calculator": "^7.1.1",
+ "@npmcli/metavuln-calculator": "^7.0.0",
"@npmcli/name-from-folder": "^2.0.0",
"@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^5.1.0",
+ "@npmcli/package-json": "^5.0.0",
"@npmcli/query": "^3.1.0",
- "@npmcli/redact": "^2.0.0",
- "@npmcli/run-script": "^8.1.0",
- "bin-links": "^4.0.4",
- "cacache": "^18.0.3",
+ "@npmcli/run-script": "^7.0.2",
+ "bin-links": "^4.0.1",
+ "cacache": "^18.0.0",
"common-ancestor-path": "^1.0.1",
- "hosted-git-info": "^7.0.2",
- "json-parse-even-better-errors": "^3.0.2",
+ "hosted-git-info": "^7.0.1",
+ "json-parse-even-better-errors": "^3.0.0",
"json-stringify-nice": "^1.1.4",
- "lru-cache": "^10.2.2",
- "minimatch": "^9.0.4",
- "nopt": "^7.2.1",
+ "minimatch": "^9.0.0",
+ "nopt": "^7.0.0",
"npm-install-checks": "^6.2.0",
- "npm-package-arg": "^11.0.2",
- "npm-pick-manifest": "^9.0.1",
- "npm-registry-fetch": "^17.0.1",
- "pacote": "^18.0.6",
+ "npm-package-arg": "^11.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-registry-fetch": "^16.0.0",
+ "npmlog": "^7.0.1",
+ "pacote": "^17.0.4",
"parse-conflict-json": "^3.0.0",
- "proc-log": "^4.2.0",
- "proggy": "^2.0.0",
+ "proc-log": "^3.0.0",
"promise-all-reject-late": "^1.0.0",
"promise-call-limit": "^3.0.1",
"read-package-json-fast": "^3.0.2",
"semver": "^7.3.7",
- "ssri": "^10.0.6",
+ "ssri": "^10.0.5",
"treeverse": "^3.0.0",
"walk-up-path": "^3.0.1"
}
},
"@npmcli/config": {
- "version": "8.3.3",
+ "version": "8.2.0",
"bundled": true,
"dev": true,
"requires": {
"@npmcli/map-workspaces": "^3.0.2",
"ci-info": "^4.0.0",
- "ini": "^4.1.2",
- "nopt": "^7.2.1",
- "proc-log": "^4.2.0",
+ "ini": "^4.1.0",
+ "nopt": "^7.0.0",
+ "proc-log": "^3.0.0",
"read-package-json-fast": "^3.0.2",
"semver": "^7.3.5",
"walk-up-path": "^3.0.1"
}
},
+ "@npmcli/disparity-colors": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ }
+ }
+ },
"@npmcli/fs": {
- "version": "3.1.1",
+ "version": "3.1.0",
"bundled": true,
"dev": true,
"requires": {
@@ -15571,14 +17423,14 @@
}
},
"@npmcli/git": {
- "version": "5.0.7",
+ "version": "5.0.4",
"bundled": true,
"dev": true,
"requires": {
"@npmcli/promise-spawn": "^7.0.0",
"lru-cache": "^10.0.1",
"npm-pick-manifest": "^9.0.0",
- "proc-log": "^4.0.0",
+ "proc-log": "^3.0.0",
"promise-inflight": "^1.0.1",
"promise-retry": "^2.0.1",
"semver": "^7.3.5",
@@ -15586,7 +17438,7 @@
}
},
"@npmcli/installed-package-contents": {
- "version": "2.1.0",
+ "version": "2.0.2",
"bundled": true,
"dev": true,
"requires": {
@@ -15595,7 +17447,7 @@
}
},
"@npmcli/map-workspaces": {
- "version": "3.0.6",
+ "version": "3.0.4",
"bundled": true,
"dev": true,
"requires": {
@@ -15606,14 +17458,13 @@
}
},
"@npmcli/metavuln-calculator": {
- "version": "7.1.1",
+ "version": "7.0.0",
"bundled": true,
"dev": true,
"requires": {
"cacache": "^18.0.0",
"json-parse-even-better-errors": "^3.0.0",
- "pacote": "^18.0.0",
- "proc-log": "^4.1.0",
+ "pacote": "^17.0.0",
"semver": "^7.3.5"
}
},
@@ -15628,7 +17479,7 @@
"dev": true
},
"@npmcli/package-json": {
- "version": "5.1.1",
+ "version": "5.0.0",
"bundled": true,
"dev": true,
"requires": {
@@ -15637,12 +17488,12 @@
"hosted-git-info": "^7.0.0",
"json-parse-even-better-errors": "^3.0.0",
"normalize-package-data": "^6.0.0",
- "proc-log": "^4.0.0",
+ "proc-log": "^3.0.0",
"semver": "^7.5.3"
}
},
"@npmcli/promise-spawn": {
- "version": "7.0.2",
+ "version": "7.0.1",
"bundled": true,
"dev": true,
"requires": {
@@ -15657,13 +17508,8 @@
"postcss-selector-parser": "^6.0.10"
}
},
- "@npmcli/redact": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
"@npmcli/run-script": {
- "version": "8.1.0",
+ "version": "7.0.4",
"bundled": true,
"dev": true,
"requires": {
@@ -15671,7 +17517,6 @@
"@npmcli/package-json": "^5.0.0",
"@npmcli/promise-spawn": "^7.0.0",
"node-gyp": "^10.0.0",
- "proc-log": "^4.0.0",
"which": "^4.0.0"
}
},
@@ -15682,53 +17527,51 @@
"optional": true
},
"@sigstore/bundle": {
- "version": "2.3.2",
+ "version": "2.2.0",
"bundled": true,
"dev": true,
"requires": {
- "@sigstore/protobuf-specs": "^0.3.2"
+ "@sigstore/protobuf-specs": "^0.3.0"
}
},
"@sigstore/core": {
- "version": "1.1.0",
+ "version": "1.0.0",
"bundled": true,
"dev": true
},
"@sigstore/protobuf-specs": {
- "version": "0.3.2",
+ "version": "0.3.0",
"bundled": true,
"dev": true
},
"@sigstore/sign": {
- "version": "2.3.2",
+ "version": "2.2.3",
"bundled": true,
"dev": true,
"requires": {
- "@sigstore/bundle": "^2.3.2",
+ "@sigstore/bundle": "^2.2.0",
"@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "make-fetch-happen": "^13.0.1",
- "proc-log": "^4.2.0",
- "promise-retry": "^2.0.1"
+ "@sigstore/protobuf-specs": "^0.3.0",
+ "make-fetch-happen": "^13.0.0"
}
},
"@sigstore/tuf": {
- "version": "2.3.4",
+ "version": "2.3.1",
"bundled": true,
"dev": true,
"requires": {
- "@sigstore/protobuf-specs": "^0.3.2",
- "tuf-js": "^2.2.1"
+ "@sigstore/protobuf-specs": "^0.3.0",
+ "tuf-js": "^2.2.0"
}
},
"@sigstore/verify": {
- "version": "1.2.1",
+ "version": "1.1.0",
"bundled": true,
"dev": true,
"requires": {
- "@sigstore/bundle": "^2.3.2",
- "@sigstore/core": "^1.1.0",
- "@sigstore/protobuf-specs": "^0.3.2"
+ "@sigstore/bundle": "^2.2.0",
+ "@sigstore/core": "^1.0.0",
+ "@sigstore/protobuf-specs": "^0.3.0"
}
},
"@tufjs/canonical-json": {
@@ -15737,12 +17580,12 @@
"dev": true
},
"@tufjs/models": {
- "version": "2.0.1",
+ "version": "2.0.0",
"bundled": true,
"dev": true,
"requires": {
"@tufjs/canonical-json": "2.0.0",
- "minimatch": "^9.0.4"
+ "minimatch": "^9.0.3"
}
},
"abbrev": {
@@ -15751,7 +17594,7 @@
"dev": true
},
"agent-base": {
- "version": "7.1.1",
+ "version": "7.1.0",
"bundled": true,
"dev": true,
"requires": {
@@ -15787,13 +17630,18 @@
"bundled": true,
"dev": true
},
+ "are-we-there-yet": {
+ "version": "4.0.2",
+ "bundled": true,
+ "dev": true
+ },
"balanced-match": {
"version": "1.0.2",
"bundled": true,
"dev": true
},
"bin-links": {
- "version": "4.0.4",
+ "version": "4.0.3",
"bundled": true,
"dev": true,
"requires": {
@@ -15804,7 +17652,7 @@
}
},
"binary-extensions": {
- "version": "2.3.0",
+ "version": "2.2.0",
"bundled": true,
"dev": true
},
@@ -15816,8 +17664,16 @@
"balanced-match": "^1.0.0"
}
},
+ "builtins": {
+ "version": "5.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "semver": "^7.0.0"
+ }
+ },
"cacache": {
- "version": "18.0.3",
+ "version": "18.0.2",
"bundled": true,
"dev": true,
"requires": {
@@ -15851,7 +17707,7 @@
"dev": true
},
"cidr-regex": {
- "version": "4.1.1",
+ "version": "4.0.3",
"bundled": true,
"dev": true,
"requires": {
@@ -15872,8 +17728,22 @@
"strip-ansi": "^6.0.1"
}
},
+ "cli-table3": {
+ "version": "0.6.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "@colors/colors": "1.5.0",
+ "string-width": "^4.2.0"
+ }
+ },
+ "clone": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true
+ },
"cmd-shim": {
- "version": "6.0.3",
+ "version": "6.0.2",
"bundled": true,
"dev": true
},
@@ -15890,11 +17760,30 @@
"bundled": true,
"dev": true
},
+ "color-support": {
+ "version": "1.1.3",
+ "bundled": true,
+ "dev": true
+ },
+ "columnify": {
+ "version": "1.6.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "strip-ansi": "^6.0.1",
+ "wcwidth": "^1.0.0"
+ }
+ },
"common-ancestor-path": {
"version": "1.0.1",
"bundled": true,
"dev": true
},
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
"cross-spawn": {
"version": "7.0.3",
"bundled": true,
@@ -15935,6 +17824,14 @@
}
}
},
+ "defaults": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "clone": "^1.0.2"
+ }
+ },
"diff": {
"version": "5.2.0",
"bundled": true,
@@ -16001,16 +17898,31 @@
"bundled": true,
"dev": true
},
+ "gauge": {
+ "version": "5.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "aproba": "^1.0.3 || ^2.0.0",
+ "color-support": "^1.1.3",
+ "console-control-strings": "^1.1.0",
+ "has-unicode": "^2.0.1",
+ "signal-exit": "^4.0.1",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.5"
+ }
+ },
"glob": {
- "version": "10.4.1",
+ "version": "10.3.10",
"bundled": true,
"dev": true,
"requires": {
"foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "path-scurry": "^1.11.1"
+ "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": {
@@ -16018,8 +17930,13 @@
"bundled": true,
"dev": true
},
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
"hasown": {
- "version": "2.0.2",
+ "version": "2.0.1",
"bundled": true,
"dev": true,
"requires": {
@@ -16027,7 +17944,7 @@
}
},
"hosted-git-info": {
- "version": "7.0.2",
+ "version": "7.0.1",
"bundled": true,
"dev": true,
"requires": {
@@ -16067,7 +17984,7 @@
}
},
"ignore-walk": {
- "version": "6.0.5",
+ "version": "6.0.4",
"bundled": true,
"dev": true,
"requires": {
@@ -16085,19 +18002,19 @@
"dev": true
},
"ini": {
- "version": "4.1.3",
+ "version": "4.1.1",
"bundled": true,
"dev": true
},
"init-package-json": {
- "version": "6.0.3",
+ "version": "6.0.0",
"bundled": true,
"dev": true,
"requires": {
- "@npmcli/package-json": "^5.0.0",
"npm-package-arg": "^11.0.0",
"promzard": "^1.0.0",
- "read": "^3.0.1",
+ "read": "^2.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"
@@ -16110,6 +18027,13 @@
"requires": {
"jsbn": "1.1.0",
"sprintf-js": "^1.1.3"
+ },
+ "dependencies": {
+ "sprintf-js": {
+ "version": "1.1.3",
+ "bundled": true,
+ "dev": true
+ }
}
},
"ip-regex": {
@@ -16118,11 +18042,11 @@
"dev": true
},
"is-cidr": {
- "version": "5.1.0",
+ "version": "5.0.3",
"bundled": true,
"dev": true,
"requires": {
- "cidr-regex": "^4.1.1"
+ "cidr-regex": "4.0.3"
}
},
"is-core-module": {
@@ -16149,7 +18073,7 @@
"dev": true
},
"jackspeak": {
- "version": "3.1.2",
+ "version": "2.3.6",
"bundled": true,
"dev": true,
"requires": {
@@ -16163,7 +18087,7 @@
"dev": true
},
"json-parse-even-better-errors": {
- "version": "3.0.2",
+ "version": "3.0.1",
"bundled": true,
"dev": true
},
@@ -16188,134 +18112,136 @@
"dev": true
},
"libnpmaccess": {
- "version": "8.0.6",
+ "version": "8.0.2",
"bundled": true,
"dev": true,
"requires": {
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1"
+ "npm-package-arg": "^11.0.1",
+ "npm-registry-fetch": "^16.0.0"
}
},
"libnpmdiff": {
- "version": "6.1.3",
+ "version": "6.0.7",
"bundled": true,
"dev": true,
"requires": {
- "@npmcli/arborist": "^7.5.3",
- "@npmcli/installed-package-contents": "^2.1.0",
- "binary-extensions": "^2.3.0",
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/disparity-colors": "^3.0.0",
+ "@npmcli/installed-package-contents": "^2.0.2",
+ "binary-extensions": "^2.2.0",
"diff": "^5.1.0",
- "minimatch": "^9.0.4",
- "npm-package-arg": "^11.0.2",
- "pacote": "^18.0.6",
- "tar": "^6.2.1"
+ "minimatch": "^9.0.0",
+ "npm-package-arg": "^11.0.1",
+ "pacote": "^17.0.4",
+ "tar": "^6.2.0"
}
},
"libnpmexec": {
- "version": "8.1.2",
+ "version": "7.0.8",
"bundled": true,
"dev": true,
"requires": {
- "@npmcli/arborist": "^7.5.3",
- "@npmcli/run-script": "^8.1.0",
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/run-script": "^7.0.2",
"ci-info": "^4.0.0",
- "npm-package-arg": "^11.0.2",
- "pacote": "^18.0.6",
- "proc-log": "^4.2.0",
- "read": "^3.0.1",
+ "npm-package-arg": "^11.0.1",
+ "npmlog": "^7.0.1",
+ "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": "^3.0.1"
}
},
"libnpmfund": {
- "version": "5.0.11",
+ "version": "5.0.5",
"bundled": true,
"dev": true,
"requires": {
- "@npmcli/arborist": "^7.5.3"
+ "@npmcli/arborist": "^7.2.1"
}
},
"libnpmhook": {
- "version": "10.0.5",
+ "version": "10.0.1",
"bundled": true,
"dev": true,
"requires": {
"aproba": "^2.0.0",
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^16.0.0"
}
},
"libnpmorg": {
- "version": "6.0.6",
+ "version": "6.0.2",
"bundled": true,
"dev": true,
"requires": {
"aproba": "^2.0.0",
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^16.0.0"
}
},
"libnpmpack": {
- "version": "7.0.3",
+ "version": "6.0.7",
"bundled": true,
"dev": true,
"requires": {
- "@npmcli/arborist": "^7.5.3",
- "@npmcli/run-script": "^8.1.0",
- "npm-package-arg": "^11.0.2",
- "pacote": "^18.0.6"
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/run-script": "^7.0.2",
+ "npm-package-arg": "^11.0.1",
+ "pacote": "^17.0.4"
}
},
"libnpmpublish": {
- "version": "9.0.9",
+ "version": "9.0.4",
"bundled": true,
"dev": true,
"requires": {
"ci-info": "^4.0.0",
- "normalize-package-data": "^6.0.1",
- "npm-package-arg": "^11.0.2",
- "npm-registry-fetch": "^17.0.1",
- "proc-log": "^4.2.0",
+ "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": "^2.2.0",
- "ssri": "^10.0.6"
+ "ssri": "^10.0.5"
}
},
"libnpmsearch": {
- "version": "7.0.6",
+ "version": "7.0.1",
"bundled": true,
"dev": true,
"requires": {
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^16.0.0"
}
},
"libnpmteam": {
- "version": "6.0.5",
+ "version": "6.0.1",
"bundled": true,
"dev": true,
"requires": {
"aproba": "^2.0.0",
- "npm-registry-fetch": "^17.0.1"
+ "npm-registry-fetch": "^16.0.0"
}
},
"libnpmversion": {
- "version": "6.0.3",
+ "version": "5.0.2",
"bundled": true,
"dev": true,
"requires": {
- "@npmcli/git": "^5.0.7",
- "@npmcli/run-script": "^8.1.0",
- "json-parse-even-better-errors": "^3.0.2",
- "proc-log": "^4.2.0",
+ "@npmcli/git": "^5.0.3",
+ "@npmcli/run-script": "^7.0.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "proc-log": "^3.0.0",
"semver": "^7.3.7"
}
},
"lru-cache": {
- "version": "10.2.2",
+ "version": "10.2.0",
"bundled": true,
"dev": true
},
"make-fetch-happen": {
- "version": "13.0.1",
+ "version": "13.0.0",
"bundled": true,
"dev": true,
"requires": {
@@ -16328,13 +18254,12 @@
"minipass-flush": "^1.0.5",
"minipass-pipeline": "^1.2.4",
"negotiator": "^0.6.3",
- "proc-log": "^4.2.0",
"promise-retry": "^2.0.1",
"ssri": "^10.0.0"
}
},
"minimatch": {
- "version": "9.0.4",
+ "version": "9.0.3",
"bundled": true,
"dev": true,
"requires": {
@@ -16342,7 +18267,7 @@
}
},
"minipass": {
- "version": "7.1.2",
+ "version": "7.0.4",
"bundled": true,
"dev": true
},
@@ -16355,7 +18280,7 @@
}
},
"minipass-fetch": {
- "version": "3.0.5",
+ "version": "3.0.4",
"bundled": true,
"dev": true,
"requires": {
@@ -16478,7 +18403,7 @@
"dev": true
},
"node-gyp": {
- "version": "10.1.0",
+ "version": "10.0.1",
"bundled": true,
"dev": true,
"requires": {
@@ -16492,17 +18417,10 @@
"semver": "^7.3.5",
"tar": "^6.1.2",
"which": "^4.0.0"
- },
- "dependencies": {
- "proc-log": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- }
}
},
"nopt": {
- "version": "7.2.1",
+ "version": "7.2.0",
"bundled": true,
"dev": true,
"requires": {
@@ -16510,7 +18428,7 @@
}
},
"normalize-package-data": {
- "version": "6.0.1",
+ "version": "6.0.0",
"bundled": true,
"dev": true,
"requires": {
@@ -16526,7 +18444,7 @@
"dev": true
},
"npm-bundled": {
- "version": "3.0.1",
+ "version": "3.0.0",
"bundled": true,
"dev": true,
"requires": {
@@ -16547,12 +18465,12 @@
"dev": true
},
"npm-package-arg": {
- "version": "11.0.2",
+ "version": "11.0.1",
"bundled": true,
"dev": true,
"requires": {
"hosted-git-info": "^7.0.0",
- "proc-log": "^4.0.0",
+ "proc-log": "^3.0.0",
"semver": "^7.3.5",
"validate-npm-package-name": "^5.0.0"
}
@@ -16566,7 +18484,7 @@
}
},
"npm-pick-manifest": {
- "version": "9.0.1",
+ "version": "9.0.0",
"bundled": true,
"dev": true,
"requires": {
@@ -16577,34 +18495,44 @@
}
},
"npm-profile": {
- "version": "10.0.0",
+ "version": "9.0.0",
"bundled": true,
"dev": true,
"requires": {
- "npm-registry-fetch": "^17.0.1",
- "proc-log": "^4.0.0"
+ "npm-registry-fetch": "^16.0.0",
+ "proc-log": "^3.0.0"
}
},
"npm-registry-fetch": {
- "version": "17.0.1",
+ "version": "16.1.0",
"bundled": true,
"dev": true,
"requires": {
- "@npmcli/redact": "^2.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": "^11.0.0",
- "proc-log": "^4.0.0"
+ "proc-log": "^3.0.0"
}
},
"npm-user-validate": {
- "version": "2.0.1",
+ "version": "2.0.0",
"bundled": true,
"dev": true
},
+ "npmlog": {
+ "version": "7.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "are-we-there-yet": "^4.0.0",
+ "console-control-strings": "^1.1.0",
+ "gauge": "^5.0.0",
+ "set-blocking": "^2.0.0"
+ }
+ },
"p-map": {
"version": "4.0.0",
"bundled": true,
@@ -16614,24 +18542,25 @@
}
},
"pacote": {
- "version": "18.0.6",
+ "version": "17.0.6",
"bundled": true,
"dev": true,
"requires": {
"@npmcli/git": "^5.0.0",
"@npmcli/installed-package-contents": "^2.0.1",
- "@npmcli/package-json": "^5.1.0",
"@npmcli/promise-spawn": "^7.0.0",
- "@npmcli/run-script": "^8.0.0",
+ "@npmcli/run-script": "^7.0.0",
"cacache": "^18.0.0",
"fs-minipass": "^3.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": "^17.0.0",
- "proc-log": "^4.0.0",
+ "npm-registry-fetch": "^16.0.0",
+ "proc-log": "^3.0.0",
"promise-retry": "^2.0.1",
+ "read-package-json": "^7.0.0",
+ "read-package-json-fast": "^3.0.0",
"sigstore": "^2.2.0",
"ssri": "^10.0.0",
"tar": "^6.1.11"
@@ -16653,16 +18582,16 @@
"dev": true
},
"path-scurry": {
- "version": "1.11.1",
+ "version": "1.10.1",
"bundled": true,
"dev": true,
"requires": {
- "lru-cache": "^10.2.0",
+ "lru-cache": "^9.1.1 || ^10.0.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
}
},
"postcss-selector-parser": {
- "version": "6.1.0",
+ "version": "6.0.15",
"bundled": true,
"dev": true,
"requires": {
@@ -16671,12 +18600,7 @@
}
},
"proc-log": {
- "version": "4.2.0",
- "bundled": true,
- "dev": true
- },
- "proggy": {
- "version": "2.0.0",
+ "version": "3.0.0",
"bundled": true,
"dev": true
},
@@ -16705,11 +18629,11 @@
}
},
"promzard": {
- "version": "1.0.2",
+ "version": "1.0.0",
"bundled": true,
"dev": true,
"requires": {
- "read": "^3.0.1"
+ "read": "^2.0.0"
}
},
"qrcode-terminal": {
@@ -16718,11 +18642,11 @@
"dev": true
},
"read": {
- "version": "3.0.1",
+ "version": "2.1.0",
"bundled": true,
"dev": true,
"requires": {
- "mute-stream": "^1.0.0"
+ "mute-stream": "~1.0.0"
}
},
"read-cmd-shim": {
@@ -16730,6 +18654,17 @@
"bundled": true,
"dev": true
},
+ "read-package-json": {
+ "version": "7.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob": "^10.2.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ }
+ },
"read-package-json-fast": {
"version": "3.0.2",
"bundled": true,
@@ -16751,7 +18686,25 @@
"optional": true
},
"semver": {
- "version": "7.6.2",
+ "version": "7.6.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
"bundled": true,
"dev": true
},
@@ -16774,16 +18727,16 @@
"dev": true
},
"sigstore": {
- "version": "2.3.1",
+ "version": "2.2.2",
"bundled": true,
"dev": true,
"requires": {
- "@sigstore/bundle": "^2.3.2",
+ "@sigstore/bundle": "^2.2.0",
"@sigstore/core": "^1.0.0",
- "@sigstore/protobuf-specs": "^0.3.2",
- "@sigstore/sign": "^2.3.2",
- "@sigstore/tuf": "^2.3.4",
- "@sigstore/verify": "^1.2.1"
+ "@sigstore/protobuf-specs": "^0.3.0",
+ "@sigstore/sign": "^2.2.3",
+ "@sigstore/tuf": "^2.3.1",
+ "@sigstore/verify": "^1.1.0"
}
},
"smart-buffer": {
@@ -16792,7 +18745,7 @@
"dev": true
},
"socks": {
- "version": "2.8.3",
+ "version": "2.8.0",
"bundled": true,
"dev": true,
"requires": {
@@ -16801,11 +18754,11 @@
}
},
"socks-proxy-agent": {
- "version": "8.0.3",
+ "version": "8.0.2",
"bundled": true,
"dev": true,
"requires": {
- "agent-base": "^7.1.1",
+ "agent-base": "^7.0.2",
"debug": "^4.3.4",
"socks": "^2.7.1"
}
@@ -16817,17 +18770,6 @@
"requires": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
- },
- "dependencies": {
- "spdx-expression-parse": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- }
}
},
"spdx-exceptions": {
@@ -16836,7 +18778,7 @@
"dev": true
},
"spdx-expression-parse": {
- "version": "4.0.0",
+ "version": "3.0.1",
"bundled": true,
"dev": true,
"requires": {
@@ -16845,17 +18787,12 @@
}
},
"spdx-license-ids": {
- "version": "3.0.18",
- "bundled": true,
- "dev": true
- },
- "sprintf-js": {
- "version": "1.1.3",
+ "version": "3.0.17",
"bundled": true,
"dev": true
},
"ssri": {
- "version": "10.0.6",
+ "version": "10.0.5",
"bundled": true,
"dev": true,
"requires": {
@@ -16904,7 +18841,7 @@
"dev": true
},
"tar": {
- "version": "6.2.1",
+ "version": "6.2.0",
"bundled": true,
"dev": true,
"requires": {
@@ -16957,13 +18894,13 @@
"dev": true
},
"tuf-js": {
- "version": "2.2.1",
+ "version": "2.2.0",
"bundled": true,
"dev": true,
"requires": {
- "@tufjs/models": "2.0.1",
+ "@tufjs/models": "2.0.0",
"debug": "^4.3.4",
- "make-fetch-happen": "^13.0.1"
+ "make-fetch-happen": "^13.0.0"
}
},
"unique-filename": {
@@ -16994,29 +18931,29 @@
"requires": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
- },
- "dependencies": {
- "spdx-expression-parse": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- }
}
},
"validate-npm-package-name": {
- "version": "5.0.1",
+ "version": "5.0.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "requires": {
+ "builtins": "^5.0.0"
+ }
},
"walk-up-path": {
"version": "3.0.1",
"bundled": true,
"dev": true
},
+ "wcwidth": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
"which": {
"version": "4.0.0",
"bundled": true,
@@ -17032,6 +18969,14 @@
}
}
},
+ "wide-align": {
+ "version": "1.1.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
"wrap-ansi": {
"version": "8.1.0",
"bundled": true,
@@ -17121,21 +19066,141 @@
"path-key": "^3.0.0"
}
},
+ "nyc": {
+ "version": "15.1.0",
+ "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
+ "dev": true,
+ "requires": {
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "caching-transform": "^4.0.0",
+ "convert-source-map": "^1.7.0",
+ "decamelize": "^1.2.0",
+ "find-cache-dir": "^3.2.0",
+ "find-up": "^4.1.0",
+ "foreground-child": "^2.0.0",
+ "get-package-type": "^0.1.0",
+ "glob": "^7.1.6",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-hook": "^3.0.0",
+ "istanbul-lib-instrument": "^4.0.0",
+ "istanbul-lib-processinfo": "^2.0.2",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.0.2",
+ "make-dir": "^3.0.0",
+ "node-preload": "^0.2.1",
+ "p-map": "^3.0.0",
+ "process-on-spawn": "^1.0.0",
+ "resolve-from": "^5.0.0",
+ "rimraf": "^3.0.0",
+ "signal-exit": "^3.0.2",
+ "spawn-wrap": "^2.0.0",
+ "test-exclude": "^6.0.0",
+ "yargs": "^15.0.2"
+ },
+ "dependencies": {
+ "cliui": {
+ "version": "6.0.0",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.3",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "15.4.1",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dev": true,
+ "requires": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
"object-assign": {
"version": "4.1.1",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
},
"object-inspect": {
- "version": "1.11.0",
- "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
- },
- "on-finished": {
- "version": "2.4.1",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "requires": {
- "ee-first": "1.1.1"
- }
+ "version": "1.10.3",
+ "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==",
+ "dev": true
},
"once": {
"version": "1.4.0",
@@ -17159,16 +19224,16 @@
"dev": true
},
"optionator": {
- "version": "0.9.4",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+ "version": "0.9.3",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
"dev": true,
"requires": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
+ "type-check": "^0.4.0"
}
},
"os-homedir": {
@@ -17193,23 +19258,27 @@
"p-each-series": {
"version": "3.0.0",
"integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"p-filter": {
"version": "4.1.0",
"integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==",
"dev": true,
- "peer": true,
"requires": {
"p-map": "^7.0.1"
+ },
+ "dependencies": {
+ "p-map": {
+ "version": "7.0.1",
+ "integrity": "sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==",
+ "dev": true
+ }
}
},
"p-is-promise": {
"version": "3.0.0",
"integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==",
- "dev": true,
- "peer": true
+ "dev": true
},
"p-limit": {
"version": "3.1.0",
@@ -17228,9 +19297,12 @@
}
},
"p-map": {
- "version": "7.0.2",
- "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==",
- "dev": true
+ "version": "3.0.0",
+ "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
+ "dev": true,
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
},
"p-reduce": {
"version": "2.1.0",
@@ -17242,6 +19314,17 @@
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
+ "package-hash": {
+ "version": "4.0.0",
+ "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.15",
+ "hasha": "^5.0.0",
+ "lodash.flattendeep": "^4.4.0",
+ "release-zalgo": "^1.0.0"
+ }
+ },
"package-json-from-dist": {
"version": "1.0.0",
"integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
@@ -17295,14 +19378,12 @@
"parse5": {
"version": "5.1.1",
"integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
- "dev": true,
- "peer": true
+ "dev": true
},
"parse5-htmlparser2-tree-adapter": {
"version": "6.0.1",
"integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
"dev": true,
- "peer": true,
"requires": {
"parse5": "^6.0.1"
},
@@ -17310,15 +19391,10 @@
"parse5": {
"version": "6.0.1",
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true,
- "peer": true
+ "dev": true
}
}
},
- "parseurl": {
- "version": "1.3.3",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
- },
"path-exists": {
"version": "4.0.0",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
@@ -17348,10 +19424,6 @@
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
}
},
- "path-to-regexp": {
- "version": "0.1.7",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
- },
"path-type": {
"version": "4.0.0",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
@@ -17370,8 +19442,7 @@
"pify": {
"version": "3.0.0",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true,
- "peer": true
+ "dev": true
},
"pinkie": {
"version": "2.0.4",
@@ -17387,15 +19458,14 @@
}
},
"pirates": {
- "version": "4.0.5",
- "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
+ "version": "4.0.6",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
"dev": true
},
"pkg-conf": {
"version": "2.1.0",
"integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=",
"dev": true,
- "peer": true,
"requires": {
"find-up": "^2.0.0",
"load-json-file": "^4.0.0"
@@ -17405,7 +19475,6 @@
"version": "2.1.0",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dev": true,
- "peer": true,
"requires": {
"locate-path": "^2.0.0"
}
@@ -17414,7 +19483,6 @@
"version": "2.0.0",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"dev": true,
- "peer": true,
"requires": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -17424,7 +19492,6 @@
"version": "1.3.0",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dev": true,
- "peer": true,
"requires": {
"p-try": "^1.0.0"
}
@@ -17433,7 +19500,6 @@
"version": "2.0.0",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"dev": true,
- "peer": true,
"requires": {
"p-limit": "^1.1.0"
}
@@ -17441,14 +19507,12 @@
"p-try": {
"version": "1.0.0",
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true,
- "peer": true
+ "dev": true
},
"path-exists": {
"version": "3.0.0",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true,
- "peer": true
+ "dev": true
}
}
},
@@ -17496,12 +19560,11 @@
}
},
"postcss-load-config": {
- "version": "4.0.2",
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "version": "6.0.1",
+ "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
"dev": true,
"requires": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
+ "lilconfig": "^3.1.1"
}
},
"prelude-ls": {
@@ -17522,6 +19585,14 @@
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true
},
+ "process-on-spawn": {
+ "version": "1.0.0",
+ "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
+ "dev": true,
+ "requires": {
+ "fromentries": "^1.2.0"
+ }
+ },
"promise": {
"version": "8.1.0",
"integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==",
@@ -17550,17 +19621,9 @@
"integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==",
"dev": true
},
- "proxy-addr": {
- "version": "2.0.7",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "requires": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- }
- },
"punycode": {
- "version": "2.1.1",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "version": "2.3.0",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
"dev": true
},
"punycode.js": {
@@ -17571,6 +19634,7 @@
"qs": {
"version": "6.11.0",
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "dev": true,
"requires": {
"side-channel": "^1.0.4"
}
@@ -17596,20 +19660,6 @@
"safe-buffer": "^5.1.0"
}
},
- "range-parser": {
- "version": "1.2.1",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
- },
- "raw-body": {
- "version": "2.5.2",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "requires": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- }
- },
"rc": {
"version": "1.2.8",
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
@@ -17688,43 +19738,6 @@
}
}
},
- "read-package-up": {
- "version": "11.0.0",
- "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "find-up-simple": "^1.0.0",
- "read-pkg": "^9.0.0",
- "type-fest": "^4.6.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "8.1.0",
- "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/code-frame": "^7.22.13",
- "index-to-position": "^0.1.2",
- "type-fest": "^4.7.1"
- }
- },
- "read-pkg": {
- "version": "9.0.1",
- "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
- "dev": true,
- "peer": true,
- "requires": {
- "@types/normalize-package-data": "^2.4.3",
- "normalize-package-data": "^6.0.0",
- "parse-json": "^8.0.0",
- "type-fest": "^4.6.0",
- "unicorn-magic": "^0.1.0"
- }
- }
- }
- },
"read-pkg": {
"version": "5.2.0",
"integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
@@ -17764,9 +19777,109 @@
}
}
},
+ "read-pkg-up": {
+ "version": "10.1.0",
+ "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==",
+ "dev": true,
+ "requires": {
+ "find-up": "^6.3.0",
+ "read-pkg": "^8.1.0",
+ "type-fest": "^4.2.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "6.3.0",
+ "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",
+ "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
+ "dev": true
+ },
+ "lines-and-columns": {
+ "version": "2.0.3",
+ "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "7.2.0",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^6.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "4.0.0",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "6.0.0",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^4.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "7.1.0",
+ "integrity": "sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==",
+ "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"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "3.13.1",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true
+ }
+ }
+ },
+ "path-exists": {
+ "version": "5.0.0",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "8.1.0",
+ "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
+ "dev": true,
+ "requires": {
+ "@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": "4.4.0",
+ "integrity": "sha512-HT3RRs7sTfY22KuPQJkD/XjbTbxgP2Je5HPt6H6JEGvcjHd5Lqru75EbrP3tb4FYjNJ+DjLp+MNQTFQU0mhXNw==",
+ "dev": true
+ },
+ "yocto-queue": {
+ "version": "1.0.0",
+ "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+ "dev": true
+ }
+ }
+ },
"readable-stream": {
- "version": "2.3.8",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "version": "2.3.7",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
"requires": {
"core-util-is": "~1.0.0",
@@ -17805,11 +19918,24 @@
"@pnpm/npm-conf": "^1.0.4"
}
},
+ "release-zalgo": {
+ "version": "1.0.0",
+ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=",
+ "dev": true,
+ "requires": {
+ "es6-error": "^4.0.1"
+ }
+ },
"require-directory": {
"version": "2.1.1",
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
"dev": true
},
+ "require-main-filename": {
+ "version": "2.0.0",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
"resolve": {
"version": "1.20.0",
"integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
@@ -17829,31 +19955,47 @@
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
"dev": true
},
+ "rimraf": {
+ "version": "3.0.2",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
"rollup": {
- "version": "4.18.0",
- "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==",
- "dev": true,
- "requires": {
- "@rollup/rollup-android-arm-eabi": "4.18.0",
- "@rollup/rollup-android-arm64": "4.18.0",
- "@rollup/rollup-darwin-arm64": "4.18.0",
- "@rollup/rollup-darwin-x64": "4.18.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.18.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.18.0",
- "@rollup/rollup-linux-arm64-gnu": "4.18.0",
- "@rollup/rollup-linux-arm64-musl": "4.18.0",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.18.0",
- "@rollup/rollup-linux-s390x-gnu": "4.18.0",
- "@rollup/rollup-linux-x64-gnu": "4.18.0",
- "@rollup/rollup-linux-x64-musl": "4.18.0",
- "@rollup/rollup-win32-arm64-msvc": "4.18.0",
- "@rollup/rollup-win32-ia32-msvc": "4.18.0",
- "@rollup/rollup-win32-x64-msvc": "4.18.0",
+ "version": "4.19.0",
+ "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==",
+ "dev": true,
+ "requires": {
+ "@rollup/rollup-android-arm-eabi": "4.19.0",
+ "@rollup/rollup-android-arm64": "4.19.0",
+ "@rollup/rollup-darwin-arm64": "4.19.0",
+ "@rollup/rollup-darwin-x64": "4.19.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.19.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.19.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.19.0",
+ "@rollup/rollup-linux-arm64-musl": "4.19.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.19.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.19.0",
+ "@rollup/rollup-linux-x64-gnu": "4.19.0",
+ "@rollup/rollup-linux-x64-musl": "4.19.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.19.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.19.0",
+ "@rollup/rollup-win32-x64-msvc": "4.19.0",
"@types/estree": "1.0.5",
"fsevents": "~2.3.2"
}
},
+ "rrule": {
+ "version": "2.8.1",
+ "integrity": "sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.4.0"
+ }
+ },
"run-parallel": {
"version": "1.2.0",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
@@ -17867,28 +20009,23 @@
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
- "safer-buffer": {
- "version": "2.1.2",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
"semantic-release": {
- "version": "24.0.0",
- "integrity": "sha512-v46CRPw+9eI3ZuYGF2oAjqPqsfbnfFTwLBgQsv/lch4goD09ytwOTESMN4QIrx/wPLxUGey60/NMx+ANQtWRsA==",
+ "version": "23.0.5",
+ "integrity": "sha512-4eZG/vRTV8E7rw5oHPv2Fht5qx6ITemE/b1vzG42ayYVcffJqXYy40nP4bHEPWX1/kleJWWrlPVDt1hSYVlpKQ==",
"dev": true,
- "peer": true,
"requires": {
- "@semantic-release/commit-analyzer": "^13.0.0-beta.1",
+ "@semantic-release/commit-analyzer": "^12.0.0",
"@semantic-release/error": "^4.0.0",
"@semantic-release/github": "^10.0.0",
"@semantic-release/npm": "^12.0.0",
- "@semantic-release/release-notes-generator": "^14.0.0-beta.1",
+ "@semantic-release/release-notes-generator": "^12.0.0",
"aggregate-error": "^5.0.0",
"cosmiconfig": "^9.0.0",
"debug": "^4.0.0",
"env-ci": "^11.0.0",
- "execa": "^9.0.0",
+ "execa": "^8.0.0",
"figures": "^6.0.0",
- "find-versions": "^6.0.0",
+ "find-versions": "^5.1.0",
"get-stream": "^6.0.0",
"git-log-parser": "^1.2.0",
"hook-std": "^3.0.0",
@@ -17900,7 +20037,7 @@
"micromatch": "^4.0.2",
"p-each-series": "^3.0.0",
"p-reduce": "^3.0.0",
- "read-package-up": "^11.0.0",
+ "read-pkg-up": "^11.0.0",
"resolve-from": "^5.0.0",
"semver": "^7.3.2",
"semver-diff": "^4.0.0",
@@ -17908,17 +20045,10 @@
"yargs": "^17.5.1"
},
"dependencies": {
- "@sindresorhus/merge-streams": {
- "version": "4.0.0",
- "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
- "dev": true,
- "peer": true
- },
"aggregate-error": {
"version": "5.0.0",
"integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==",
"dev": true,
- "peer": true,
"requires": {
"clean-stack": "^5.2.0",
"indent-string": "^5.0.0"
@@ -17928,7 +20058,6 @@
"version": "5.2.0",
"integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==",
"dev": true,
- "peer": true,
"requires": {
"escape-string-regexp": "5.0.0"
}
@@ -17937,7 +20066,6 @@
"version": "8.0.1",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
- "peer": true,
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
@@ -17947,103 +20075,143 @@
"escape-string-regexp": {
"version": "5.0.0",
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"execa": {
- "version": "9.3.0",
- "integrity": "sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==",
+ "version": "8.0.1",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
- "peer": true,
"requires": {
- "@sindresorhus/merge-streams": "^4.0.0",
"cross-spawn": "^7.0.3",
- "figures": "^6.1.0",
- "get-stream": "^9.0.0",
- "human-signals": "^7.0.0",
- "is-plain-obj": "^4.1.0",
- "is-stream": "^4.0.1",
- "npm-run-path": "^5.2.0",
- "pretty-ms": "^9.0.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": "^4.1.0",
- "strip-final-newline": "^4.0.0",
- "yoctocolors": "^2.0.0"
+ "strip-final-newline": "^3.0.0"
},
"dependencies": {
"get-stream": {
- "version": "9.0.1",
- "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
- "dev": true,
- "peer": true,
- "requires": {
- "@sec-ant/readable-stream": "^0.4.1",
- "is-stream": "^4.0.1"
- }
+ "version": "8.0.1",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true
}
}
},
"human-signals": {
- "version": "7.0.0",
- "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==",
- "dev": true,
- "peer": true
+ "version": "5.0.0",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "dev": true
},
"indent-string": {
"version": "5.0.0",
"integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
- "dev": true,
- "peer": true
+ "dev": true
},
"is-stream": {
- "version": "4.0.1",
- "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
- "dev": true,
- "peer": true
+ "version": "3.0.0",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true
+ },
+ "json-parse-even-better-errors": {
+ "version": "3.0.0",
+ "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
+ "dev": true
+ },
+ "marked": {
+ "version": "12.0.0",
+ "integrity": "sha512-Vkwtq9rLqXryZnWaQc86+FHLC6tr/fycMfYAhiOIXkrNmeGAyhSxjqu0Rs1i0bBqw5u0S7+lV9fdH2ZSVaoa0w==",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "4.0.0",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true
},
"npm-run-path": {
- "version": "5.3.0",
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "version": "5.1.0",
+ "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
"dev": true,
- "peer": true,
"requires": {
"path-key": "^4.0.0"
}
},
+ "onetime": {
+ "version": "6.0.0",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^4.0.0"
+ }
+ },
"p-reduce": {
"version": "3.0.0",
"integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "8.0.0",
+ "integrity": "sha512-QtWnjHuun44MCLbq9f2rlcX9Bp9FSsPgQS9nuGcIm3J557b3/CvmYUhwChgJJDlMpuNN0sFRAogzQ8xMitD1oQ==",
"dev": true,
- "peer": true
+ "requires": {
+ "@babel/code-frame": "^7.22.13",
+ "index-to-position": "^0.1.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "type-fest": "^4.6.0"
+ }
},
"path-key": {
"version": "4.0.0",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "9.0.0",
+ "integrity": "sha512-SBoBio4xhJmlF4xs9IBliWZGSbDAnrOfQkLGL7xB+RYEUZNAN2LlNkzO45B7gc7c2dLMX987bhHAaJ/LG3efeQ==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.3",
+ "normalize-package-data": "^6.0.0",
+ "parse-json": "^8.0.0",
+ "type-fest": "^4.6.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "11.0.0",
+ "integrity": "sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==",
"dev": true,
- "peer": true
+ "requires": {
+ "find-up-simple": "^1.0.0",
+ "read-pkg": "^9.0.0",
+ "type-fest": "^4.6.0"
+ }
},
"resolve-from": {
"version": "5.0.0",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"signal-exit": {
"version": "4.1.0",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"strip-final-newline": {
- "version": "4.0.0",
- "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==",
- "dev": true,
- "peer": true
+ "version": "3.0.0",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "4.6.0",
+ "integrity": "sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==",
+ "dev": true
},
"yargs": {
- "version": "17.7.2",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "version": "17.6.2",
+ "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==",
"dev": true,
- "peer": true,
"requires": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -18057,8 +20225,7 @@
"yargs-parser": {
"version": "21.1.1",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "peer": true
+ "dev": true
}
}
},
@@ -18068,15 +20235,14 @@
"dev": true
},
"semver": {
- "version": "7.6.2",
- "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "version": "7.6.3",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true
},
"semver-diff": {
"version": "4.0.0",
"integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
"dev": true,
- "peer": true,
"requires": {
"semver": "^7.3.5"
}
@@ -18084,72 +20250,20 @@
"semver-regex": {
"version": "4.0.5",
"integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==",
- "dev": true,
- "peer": true
- },
- "send": {
- "version": "0.18.0",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "requires": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- },
- "dependencies": {
- "ms": {
- "version": "2.0.0",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- }
- }
- },
- "mime": {
- "version": "1.6.0",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- },
- "ms": {
- "version": "2.1.3",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- }
- }
+ "dev": true
},
"serialize-javascript": {
"version": "6.0.2",
"integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true,
"requires": {
- "randombytes": "^2.1.0"
- }
- },
- "serve-static": {
- "version": "1.15.0",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
+ "randombytes": "^2.1.0"
}
},
- "setprototypeof": {
- "version": "1.2.0",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ "set-blocking": {
+ "version": "2.0.0",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
},
"shebang-command": {
"version": "2.0.0",
@@ -18165,17 +20279,18 @@
"dev": true
},
"shiki": {
- "version": "1.10.3",
- "integrity": "sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ==",
+ "version": "1.11.0",
+ "integrity": "sha512-NqH/O1zRHvnuk/WfSL6b7+DtI7/kkMMSQGlZhm9DyzSU+SoIHhaw/fBZMr+zp9R8KjdIzkk3JKSC6hORuGDyng==",
"dev": true,
"requires": {
- "@shikijs/core": "1.10.3",
+ "@shikijs/core": "1.11.0",
"@types/hast": "^3.0.4"
}
},
"side-channel": {
"version": "1.0.4",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
@@ -18183,15 +20298,14 @@
}
},
"signal-exit": {
- "version": "3.0.3",
- "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+ "version": "3.0.7",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true
},
"signale": {
"version": "1.4.0",
"integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==",
"dev": true,
- "peer": true,
"requires": {
"chalk": "^2.3.2",
"figures": "^2.0.0",
@@ -18202,7 +20316,6 @@
"version": "3.2.1",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
- "peer": true,
"requires": {
"color-convert": "^1.9.0"
}
@@ -18211,7 +20324,6 @@
"version": "2.4.2",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
- "peer": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -18222,7 +20334,6 @@
"version": "1.9.3",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
- "peer": true,
"requires": {
"color-name": "1.1.3"
}
@@ -18230,20 +20341,17 @@
"color-name": {
"version": "1.1.3",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true,
- "peer": true
+ "dev": true
},
"escape-string-regexp": {
"version": "1.0.5",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true,
- "peer": true
+ "dev": true
},
"figures": {
"version": "2.0.0",
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
- "peer": true,
"requires": {
"escape-string-regexp": "^1.0.5"
}
@@ -18251,14 +20359,12 @@
"has-flag": {
"version": "3.0.0",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true,
- "peer": true
+ "dev": true
},
"supports-color": {
"version": "5.5.0",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
- "peer": true,
"requires": {
"has-flag": "^3.0.0"
}
@@ -18269,7 +20375,6 @@
"version": "2.0.0",
"integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==",
"dev": true,
- "peer": true,
"requires": {
"unicode-emoji-modifier-base": "^1.0.0"
}
@@ -18301,8 +20406,20 @@
"spawn-error-forwarder": {
"version": "1.0.0",
"integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=",
+ "dev": true
+ },
+ "spawn-wrap": {
+ "version": "2.0.0",
+ "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
"dev": true,
- "peer": true
+ "requires": {
+ "foreground-child": "^2.0.0",
+ "is-windows": "^1.0.2",
+ "make-dir": "^3.0.0",
+ "rimraf": "^3.0.0",
+ "signal-exit": "^3.0.2",
+ "which": "^2.0.1"
+ }
},
"spdx-compare": {
"version": "1.0.0",
@@ -18357,15 +20474,20 @@
"spdx-ranges": "^2.0.0"
}
},
- "statuses": {
- "version": "2.0.1",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ "split2": {
+ "version": "4.2.0",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
},
"stream-combiner2": {
"version": "1.1.1",
"integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
"dev": true,
- "peer": true,
"requires": {
"duplexer2": "~0.1.0",
"readable-stream": "^2.0.2"
@@ -18415,6 +20537,11 @@
"ansi-regex": "^5.0.1"
}
},
+ "strip-bom": {
+ "version": "4.0.0",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "dev": true
+ },
"strip-final-newline": {
"version": "2.0.0",
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
@@ -18441,48 +20568,69 @@
}
},
"sucrase": {
- "version": "3.30.0",
- "integrity": "sha512-7d37d3vLF0IeH2dzvHpzDNDxUqpbDHJXTJOAnQ8jvMW04o2Czps6mxtaSnKWpE+hUS/eczqfWPUgQTrazKZPnQ==",
+ "version": "3.35.0",
+ "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
"dev": true,
"requires": {
+ "@jridgewell/gen-mapping": "^0.3.2",
"commander": "^4.0.0",
- "glob": "7.1.6",
+ "glob": "^10.3.10",
"lines-and-columns": "^1.1.6",
"mz": "^2.7.0",
"pirates": "^4.0.1",
"ts-interface-checker": "^0.1.9"
},
"dependencies": {
+ "brace-expansion": {
+ "version": "2.0.1",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
"commander": {
"version": "4.1.1",
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
"dev": true
},
+ "foreground-child": {
+ "version": "3.2.1",
+ "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ }
+ },
"glob": {
- "version": "7.1.6",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "version": "10.4.5",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.5",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
}
+ },
+ "signal-exit": {
+ "version": "4.1.0",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true
}
}
},
- "super-regex": {
- "version": "1.0.0",
- "integrity": "sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==",
- "dev": true,
- "peer": true,
- "requires": {
- "function-timeout": "^1.0.1",
- "time-span": "^5.1.0"
- }
- },
"supports-color": {
"version": "7.2.0",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
@@ -18495,7 +20643,6 @@
"version": "3.0.0",
"integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
"dev": true,
- "peer": true,
"requires": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
@@ -18523,17 +20670,17 @@
}
},
"temp-dir": {
- "version": "3.0.0",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
+ "version": "2.0.0",
+ "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
"dev": true
},
"tempy": {
- "version": "3.1.0",
- "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
+ "version": "3.0.0",
+ "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==",
"dev": true,
"requires": {
"is-stream": "^3.0.0",
- "temp-dir": "^3.0.0",
+ "temp-dir": "^2.0.0",
"type-fest": "^2.12.2",
"unique-string": "^3.0.0"
},
@@ -18551,46 +20698,20 @@
}
},
"test-exclude": {
- "version": "7.0.1",
- "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==",
+ "version": "6.0.0",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
"requires": {
"@istanbuljs/schema": "^0.1.2",
- "glob": "^10.4.1",
- "minimatch": "^9.0.4"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "glob": {
- "version": "10.4.3",
- "integrity": "sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg==",
- "dev": true,
- "requires": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- }
- },
- "minimatch": {
- "version": "9.0.5",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
}
},
+ "text-extensions": {
+ "version": "2.4.0",
+ "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==",
+ "dev": true
+ },
"text-table": {
"version": "0.2.0",
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
@@ -18637,14 +20758,15 @@
"thenify": ">= 3.1.0 < 4"
}
},
- "time-span": {
- "version": "5.1.0",
- "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==",
- "dev": true,
- "peer": true,
- "requires": {
- "convert-hrtime": "^5.0.0"
- }
+ "through": {
+ "version": "2.3.8",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
},
"to-regex-range": {
"version": "5.0.1",
@@ -18654,15 +20776,18 @@
"is-number": "^7.0.0"
}
},
- "toidentifier": {
+ "tr46": {
"version": "1.0.1",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
+ "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
},
"traverse": {
"version": "0.6.6",
"integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=",
- "dev": true,
- "peer": true
+ "dev": true
},
"tree-kill": {
"version": "1.2.2",
@@ -18728,28 +20853,30 @@
}
},
"tslib": {
- "version": "2.6.3",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+ "version": "2.6.2",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
"dev": true
},
"tsup": {
- "version": "8.1.0",
- "integrity": "sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==",
+ "version": "8.2.2",
+ "integrity": "sha512-MufIuzdSt6HYPOeOtjUXLR4rqRJySi6XsRNZdwvjC2XR+xghsu2L3vSmYmX+k4S1mO6j0OlUEyVQ3Fc0H66XcA==",
"dev": true,
"requires": {
- "bundle-require": "^4.0.0",
- "cac": "^6.7.12",
- "chokidar": "^3.5.1",
- "debug": "^4.3.1",
- "esbuild": "^0.21.4",
- "execa": "^5.0.0",
- "globby": "^11.0.3",
- "joycon": "^3.0.1",
- "postcss-load-config": "^4.0.1",
+ "bundle-require": "^5.0.0",
+ "cac": "^6.7.14",
+ "chokidar": "^3.6.0",
+ "consola": "^3.2.3",
+ "debug": "^4.3.5",
+ "esbuild": "^0.23.0",
+ "execa": "^5.1.1",
+ "globby": "^11.1.0",
+ "joycon": "^3.1.1",
+ "picocolors": "^1.0.1",
+ "postcss-load-config": "^6.0.1",
"resolve-from": "^5.0.0",
- "rollup": "^4.0.2",
+ "rollup": "^4.19.0",
"source-map": "0.8.0-beta.0",
- "sucrase": "^3.20.3",
+ "sucrase": "^3.35.0",
"tree-kill": "^1.2.2"
},
"dependencies": {
@@ -18765,29 +20892,6 @@
"requires": {
"whatwg-url": "^7.0.0"
}
- },
- "tr46": {
- "version": "1.0.1",
- "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "webidl-conversions": {
- "version": "4.0.2",
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
- "dev": true
- },
- "whatwg-url": {
- "version": "7.1.0",
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
- "dev": true,
- "requires": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
- }
}
}
},
@@ -18799,27 +20903,22 @@
"prelude-ls": "^1.2.1"
}
},
- "type-fest": {
- "version": "4.21.0",
- "integrity": "sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==",
- "dev": true
- },
- "type-is": {
- "version": "1.6.18",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- }
- },
"typedarray": {
"version": "0.0.6",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true
},
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dev": true,
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
"typedoc": {
- "version": "0.26.3",
- "integrity": "sha512-6d2Sw9disvvpdk4K7VNjKr5/3hzijtfQVHRthhDqJgnhMHy1wQz4yPMJVKXElvnZhFr0nkzo+GzjXDTRV5yLpg==",
+ "version": "0.26.5",
+ "integrity": "sha512-Vn9YKdjKtDZqSk+by7beZ+xzkkr8T8CYoiasqyt4TTRFy5+UHzL/mF/o4wGBjRF+rlWQHDb0t6xCpA3JNL5phg==",
"dev": true,
"requires": {
"lunr": "^2.3.9",
@@ -18853,13 +20952,97 @@
"dev": true
},
"typescript-eslint": {
- "version": "8.0.0-alpha.41",
- "integrity": "sha512-+e7D2XDZeHLe9D3bP7S0Va8YdLHzn3YcesoxMS9SjMWhtaSb5ylxk2txqT84sUS0WIDQetZlvDg2/UmY5B/ycg==",
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-Hs60EyclUz1wBZMkmJ/xiiWGW91UZWcumWqOCQeWBp+xlPJJAufr5/OTrWhW+58yPv/72moEVhrA0VeUAlNoDQ==",
"dev": true,
"requires": {
- "@typescript-eslint/eslint-plugin": "8.0.0-alpha.41",
- "@typescript-eslint/parser": "8.0.0-alpha.41",
- "@typescript-eslint/utils": "8.0.0-alpha.41"
+ "@typescript-eslint/eslint-plugin": "8.0.0-alpha.51",
+ "@typescript-eslint/parser": "8.0.0-alpha.51",
+ "@typescript-eslint/utils": "8.0.0-alpha.51"
+ },
+ "dependencies": {
+ "@typescript-eslint/eslint-plugin": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-989dk3/IA2HNdfl8T1Tj0+AEAtqHN5Cdac7Ff1N367Lh5e5xKi3nXWMkptbZaAEo/wi5+CZD8jngQ70wnCRweA==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "8.0.0-alpha.51",
+ "@typescript-eslint/type-utils": "8.0.0-alpha.51",
+ "@typescript-eslint/utils": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^1.3.0"
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-UPMhWLqkP/wBGB3/eI9fRG8UFFmT8tTLlBUQFN01xtsRNhYlMYS5FQHDMkfPynnKp62AqLRrwkrI49cZN3aDUA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "8.0.0-alpha.51",
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/typescript-estree": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51",
+ "debug": "^4.3.4"
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-zT8Ib31deJCqRVJepZOMFoHiFAsSHOh5TmedcFeqyiMuzrqBMtF95iv6mPJqFDIXNgxmTkahpRan1z043ckBnA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-joqeu3jITe9BbgXAggKKg9mBIGDL6mAf2JVlo00zWP50u4qnsa3NWKMwWp77pjtI9E2DPU0vlTEdL+v/3aTPJA==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-p3kD3rVdqmr4Iga86xzUR5wTsIKof/GsqnUMWZbmFpD3fmMXs1VLoXJegTqVMtWncu14dZUohRV2xPSScBAnxg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "@typescript-eslint/visitor-keys": "8.0.0-alpha.51",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "8.0.0-alpha.51",
+ "integrity": "sha512-bOLfR14nLfhO9BBD1YpmnQSTNTapAIegKsb4Ms1RAQXkJRKIeuLS42AEYRM8uvLiNLk0hDIBjCnMPTAyDAWLbw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "8.0.0-alpha.51",
+ "eslint-visitor-keys": "^3.4.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.5",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
}
},
"uc.micro": {
@@ -18868,11 +21051,10 @@
"dev": true
},
"uglify-js": {
- "version": "3.18.0",
- "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==",
+ "version": "3.17.4",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
"dev": true,
- "optional": true,
- "peer": true
+ "optional": true
},
"undici-types": {
"version": "5.26.5",
@@ -18882,8 +21064,7 @@
"unicode-emoji-modifier-base": {
"version": "1.0.0",
"integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==",
- "dev": true,
- "peer": true
+ "dev": true
},
"unicorn-magic": {
"version": "0.1.0",
@@ -18901,18 +21082,13 @@
"universal-user-agent": {
"version": "7.0.2",
"integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==",
- "dev": true,
- "peer": true
+ "dev": true
},
"universalify": {
"version": "2.0.0",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"dev": true
},
- "unpipe": {
- "version": "1.0.0",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
- },
"uri-js": {
"version": "4.4.1",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
@@ -18924,8 +21100,7 @@
"url-join": {
"version": "5.0.0",
"integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==",
- "dev": true,
- "peer": true
+ "dev": true
},
"util-deprecate": {
"version": "1.0.2",
@@ -18937,23 +21112,23 @@
"integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=",
"dev": true
},
- "utils-merge": {
- "version": "1.0.1",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
- },
"uuid": {
"version": "8.3.2",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true
},
+ "uuid-random": {
+ "version": "1.3.2",
+ "integrity": "sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ=="
+ },
"v8-compile-cache-lib": {
"version": "3.0.1",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
"dev": true
},
"v8-to-istanbul": {
- "version": "9.0.1",
- "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
+ "version": "9.1.0",
+ "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==",
"dev": true,
"requires": {
"@jridgewell/trace-mapping": "^0.3.12",
@@ -18962,12 +21137,12 @@
},
"dependencies": {
"@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
+ "version": "0.3.17",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
"dev": true,
"requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
}
}
}
@@ -18986,9 +21161,20 @@
"integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==",
"dev": true
},
- "vary": {
- "version": "1.1.2",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ "webidl-conversions": {
+ "version": "4.0.2",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "dev": true
+ },
+ "whatwg-url": {
+ "version": "7.1.0",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "dev": true,
+ "requires": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
},
"which": {
"version": "2.0.2",
@@ -18998,16 +21184,15 @@
"isexe": "^2.0.0"
}
},
- "word-wrap": {
- "version": "1.2.5",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "which-module": {
+ "version": "2.0.0",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
"dev": true
},
"wordwrap": {
"version": "1.0.0",
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true,
- "peer": true
+ "dev": true
},
"workerpool": {
"version": "6.5.1",
@@ -19039,11 +21224,21 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
"xtend": {
"version": "4.0.2",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true,
- "peer": true
+ "dev": true
},
"y18n": {
"version": "5.0.8",
diff --git a/package.json b/package.json
index 43994f5f6..4edaea2be 100644
--- a/package.json
+++ b/package.json
@@ -1,34 +1,42 @@
{
"author": "Sebastian Pekarek ",
- "bin": {
- "test-cli": "./dist/bin/cli.js"
- },
"bugs": {
- "url": "https://github.com/sebbo2002/js-template/issues"
+ "url": "http://github.com/sebbo2002/ical-generator/issues"
},
"dependencies": {
- "express": "^4.19.2"
+ "uuid-random": "^1.3.2"
},
- "description": "A template that I use to start new projects and services.",
+ "description": "ical-generator is a small piece of code which generates ical calendar files",
"devDependencies": {
"@eslint/js": "^9.6.0",
"@qiwi/semantic-release-gh-pages-plugin": "^5.2.12",
+ "@sebbo2002/semantic-release-jsr": "^1.0.0-develop.6",
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@semantic-release/npm": "^12.0.1",
+ "@touch4it/ical-timezones": "^1.9.0",
"@types/eslint__js": "^8.42.3",
"@types/express": "^4.17.21",
+ "@types/luxon": "^3.4.2",
"@types/mocha": "^10.0.7",
+ "@typescript-eslint/eslint-plugin": "^7.3.1",
"@types/node": "^20.14.10",
"c8": "^10.1.2",
+ "dayjs": "^1.11.10",
"eslint": "^9.6.0",
"eslint-plugin-jsonc": "^2.16.0",
"esm": "^3.2.25",
"license-checker": "^25.0.1",
+ "luxon": "^3.4.4",
"mocha": "^10.6.0",
"mochawesome": "^7.1.3",
- "semantic-release-license": "^1.0.3",
+ "moment": "^2.30.1",
+ "moment-timezone": "^0.5.45",
+ "nyc": "^15.1.0",
+ "rrule": "^2.8.1",
+ "semantic-release": "^23.0.5",
+ "semantic-release-license": "^1.0.2",
"source-map-support": "^0.5.21",
"ts-node": "^10.9.2",
"tsup": "^8.1.0",
@@ -40,31 +48,87 @@
"node": ">=18.0.0"
},
"exports": {
- "import": "./dist/lib/index.js",
- "require": "./dist/lib/index.cjs"
+ "import": "./dist/index.js",
+ "require": "./dist/index.cjs"
},
"files": [
+ "/src",
"/dist"
],
- "homepage": "https://github.com/sebbo2002/js-template#readme",
+ "homepage": "https://github.com/sebbo2002/ical-generator",
+ "keywords": [
+ "ical",
+ "ics",
+ "icalendar",
+ "generator",
+ "calendar",
+ "subscription",
+ "outlook",
+ "rfc",
+ "rfc5545",
+ "events",
+ "alarms"
+ ],
"license": "MIT",
- "main": "./dist/lib/index.cjs",
- "module": "./dist/lib/index.js",
- "name": "@sebbo2002/js-template-test",
+ "main": "./dist/index.cjs",
+ "module": "./dist/index.js",
+ "name": "ical-generator",
+ "peerDependencies": {
+ "@touch4it/ical-timezones": ">=1.6.0",
+ "@types/luxon": ">= 1.26.0",
+ "@types/mocha": ">= 8.2.1",
+ "dayjs": ">= 1.10.0",
+ "luxon": ">= 1.26.0",
+ "moment": ">= 2.29.0",
+ "moment-timezone": ">= 0.5.33",
+ "rrule": ">= 2.6.8"
+ },
+ "peerDependenciesMeta": {
+ "@touch4it/ical-timezones": {
+ "optional": true
+ },
+ "@types/luxon": {
+ "optional": true
+ },
+ "@types/mocha": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "dayjs": {
+ "optional": true
+ },
+ "luxon": {
+ "optional": true
+ },
+ "moment": {
+ "optional": true
+ },
+ "moment-timezone": {
+ "optional": true
+ },
+ "rrule": {
+ "optional": true
+ }
+ },
+ "preferGlobal": false,
"repository": {
"type": "git",
- "url": "git+https://github.com/sebbo2002/js-template.git"
+ "url": "https://github.com/sebbo2002/ical-generator.git"
},
+ "runkitExampleFilename": "examples/example-runkit.js",
"scripts": {
- "build": "tsup && cp ./dist/lib/index.d.ts ./dist/lib/index.d.cts",
+ "build": "tsup && cp ./dist/index.d.ts ./dist/index.d.cts",
"build-all": "./.github/workflows/build.sh",
"coverage": "c8 mocha",
"develop": "TS_NODE_TRANSPILE_ONLY=true node --no-warnings --enable-source-maps --loader ts-node/esm src/bin/start.ts",
+ "example": "node ./dist/examples/push.js",
"license-check": "license-checker --production --summary",
"lint": "eslint .",
"start": "node ./dist/bin/start.js",
"test": "mocha"
},
"type": "module",
- "version": "1.0.0"
+ "version": "7.2.0-develop.3"
}
diff --git a/release.config.cjs b/release.config.cjs
index db576bb0f..f25368611 100644
--- a/release.config.cjs
+++ b/release.config.cjs
@@ -35,6 +35,12 @@ configuration.plugins.push('semantic-release-license');
configuration.plugins.push('@semantic-release/npm');
+configuration.plugins.push('@sebbo2002/semantic-release-jsr');
+
+configuration.plugins.push(['@semantic-release/exec', {
+ 'prepareCmd': './.github/workflows/build.sh'
+}]);
+
configuration.plugins.push(['@semantic-release/exec', {
'prepareCmd': './.github/workflows/build.sh'
}]);
@@ -45,7 +51,7 @@ configuration.plugins.push(['@semantic-release/github', {
}]);
configuration.plugins.push(['@semantic-release/git', {
- 'assets': ['CHANGELOG.md', 'LICENSE'],
+ 'assets': ['CHANGELOG.md', 'LICENSE', 'package-lock.json', 'package.json'],
'message': 'chore(release): :bookmark: ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}'
}]);
diff --git a/src/alarm.ts b/src/alarm.ts
new file mode 100755
index 000000000..643f2031a
--- /dev/null
+++ b/src/alarm.ts
@@ -0,0 +1,746 @@
+'use strict';
+
+import ICalEvent from './event.ts';
+import {
+ addOrGetCustomAttributes,
+ formatDate,
+ escape,
+ generateCustomAttributes,
+ checkDate,
+ toDurationString,
+ toJSON,
+ checkNameAndMail
+} from './tools.ts';
+import {ICalDateTimeValue} from './types.ts';
+import ICalAttendee, { ICalAttendeeData } from './attendee.ts';
+
+
+export enum ICalAlarmType {
+ display = 'display',
+ audio = 'audio',
+ email = 'email'
+}
+
+export const ICalAlarmRelatesTo = {
+ end: 'END',
+ start: 'START'
+} as const;
+
+export type ICalAlarmRelatesTo = typeof ICalAlarmRelatesTo[keyof typeof ICalAlarmRelatesTo];
+
+export type ICalAlarmTypeValue = keyof ICalAlarmType;
+
+export interface ICalAttachment {
+ uri: string;
+ mime: string | null;
+}
+
+export type ICalAlarmData = ICalAlarmBaseData |
+ ICalAlarmTriggerData |
+ ICalAlarmTriggerAfterData |
+ ICalAlarmTriggerBeforeData;
+
+export type ICalAlarmTriggerData = ICalAlarmBaseData & { trigger: number | ICalDateTimeValue };
+export type ICalAlarmTriggerAfterData = ICalAlarmBaseData & { triggerAfter: number | ICalDateTimeValue };
+export type ICalAlarmTriggerBeforeData = ICalAlarmBaseData & { triggerBefore: number | ICalDateTimeValue };
+
+export interface ICalAlarmBaseData {
+ type?: ICalAlarmType;
+ relatesTo?: ICalAlarmRelatesTo | null;
+ repeat?: ICalAlarmRepeatData | null;
+ attach?: string | ICalAttachment | null;
+ description?: string | null;
+ summary?: string | null;
+ attendees?: ICalAttendee[] | ICalAttendeeData[];
+ x?: {key: string, value: string}[] | [string, string][] | Record;
+}
+
+export interface ICalAlarmRepeatData {
+ times: number;
+ interval: number;
+}
+
+interface ICalInternalAlarmData {
+ type: ICalAlarmType;
+ trigger: ICalDateTimeValue | number;
+ relatesTo: ICalAlarmRelatesTo | null;
+ repeat: ICalAlarmRepeatData | null;
+ interval: number | null;
+ attach: ICalAttachment | null;
+ description: string | null;
+ summary: string | null;
+ attendees: ICalAttendee[];
+ x: [string, string][];
+}
+
+export interface ICalAlarmJSONData {
+ type: ICalAlarmType;
+ trigger: string | number;
+ relatesTo: ICalAlarmRelatesTo | null;
+ repeat: ICalAlarmRepeatData | null;
+ interval: number | null;
+ attach: ICalAttachment | null;
+ description: string | null;
+ summary: string | null;
+ attendees: ICalAttendee[];
+ x: {key: string, value: string}[];
+}
+
+
+/**
+ * Usually you get an {@link ICalAlarm} object like this:
+ *
+ * ```javascript
+ * import ical from 'ical-generator';
+ * const calendar = ical();
+ * const event = calendar.createEvent();
+ * const alarm = event.createAlarm();
+ * ```
+ *
+ * You can also use the {@link ICalAlarm} object directly:
+ *
+ * ```javascript
+ * import ical, {ICalAlarm} from 'ical-generator';
+ * const alarm = new ICalAlarm();
+ * event.alarms([alarm]);
+ * ```
+ */
+export default class ICalAlarm {
+ private readonly data: ICalInternalAlarmData;
+ private readonly event: ICalEvent;
+
+ /**
+ * Constructor of {@link ICalAttendee}. The event reference is required
+ * to query the calendar's timezone and summary when required.
+ *
+ * @param data Alarm Data
+ * @param event Reference to ICalEvent object
+ */
+ constructor (data: ICalAlarmData, event: ICalEvent) {
+ this.data = {
+ type: ICalAlarmType.display,
+ trigger: -600,
+ relatesTo: null,
+ repeat: null,
+ interval: null,
+ attach: null,
+ description: null,
+ summary: null,
+ attendees: [],
+ x: []
+ };
+
+ this.event = event;
+ if (!event) {
+ throw new Error('`event` option required!');
+ }
+
+ data.type !== undefined && this.type(data.type);
+ '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.summary !== undefined && this.summary(data.summary);
+ data.attendees !== undefined && this.attendees(data.attendees);
+ data.x !== undefined && this.x(data.x);
+ }
+
+
+ /**
+ * Get the alarm type
+ * @since 0.2.1
+ */
+ type (type: ICalAlarmType): this;
+
+ /**
+ * Set the alarm type. See {@link ICalAlarmType}
+ * for available status options.
+ * @since 0.2.1
+ */
+ type (): ICalAlarmType;
+ type (type?: ICalAlarmType): this | ICalAlarmType {
+ if (type === undefined) {
+ return this.data.type;
+ }
+ if (!type || !Object.keys(ICalAlarmType).includes(type)) {
+ throw new Error('`type` is not correct, must be either `display` or `audio`!');
+ }
+
+ this.data.type = type;
+ return this;
+ }
+
+
+ /**
+ * Get the trigger time for the alarm. Can either
+ * be a date and time value ({@link ICalDateTimeValue}) or
+ * a number, which will represent the seconds between
+ * alarm and event start. The number is negative, if the
+ * alarm is triggered after the event started.
+ *
+ * @since 0.2.1
+ */
+ trigger (): number | ICalDateTimeValue;
+
+ /**
+ * Use this method to set the alarm time.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ * const alarm = cal.createAlarm();
+ *
+ * alarm.trigger(600); // -> 10 minutes before event starts
+ * alarm.trigger(new Date()); // -> now
+ * ```
+ *
+ * You can use any supported date object, see
+ * [readme](https://github.com/sebbo2002/ical-generator#-date-time--timezones)
+ * for details about supported values and timezone handling.
+ *
+ * @since 0.2.1
+ */
+ 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) {
+ return this.data.trigger;
+ }
+
+ // Setter
+ if (typeof trigger === 'number' && isFinite(trigger)) {
+ this.data.trigger = -1 * trigger;
+ }
+ else if(!trigger || typeof trigger === 'number') {
+ throw new Error('`trigger` is not correct, must be a finite number or a supported date!');
+ }
+ else {
+ this.data.trigger = checkDate(trigger, 'trigger');
+ }
+
+ return this;
+ }
+
+ /**
+ * Get to which time alarm trigger relates to.
+ * Can be either `START` or `END`. If the value is
+ * `START` the alarm is triggerd relative to the event start time.
+ * If the value is `END` the alarm is triggerd relative to the event end time
+ *
+ * @since 4.0.1
+ */
+ relatesTo(): ICalAlarmRelatesTo | null;
+
+ /**
+ * Use this method to set to which time alarm trigger relates to.
+ * Works only if trigger is a `number`
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ * const alarm = cal.createAlarm();
+ *
+ * alarm.trigger(600); // -> 10 minutes before event starts
+ *
+ * alarm.relatesTo('START'); // -> 10 minutes before event starts
+ * alarm.relatesTo('END'); // -> 10 minutes before event ends
+ *
+ * alarm.trigger(-600); // -> 10 minutes after event starts
+ *
+ * alarm.relatesTo('START'); // -> 10 minutes after event starts
+ * alarm.relatesTo('END'); // -> 10 minutes after event ends
+ * ```
+ * @since 4.0.1
+ */
+ relatesTo(relatesTo: ICalAlarmRelatesTo | null): this;
+ relatesTo(relatesTo?: ICalAlarmRelatesTo | null): this | ICalAlarmRelatesTo | null {
+ if (relatesTo === undefined) {
+ return this.data.relatesTo;
+ }
+ if (!relatesTo) {
+ this.data.relatesTo = null;
+ return this;
+ }
+
+ if (!Object.values(ICalAlarmRelatesTo).includes(relatesTo)) {
+ throw new Error('`relatesTo` is not correct, must be either `START` or `END`!');
+ }
+
+ this.data.relatesTo = relatesTo;
+ return this;
+ }
+
+
+ /**
+ * Get the trigger time for the alarm. Can either
+ * be a date and time value ({@link ICalDateTimeValue}) or
+ * a number, which will represent the seconds between
+ * alarm and event start. The number is negative, if the
+ * alarm is triggered before the event started.
+ *
+ * @since 0.2.1
+ */
+ triggerAfter (): number | ICalDateTimeValue;
+
+ /**
+ * Use this method to set the alarm time. Unlike `trigger`, this time
+ * the alarm takes place after the event has started.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ * const alarm = cal.createAlarm();
+ *
+ * alarm.trigger(600); // -> 10 minutes after event starts
+ * ```
+ *
+ * You can use any supported date object, see
+ * [readme](https://github.com/sebbo2002/ical-generator#-date-time--timezones)
+ * for details about supported values and timezone handling.
+ *
+ * @since 0.2.1
+ */
+ triggerAfter (trigger: number | ICalDateTimeValue): this;
+ triggerAfter (trigger?: number | ICalDateTimeValue): this | number | ICalDateTimeValue {
+ if (trigger === undefined) {
+ return this.data.trigger;
+ }
+
+ return this.trigger(typeof trigger === 'number' ? -1 * trigger : trigger);
+ }
+
+
+ /**
+ * Get the trigger time for the alarm. Can either
+ * be a date and time value ({@link ICalDateTimeValue}) or
+ * a number, which will represent the seconds between
+ * alarm and event start. The number is negative, if the
+ * alarm is triggered after the event started.
+ *
+ * @since 0.2.1
+ * @alias trigger
+ */
+ triggerBefore (trigger: number | ICalDateTimeValue): this;
+
+ /**
+ * Use this method to set the alarm time.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ * const alarm = cal.createAlarm();
+ *
+ * alarm.trigger(600); // -> 10 minutes before event starts
+ * alarm.trigger(new Date()); // -> now
+ * ```
+ *
+ * You can use any supported date object, see
+ * [readme](https://github.com/sebbo2002/ical-generator#-date-time--timezones)
+ * for details about supported values and timezone handling.
+ *
+ * @since 0.2.1
+ * @alias trigger
+ */
+ triggerBefore (): number | ICalDateTimeValue;
+ triggerBefore (trigger?: number | ICalDateTimeValue): this | number | ICalDateTimeValue {
+ if(trigger === undefined) {
+ return this.trigger();
+ }
+
+ return this.trigger(trigger);
+ }
+
+
+ /**
+ * Get Alarm Repetitions
+ * @since 0.2.1
+ */
+ repeat(): ICalAlarmRepeatData | null;
+
+ /**
+ * Set Alarm Repetitions. Use this to repeat the alarm.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ *
+ * // repeat the alarm 4 times every 5 minutes…
+ * cal.createAlarm({
+ * repeat: {
+ * times: 4,
+ * interval: 300
+ * }
+ * });
+ * ```
+ *
+ * @since 0.2.1
+ */
+ repeat(repeat: ICalAlarmRepeatData | null): this;
+ repeat (repeat?: ICalAlarmRepeatData | null): this | ICalAlarmRepeatData | null {
+ if (repeat === undefined) {
+ return this.data.repeat;
+ }
+ if (!repeat) {
+ this.data.repeat = null;
+ return this;
+ }
+
+ if (typeof repeat !== 'object') {
+ throw new Error('`repeat` is not correct, must be an object!');
+ }
+ if (typeof repeat.times !== 'number' || !isFinite(repeat.times)) {
+ throw new Error('`repeat.times` is not correct, must be numeric!');
+ }
+ if (typeof repeat.interval !== 'number' || !isFinite(repeat.interval)) {
+ throw new Error('`repeat.interval` is not correct, must be numeric!');
+ }
+
+ this.data.repeat = repeat;
+ return this;
+ }
+
+
+ /**
+ * Get Attachment
+ * @since 0.2.1
+ */
+ attach (): {uri: string, mime: string | null} | null;
+
+ /**
+ * Set Alarm attachment. Used to set the alarm sound
+ * if alarm type is audio. Defaults to "Basso".
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ *
+ * event.createAlarm({
+ * attach: 'https://example.com/notification.aud'
+ * });
+ *
+ * // OR
+ *
+ * event.createAlarm({
+ * attach: {
+ * uri: 'https://example.com/notification.aud',
+ * mime: 'audio/basic'
+ * }
+ * });
+ * ```
+ *
+ * @since 0.2.1
+ */
+ attach (attachment: {uri: string, mime?: string | null} | string | null): this;
+ attach (attachment?: {uri: string, mime?: string | null} | string | null): this | {uri: string, mime: string | null} | null {
+ if (attachment === undefined) {
+ return this.data.attach;
+ }
+ if (!attachment) {
+ this.data.attach = null;
+ return this;
+ }
+
+ let _attach = null;
+ if (typeof attachment === 'string') {
+ _attach = {
+ uri: attachment,
+ mime: null
+ };
+ }
+ else if (typeof attachment === 'object') {
+ _attach = {
+ uri: attachment.uri,
+ mime: attachment.mime || null
+ };
+ }
+ else {
+ throw new Error(
+ '`attachment` needs to be a valid formed string or an object. See https://sebbo2002.github.io/' +
+ 'ical-generator/develop/reference/classes/ICalAlarm.html#attach'
+ );
+ }
+
+ if (!_attach.uri) {
+ throw new Error('`attach.uri` is empty!');
+ }
+
+ this.data.attach = {
+ uri: _attach.uri,
+ mime: _attach.mime
+ };
+ return this;
+ }
+
+
+ /**
+ * Get the alarm description. Used to set the alarm message
+ * if alarm type is `display`. If the alarm type is `email`, it's
+ * used to set the email body. Defaults to the event's summary.
+ *
+ * @since 0.2.1
+ */
+ description (): string | null;
+
+ /**
+ * Set the alarm description. Used to set the alarm message
+ * if alarm type is `display`. If the alarm type is `email`, it's
+ * used to set the email body. Defaults to the event's summary.
+ *
+ * @since 0.2.1
+ */
+ description (description: string | null): this;
+ description (description?: string | null): this | string | null {
+ if (description === undefined) {
+ return this.data.description;
+ }
+ if (!description) {
+ this.data.description = null;
+ return this;
+ }
+
+ this.data.description = description;
+ return this;
+ }
+
+
+ /**
+ * Get the alarm summary. Used to set the email subject
+ * if alarm type is `email`. Defaults to the event's summary.
+ *
+ * @since 7.0.0
+ */
+ summary (): string | null;
+
+ /**
+ * Set the alarm summary. Used to set the email subject
+ * if alarm type is display. Defaults to the event's summary.
+ *
+ * @since 0.2.1
+ */
+ summary (summary: string | null): this;
+ summary (summary?: string | null): this | string | null {
+ if (summary === undefined) {
+ return this.data.summary;
+ }
+ if (!summary) {
+ this.data.summary = null;
+ return this;
+ }
+
+ this.data.summary = summary;
+ return this;
+ }
+
+
+ /**
+ * Creates a new {@link ICalAttendee} and returns it. Use options to prefill
+ * the attendee's attributes. Calling this method without options will create
+ * an empty attendee.
+ *
+ * @since 7.0.0
+ */
+ createAttendee(data: ICalAttendee | ICalAttendeeData | string): ICalAttendee {
+ if (data instanceof ICalAttendee) {
+ this.data.attendees.push(data);
+ return data;
+ }
+ if (typeof data === 'string') {
+ data = { email: data, ...checkNameAndMail('data', data) };
+ }
+
+ const attendee = new ICalAttendee(data, this);
+ this.data.attendees.push(attendee);
+ return attendee;
+ }
+
+
+ /**
+ * Get all attendees
+ * @since 7.0.0
+ */
+ attendees(): ICalAttendee[];
+
+ /**
+ * Add multiple attendees to your event
+ *
+ * @since 7.0.0
+ */
+ attendees(attendees: (ICalAttendee | ICalAttendeeData | string)[]): this;
+ attendees(attendees?: (ICalAttendee | ICalAttendeeData | string)[]): this | ICalAttendee[] {
+ if (!attendees) {
+ return this.data.attendees;
+ }
+
+ attendees.forEach(attendee => this.createAttendee(attendee));
+ return this;
+ }
+
+
+ /**
+ * Set X-* attributes. Woun't filter double attributes,
+ * which are also added by another method (e.g. type),
+ * so these attributes may be inserted twice.
+ *
+ * ```javascript
+ * alarm.x([
+ * {
+ * key: "X-MY-CUSTOM-ATTR",
+ * value: "1337!"
+ * }
+ * ]);
+ *
+ * alarm.x([
+ * ["X-MY-CUSTOM-ATTR", "1337!"]
+ * ]);
+ *
+ * alarm.x({
+ * "X-MY-CUSTOM-ATTR": "1337!"
+ * });
+ * ```
+ *
+ * @since 1.9.0
+ */
+ x (keyOrArray: {key: string, value: string}[] | [string, string][] | Record): this;
+
+ /**
+ * Set a X-* attribute. Woun't filter double attributes,
+ * which are also added by another method (e.g. type),
+ * so these attributes may be inserted twice.
+ *
+ * ```javascript
+ * alarm.x("X-MY-CUSTOM-ATTR", "1337!");
+ * ```
+ *
+ * @since 1.9.0
+ */
+ x (keyOrArray: string, value: string): this;
+
+ /**
+ * Get all custom X-* attributes.
+ * @since 1.9.0
+ */
+ x (): {key: string, value: string}[];
+ x (keyOrArray?: ({key: string, value: string})[] | [string, string][] | Record | string, value?: string): this | void | ({key: string, value: string})[] {
+ if(keyOrArray === undefined) {
+ return addOrGetCustomAttributes (this.data);
+ }
+
+ if(typeof keyOrArray === 'string' && typeof value === 'string') {
+ addOrGetCustomAttributes (this.data, keyOrArray, value);
+ }
+ else if(typeof keyOrArray === 'object') {
+ addOrGetCustomAttributes (this.data, keyOrArray);
+ }
+ else {
+ throw new Error('Either key or value is not a string!');
+ }
+
+ return this;
+ }
+
+
+ /**
+ * Return a shallow copy of the alarm's options for JSON stringification.
+ * Third party objects like moment.js values are stringified as well. Can
+ * be used for persistence.
+ *
+ * @since 0.2.4
+ */
+ toJSON (): ICalAlarmJSONData {
+ const trigger = this.trigger();
+ return Object.assign({}, this.data, {
+ trigger: typeof trigger === 'number' ? trigger : toJSON(trigger),
+ x: this.x()
+ });
+ }
+
+
+ /**
+ * Return generated event as a string.
+ *
+ * ```javascript
+ * const alarm = event.createAlarm();
+ * console.log(alarm.toString()); // → BEGIN:VALARM…
+ * ```
+ */
+ toString (): string {
+ let g = 'BEGIN:VALARM\r\n';
+
+ // ACTION
+ g += 'ACTION:' + this.data.type.toUpperCase() + '\r\n';
+
+ if (typeof this.data.trigger === 'number' && this.data.relatesTo === null) {
+ if (this.data.trigger > 0) {
+ g += 'TRIGGER;RELATED=END:' + toDurationString(this.data.trigger) + '\r\n';
+ }
+ else {
+ g += 'TRIGGER:' + toDurationString(this.data.trigger) + '\r\n';
+ }
+ }
+ else if (typeof this.data.trigger === 'number') {
+ 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) {
+ 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`!');
+ }
+
+ g += 'REPEAT:' + this.data.repeat.times + '\r\n';
+ g += 'DURATION:' + toDurationString(this.data.repeat.interval) + '\r\n';
+ }
+
+ // ATTACH
+ if (this.data.type === 'audio' && this.data.attach && this.data.attach.mime) {
+ g += 'ATTACH;FMTTYPE=' + escape(this.data.attach.mime, false) + ':' + escape(this.data.attach.uri, false) + '\r\n';
+ }
+ else if (this.data.type === 'audio' && this.data.attach) {
+ g += 'ATTACH;VALUE=URI:' + escape(this.data.attach.uri, false) + '\r\n';
+ }
+ else if (this.data.type === 'audio') {
+ g += 'ATTACH;VALUE=URI:Basso\r\n';
+ }
+
+ // DESCRIPTION
+ if (this.data.type !== 'audio' && this.data.description) {
+ g += 'DESCRIPTION:' + escape(this.data.description, false) + '\r\n';
+ }
+ else if (this.data.type !== 'audio') {
+ g += 'DESCRIPTION:' + escape(this.event.summary(), false) + '\r\n';
+ }
+
+ // SUMMARY
+ if (this.data.type === 'email' && this.data.summary) {
+ g += 'SUMMARY:' + escape(this.data.summary, false) + '\r\n';
+ }
+ else if (this.data.type === 'email') {
+ g += 'SUMMARY:' + escape(this.event.summary(), false) + '\r\n';
+ }
+
+ // ATTENDEES
+ if (this.data.type === 'email') {
+ this.data.attendees.forEach(attendee => {
+ g += attendee.toString();
+ });
+ }
+
+ // CUSTOM X ATTRIBUTES
+ g += generateCustomAttributes(this.data);
+
+ g += 'END:VALARM\r\n';
+ return g;
+ }
+}
diff --git a/src/attendee.ts b/src/attendee.ts
new file mode 100755
index 000000000..7462d0fb6
--- /dev/null
+++ b/src/attendee.ts
@@ -0,0 +1,618 @@
+'use strict';
+
+
+import {addOrGetCustomAttributes, checkEnum, checkNameAndMail, escape} from './tools.ts';
+import ICalEvent from './event.ts';
+import ICalAlarm from './alarm.ts';
+
+
+interface ICalInternalAttendeeData {
+ name: string | null;
+ email: string;
+ mailto: string | null;
+ sentBy: string | null;
+ status: ICalAttendeeStatus | null;
+ role: ICalAttendeeRole;
+ rsvp: boolean | null;
+ type: ICalAttendeeType | null;
+ delegatedTo: ICalAttendee | null;
+ delegatedFrom: ICalAttendee | null;
+ x: [string, string][];
+}
+
+export interface ICalAttendeeData {
+ name?: string | null;
+ email: string;
+ mailto?: string | null;
+ sentBy?: string | null;
+ status?: ICalAttendeeStatus | null;
+ role?: ICalAttendeeRole;
+ rsvp?: boolean | null;
+ type?: ICalAttendeeType | null;
+ delegatedTo?: ICalAttendee | ICalAttendeeData | string | null;
+ delegatedFrom?: ICalAttendee | ICalAttendeeData | string | null;
+ delegatesTo?: ICalAttendee | ICalAttendeeData | string | null;
+ delegatesFrom?: ICalAttendee | ICalAttendeeData | string | null;
+ x?: {key: string, value: string}[] | [string, string][] | Record;
+}
+
+export interface ICalAttendeeJSONData {
+ name: string | null;
+ email: string;
+ mailto: string | null;
+ sentBy: string | null;
+ status: ICalAttendeeStatus | null;
+ role: ICalAttendeeRole;
+ rsvp: boolean | null;
+ type: ICalAttendeeType | null;
+ delegatedTo: string | null;
+ delegatedFrom: string | null;
+ x: {key: string, value: string}[];
+}
+
+export enum ICalAttendeeRole {
+ CHAIR = 'CHAIR',
+ REQ = 'REQ-PARTICIPANT',
+ OPT = 'OPT-PARTICIPANT',
+ NON = 'NON-PARTICIPANT'
+}
+
+export enum ICalAttendeeStatus {
+ ACCEPTED = 'ACCEPTED',
+ TENTATIVE = 'TENTATIVE',
+ DECLINED = 'DECLINED',
+ DELEGATED = 'DELEGATED',
+ NEEDSACTION = 'NEEDS-ACTION'
+}
+
+// ref: https://tools.ietf.org/html/rfc2445#section-4.2.3
+export enum ICalAttendeeType {
+ INDIVIDUAL = 'INDIVIDUAL',
+ GROUP = 'GROUP',
+ RESOURCE = 'RESOURCE',
+ ROOM = 'ROOM',
+ UNKNOWN = 'UNKNOWN'
+}
+
+
+/**
+ * Usually you get an {@link ICalAttendee} object like this:
+ *
+ * ```javascript
+ * import ical from 'ical-generator';
+ * const calendar = ical();
+ * const event = calendar.createEvent();
+ * const attendee = event.createAttendee({ email: 'mail@example.com' });
+ * ```
+ *
+ * You can also use the {@link ICalAttendee} object directly:
+ *
+ * ```javascript
+ * import ical, {ICalAttendee} from 'ical-generator';
+ * const attendee = new ICalAttendee({ email: 'mail@example.com' });
+ * event.attendees([attendee]);
+ * ```
+ */
+export default class ICalAttendee {
+ private readonly data: ICalInternalAttendeeData;
+ private readonly parent: ICalEvent | ICalAlarm;
+
+ /**
+ * Constructor of {@link ICalAttendee}. The event reference is
+ * required to query the calendar's timezone when required.
+ *
+ * @param data Attendee Data
+ * @param parent Reference to ICalEvent object
+ */
+ constructor(data: ICalAttendeeData, parent: ICalEvent | ICalAlarm) {
+ this.data = {
+ name: null,
+ email: '',
+ mailto: null,
+ sentBy: null,
+ status: null,
+ role: ICalAttendeeRole.REQ,
+ rsvp: null,
+ type: null,
+ delegatedTo: null,
+ delegatedFrom: null,
+ x: []
+ };
+ this.parent = parent;
+ if (!this.parent) {
+ 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);
+ data.mailto !== undefined && this.mailto(data.mailto);
+ data.sentBy !== undefined && this.sentBy(data.sentBy);
+ data.status !== undefined && this.status(data.status);
+ data.role !== undefined && this.role(data.role);
+ data.rsvp !== undefined && this.rsvp(data.rsvp);
+ data.type !== undefined && this.type(data.type);
+ data.delegatedTo !== undefined && this.delegatedTo(data.delegatedTo);
+ data.delegatedFrom !== undefined && this.delegatedFrom(data.delegatedFrom);
+ data.delegatesTo && this.delegatesTo(data.delegatesTo);
+ data.delegatesFrom && this.delegatesFrom(data.delegatesFrom);
+ data.x !== undefined && this.x(data.x);
+ }
+
+
+ /**
+ * Get the attendee's name
+ * @since 0.2.0
+ */
+ name(): string | null;
+
+ /**
+ * Set the attendee's name
+ * @since 0.2.0
+ */
+ name(name: string | null): this;
+ name(name?: string | null): this | string | null {
+ if (name === undefined) {
+ return this.data.name;
+ }
+
+ this.data.name = name || null;
+ return this;
+ }
+
+
+ /**
+ * Get the attendee's email address
+ * @since 0.2.0
+ */
+ email(): string;
+
+ /**
+ * Set the attendee's email address
+ * @since 0.2.0
+ */
+ email(email: string): this;
+ email(email?: string): this | string {
+ if (!email) {
+ return this.data.email;
+ }
+
+ this.data.email = email;
+ return this;
+ }
+
+ /**
+ * Get the attendee's email address
+ * @since 1.3.0
+ */
+ mailto(): string | null;
+
+ /**
+ * Set the attendee's email address
+ * @since 1.3.0
+ */
+ mailto(mailto: string | null): this;
+ mailto(mailto?: string | null): this | string | null {
+ if (mailto === undefined) {
+ return this.data.mailto;
+ }
+
+ this.data.mailto = mailto || null;
+ return this;
+ }
+
+
+ /**
+ * Get the acting user's email adress
+ * @since 3.3.0
+ */
+ sentBy(): string | null;
+
+ /**
+ * Set the acting user's email adress
+ * @since 3.3.0
+ */
+ sentBy(email: string | null): this;
+ sentBy(email?: string | null): this | string | null {
+ if (!email) {
+ return this.data.sentBy;
+ }
+
+ this.data.sentBy = email;
+ return this;
+ }
+
+
+ /**
+ * Get attendee's role
+ * @since 0.2.0
+ */
+ role(): ICalAttendeeRole;
+
+ /**
+ * Set the attendee's role, defaults to `REQ` / `REQ-PARTICIPANT`.
+ * Checkout {@link ICalAttendeeRole} for available roles.
+ *
+ * @since 0.2.0
+ */
+ role(role: ICalAttendeeRole): this;
+ role(role?: ICalAttendeeRole): this | ICalAttendeeRole {
+ if (role === undefined) {
+ return this.data.role;
+ }
+
+ this.data.role = checkEnum(ICalAttendeeRole, role) as ICalAttendeeRole;
+ return this;
+ }
+
+
+ /**
+ * Get attendee's RSVP expectation
+ * @since 0.2.1
+ */
+ rsvp(): boolean | null;
+
+ /**
+ * Set the attendee's RSVP expectation
+ * @since 0.2.1
+ */
+ rsvp(rsvp: boolean | null): this;
+ rsvp(rsvp?: boolean | null): this | boolean | null {
+ if (rsvp === undefined) {
+ return this.data.rsvp;
+ }
+ if (rsvp === null) {
+ this.data.rsvp = null;
+ return this;
+ }
+
+ this.data.rsvp = Boolean(rsvp);
+ return this;
+ }
+
+
+ /**
+ * Get attendee's status
+ * @since 0.2.0
+ */
+ status(): ICalAttendeeStatus | null;
+
+ /**
+ * Set the attendee's status. See {@link ICalAttendeeStatus}
+ * for available status options.
+ *
+ * @since 0.2.0
+ */
+ status(status: ICalAttendeeStatus | null): this;
+ status(status?: ICalAttendeeStatus | null): this | ICalAttendeeStatus | null {
+ if (status === undefined) {
+ return this.data.status;
+ }
+ if (!status) {
+ this.data.status = null;
+ return this;
+ }
+
+ this.data.status = checkEnum(ICalAttendeeStatus, status) as ICalAttendeeStatus;
+ return this;
+ }
+
+
+ /**
+ * Get attendee's type (a.k.a. CUTYPE)
+ * @since 0.2.3
+ */
+ type(): ICalAttendeeType;
+
+ /**
+ * Set attendee's type (a.k.a. CUTYPE).
+ * See {@link ICalAttendeeType} for available status options.
+ *
+ * @since 0.2.3
+ */
+ type(type: ICalAttendeeType | null): this;
+ type(type?: ICalAttendeeType | null): this | ICalAttendeeType | null {
+ if (type === undefined) {
+ return this.data.type;
+ }
+ if (!type) {
+ this.data.type = null;
+ return this;
+ }
+
+ this.data.type = checkEnum(ICalAttendeeType, type) as ICalAttendeeType;
+ return this;
+ }
+
+
+ /**
+ * Get the attendee's delegated-to value.
+ * @since 0.2.0
+ */
+ delegatedTo(): ICalAttendee | null;
+
+ /**
+ * Set the attendee's delegated-to field.
+ *
+ * Creates a new Attendee if the passed object is not already a
+ * {@link ICalAttendee} object. Will set the `delegatedTo` and
+ * `delegatedFrom` attributes.
+ *
+ * Will also set the `status` to `DELEGATED`, if attribute is set.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ * const attendee = cal.createAttendee();
+ *
+ * attendee.delegatesTo({email: 'foo@bar.com', name: 'Foo'});
+ ```
+ *
+ * @since 0.2.0
+ */
+ delegatedTo(delegatedTo: ICalAttendee | ICalAttendeeData | string | null): this;
+ delegatedTo(delegatedTo?: ICalAttendee | ICalAttendeeData | string | null): this | ICalAttendee | null {
+ if (delegatedTo === undefined) {
+ return this.data.delegatedTo;
+ }
+ if (!delegatedTo) {
+ this.data.delegatedTo = null;
+ if (this.data.status === ICalAttendeeStatus.DELEGATED) {
+ this.data.status = null;
+ }
+ return this;
+ }
+
+ if(typeof delegatedTo === 'string') {
+ this.data.delegatedTo = new ICalAttendee(
+ { email: delegatedTo, ...checkNameAndMail('delegatedTo', delegatedTo) },
+ this.parent,
+ );
+ }
+ else if(delegatedTo instanceof ICalAttendee) {
+ this.data.delegatedTo = delegatedTo;
+ }
+ else {
+ this.data.delegatedTo = new ICalAttendee(delegatedTo, this.parent);
+ }
+
+ this.data.status = ICalAttendeeStatus.DELEGATED;
+ return this;
+ }
+
+
+ /**
+ * Get the attendee's delegated-from field
+ * @since 0.2.0
+ */
+ delegatedFrom (): ICalAttendee | null;
+
+ /**
+ * Set the attendee's delegated-from field
+ *
+ * Creates a new Attendee if the passed object is not already a
+ * {@link ICalAttendee} object. Will set the `delegatedTo` and
+ * `delegatedFrom` attributes.
+ *
+ * @param delegatedFrom
+ */
+ delegatedFrom (delegatedFrom: ICalAttendee | ICalAttendeeData | string | null): this;
+ delegatedFrom(delegatedFrom?: ICalAttendee | ICalAttendeeData | string | null): this | ICalAttendee | null {
+ if (delegatedFrom === undefined) {
+ return this.data.delegatedFrom;
+ }
+
+ if (!delegatedFrom) {
+ this.data.delegatedFrom = null;
+ }
+ else if(typeof delegatedFrom === 'string') {
+ this.data.delegatedFrom = new ICalAttendee(
+ { email: delegatedFrom, ...checkNameAndMail('delegatedFrom', delegatedFrom) },
+ this.parent,
+ );
+ }
+ else if(delegatedFrom instanceof ICalAttendee) {
+ this.data.delegatedFrom = delegatedFrom;
+ }
+ else {
+ this.data.delegatedFrom = new ICalAttendee(delegatedFrom, this.parent);
+ }
+
+ return this;
+ }
+
+
+ /**
+ * Create a new attendee this attendee delegates to and returns
+ * this new attendee. Creates a new attendee if the passed object
+ * is not already an {@link ICalAttendee}.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ * const attendee = cal.createAttendee();
+ *
+ * attendee.delegatesTo({email: 'foo@bar.com', name: 'Foo'});
+ * ```
+ *
+ * @since 0.2.0
+ */
+ delegatesTo (options: ICalAttendee | ICalAttendeeData | string): ICalAttendee {
+ const a = options instanceof ICalAttendee ? options : this.parent.createAttendee(options);
+ this.delegatedTo(a);
+ a.delegatedFrom(this);
+ return a;
+ }
+
+
+ /**
+ * Create a new attendee this attendee delegates from and returns
+ * this new attendee. Creates a new attendee if the passed object
+ * is not already an {@link ICalAttendee}.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ * const attendee = cal.createAttendee();
+ *
+ * attendee.delegatesFrom({email: 'foo@bar.com', name: 'Foo'});
+ * ```
+ *
+ * @since 0.2.0
+ */
+ delegatesFrom (options: ICalAttendee | ICalAttendeeData | string): ICalAttendee {
+ const a = options instanceof ICalAttendee ? options : this.parent.createAttendee(options);
+ this.delegatedFrom(a);
+ a.delegatedTo(this);
+ return a;
+ }
+
+ /**
+ * Set X-* attributes. Woun't filter double attributes,
+ * which are also added by another method (e.g. status),
+ * so these attributes may be inserted twice.
+ *
+ * ```javascript
+ * attendee.x([
+ * {
+ * key: "X-MY-CUSTOM-ATTR",
+ * value: "1337!"
+ * }
+ * ]);
+ *
+ * attendee.x([
+ * ["X-MY-CUSTOM-ATTR", "1337!"]
+ * ]);
+ *
+ * attendee.x({
+ * "X-MY-CUSTOM-ATTR": "1337!"
+ * });
+ * ```
+ *
+ * @since 1.9.0
+ */
+ x (keyOrArray: {key: string, value: string}[] | [string, string][] | Record): this;
+
+ /**
+ * Set a X-* attribute. Woun't filter double attributes,
+ * which are also added by another method (e.g. status),
+ * so these attributes may be inserted twice.
+ *
+ * ```javascript
+ * attendee.x("X-MY-CUSTOM-ATTR", "1337!");
+ * ```
+ *
+ * @since 1.9.0
+ */
+ x (keyOrArray: string, value: string): this;
+
+ /**
+ * Get all custom X-* attributes.
+ * @since 1.9.0
+ */
+ x (): {key: string, value: string}[];
+ x (keyOrArray?: ({key: string, value: string})[] | [string, string][] | Record | string, value?: string): this | void | ({key: string, value: string})[] {
+ if(keyOrArray === undefined) {
+ return addOrGetCustomAttributes (this.data);
+ }
+
+ if(typeof keyOrArray === 'string' && typeof value === 'string') {
+ addOrGetCustomAttributes (this.data, keyOrArray, value);
+ }
+ else if(typeof keyOrArray === 'object') {
+ addOrGetCustomAttributes (this.data, keyOrArray);
+ }
+ else {
+ throw new Error('Either key or value is not a string!');
+ }
+
+ return this;
+ }
+
+
+ /**
+ * Return a shallow copy of the attendee's options for JSON stringification.
+ * Can be used for persistence.
+ *
+ * @since 0.2.4
+ */
+ toJSON(): ICalAttendeeJSONData {
+ return Object.assign({}, this.data, {
+ delegatedTo: this.data.delegatedTo?.email() || null,
+ delegatedFrom: this.data.delegatedFrom?.email() || null,
+ x: this.x()
+ });
+ }
+
+
+ /**
+ * Return generated attendee as a string.
+ *
+ * ```javascript
+ * console.log(attendee.toString()); // → ATTENDEE;ROLE=…
+ * ```
+ */
+ toString (): string {
+ let g = 'ATTENDEE';
+
+ if (!this.data.email) {
+ throw new Error('No value for `email` in ICalAttendee given!');
+ }
+
+ // ROLE
+ g += ';ROLE=' + this.data.role;
+
+ // TYPE
+ if (this.data.type) {
+ g += ';CUTYPE=' + this.data.type;
+ }
+
+ // PARTSTAT
+ if (this.data.status) {
+ g += ';PARTSTAT=' + this.data.status;
+ }
+
+ // RSVP
+ if (this.data.rsvp !== null) {
+ g += ';RSVP=' + this.data.rsvp.toString().toUpperCase();
+ }
+
+ // SENT-BY
+ if (this.data.sentBy !== null) {
+ g += ';SENT-BY="mailto:' + this.data.sentBy + '"';
+ }
+
+ // DELEGATED-TO
+ if (this.data.delegatedTo) {
+ g += ';DELEGATED-TO="' + this.data.delegatedTo.email() + '"';
+ }
+
+ // DELEGATED-FROM
+ if (this.data.delegatedFrom) {
+ g += ';DELEGATED-FROM="' + this.data.delegatedFrom.email() + '"';
+ }
+
+ // CN / Name
+ if (this.data.name) {
+ g += ';CN="' + escape(this.data.name, true) + '"';
+ }
+
+ // EMAIL
+ if (this.data.email && this.data.mailto) {
+ g += ';EMAIL=' + escape(this.data.email, false);
+ }
+
+ // CUSTOM X ATTRIBUTES
+ if(this.data.x.length) {
+ g += ';' + this.data.x
+ .map(([key, value]) => key.toUpperCase() + '=' + escape(value, false))
+ .join(';');
+ }
+
+ g += ':MAILTO:' + escape(this.data.mailto || this.data.email, false) + '\r\n';
+
+ return g;
+ }
+}
diff --git a/src/bin/cli.ts b/src/bin/cli.ts
deleted file mode 100644
index 2493e5bbe..000000000
--- a/src/bin/cli.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env node
-'use strict';
-
-/* istanbul ignore file */
-
-import Magic from '../lib/index.js';
-
-const number = parseInt(process.argv[process.argv.length - 1], 10);
-console.log(Magic.double(number));
diff --git a/src/bin/start.ts b/src/bin/start.ts
deleted file mode 100644
index b15b1ff75..000000000
--- a/src/bin/start.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env node
-'use strict';
-
-import express, {Express} from 'express';
-import {Server} from 'http';
-
-
-class AppServer {
- static run() {
- new AppServer();
- }
-
- private app: Express;
- private server: Server;
-
- constructor() {
- this.app = express();
-
- this.setupRoutes();
- this.server = this.app.listen(process.env.PORT || 8080);
-
- process.on('SIGINT', () => this.stop());
- process.on('SIGTERM', () => this.stop());
- }
-
- setupRoutes() {
- this.app.get('/ping', (req, res) => {
- res.send('pong');
- });
-
- // add additional routes
- }
-
- async stop() {
- await new Promise(cb => this.server.close(cb));
-
- // await db.close() if we have a db connection in this app
- // await other things we should cleanup nicely
-
- process.exit();
- }
-}
-
-AppServer.run();
diff --git a/src/calendar.ts b/src/calendar.ts
new file mode 100755
index 000000000..5bb85e1b4
--- /dev/null
+++ b/src/calendar.ts
@@ -0,0 +1,817 @@
+'use strict';
+
+import {
+ addOrGetCustomAttributes,
+ checkEnum,
+ foldLines,
+ generateCustomAttributes,
+ isMomentDuration,
+ toDurationString
+} from './tools.ts';
+import ICalEvent, {ICalEventData, ICalEventJSONData} from './event.ts';
+import { ICalMomentDurationStub, ICalTimezone } from './types.ts';
+
+
+export interface ICalCalendarData {
+ prodId?: ICalCalendarProdIdData | string;
+ method?: ICalCalendarMethod | null;
+ name?: string | null;
+ description?: string | null;
+ timezone?: ICalTimezone | string | null;
+ source?: string | null;
+ url?: string | null;
+ scale?: string | null;
+ ttl?: number | ICalMomentDurationStub | null;
+ events?: (ICalEvent | ICalEventData)[];
+ x?: {key: string, value: string}[] | [string, string][] | Record;
+}
+
+interface ICalCalendarInternalData {
+ prodId: string;
+ method: ICalCalendarMethod | null;
+ name: string | null;
+ description: string | null;
+ timezone: ICalTimezone | null;
+ source: string | null;
+ url: string | null;
+ scale: string | null;
+ ttl: number | null;
+ events: ICalEvent[];
+ x: [string, string][];
+}
+
+export interface ICalCalendarJSONData {
+ prodId: string;
+ method: ICalCalendarMethod | null;
+ name: string | null;
+ description: string | null;
+ timezone: string | null;
+ source: string | null;
+ url: string | null;
+ scale: string | null;
+ ttl: number | null;
+ events: ICalEventJSONData[];
+ x: {key: string, value: string}[];
+}
+
+export interface ICalCalendarProdIdData {
+ company: string;
+ product: string;
+ language?: string;
+}
+
+export enum ICalCalendarMethod {
+ PUBLISH = 'PUBLISH',
+ REQUEST = 'REQUEST',
+ REPLY = 'REPLY',
+ ADD = 'ADD',
+ CANCEL = 'CANCEL',
+ REFRESH = 'REFRESH',
+ COUNTER = 'COUNTER',
+ DECLINECOUNTER = 'DECLINECOUNTER'
+}
+
+
+/**
+ * Usually you get an {@link ICalCalendar} object like this:
+ * ```javascript
+ * import ical from 'ical-generator';
+ * const calendar = ical();
+ * ```
+ *
+ * But you can also use the constructor directly like this:
+ * ```javascript
+ * import {ICalCalendar} from 'ical-generator';
+ * const calendar = new ICalCalendar();
+ * ```
+ */
+export default class ICalCalendar {
+ private readonly data: ICalCalendarInternalData;
+
+ /**
+ * You can pass options to set up your calendar or use setters to do this.
+ *
+ * ```javascript
+ * * import ical from 'ical-generator';
+ *
+ * // or use require:
+ * // const { default: ical } = require('ical-generator');
+ *
+ *
+ * const cal = ical({name: 'my first iCal'});
+ *
+ * // is the same as
+ *
+ * const cal = ical().name('my first iCal');
+ *
+ * // is the same as
+ *
+ * const cal = ical();
+ * cal.name('sebbo.net');
+ * ```
+ *
+ * `cal.toString()` would then produce the following string:
+ * ```text
+ * BEGIN:VCALENDAR
+ * VERSION:2.0
+ * PRODID:-//sebbo.net//ical-generator//EN
+ * NAME:sebbo.net
+ * X-WR-CALNAME:sebbo.net
+ * END:VCALENDAR
+ * ```
+ *
+ * @param data Calendar data
+ */
+ constructor(data: ICalCalendarData = {}) {
+ this.data = {
+ prodId: '//sebbo.net//ical-generator//EN',
+ method: null,
+ name: null,
+ description: null,
+ timezone: null,
+ source: null,
+ url: null,
+ scale: null,
+ ttl: null,
+ events: [],
+ x: []
+ };
+
+ data.prodId !== undefined && this.prodId(data.prodId);
+ data.method !== undefined && this.method(data.method);
+ data.name !== undefined && this.name(data.name);
+ data.description !== undefined && this.description(data.description);
+ data.timezone !== undefined && this.timezone(data.timezone);
+ data.source !== undefined && this.source(data.source);
+ data.url !== undefined && this.url(data.url);
+ data.scale !== undefined && this.scale(data.scale);
+ data.ttl !== undefined && this.ttl(data.ttl);
+ data.events !== undefined && this.events(data.events);
+ data.x !== undefined && this.x(data.x);
+ }
+
+
+ /**
+ * Get your feed's prodid. Will always return a string.
+ * @since 0.2.0
+ */
+ prodId(): string;
+
+ /**
+ * Set your feed's prodid. `prodid` can be either a
+ * string like `//sebbo.net//ical-generator//EN` or a
+ * valid {@link ICalCalendarProdIdData} object. `language`
+ * is optional and defaults to `EN`.
+ *
+ * ```javascript
+ * cal.prodId({
+ * company: 'My Company',
+ * product: 'My Product',
+ * language: 'EN' // optional, defaults to EN
+ * });
+ * ```
+ *
+ * `cal.toString()` would then produce the following string:
+ * ```text
+ * PRODID:-//My Company//My Product//EN
+ * ```
+ *
+ * @since 0.2.0
+ */
+ prodId(prodId: ICalCalendarProdIdData | string): this;
+ prodId(prodId?: ICalCalendarProdIdData | string): this | string {
+ if (!prodId) {
+ return this.data.prodId;
+ }
+
+ if (typeof prodId === 'string') {
+ this.data.prodId = prodId;
+ return this;
+ }
+
+ if (typeof prodId !== 'object') {
+ throw new Error('`prodid` needs to be a string or an object!');
+ }
+
+ if (!prodId.company) {
+ throw new Error('`prodid.company` is a mandatory item!');
+ }
+ if (!prodId.product) {
+ throw new Error('`prodid.product` is a mandatory item!');
+ }
+
+ const language = (prodId.language || 'EN').toUpperCase();
+ this.data.prodId = '//' + prodId.company + '//' + prodId.product + '//' + language;
+ return this;
+ }
+
+
+ /**
+ * Get the feed method attribute.
+ * See {@link ICalCalendarMethod} for possible results.
+ *
+ * @since 0.2.8
+ */
+ method(): ICalCalendarMethod | null;
+
+ /**
+ * Set the feed method attribute.
+ * See {@link ICalCalendarMethod} for available options.
+ *
+ * #### Typescript Example
+ * ```typescript
+ * import {ICalCalendarMethod} from 'ical-generator';
+ *
+ * // METHOD:PUBLISH
+ * calendar.method(ICalCalendarMethod.PUBLISH);
+ * ```
+ *
+ * @since 0.2.8
+ */
+ method(method: ICalCalendarMethod | null): this;
+ method(method?: ICalCalendarMethod | null): this | ICalCalendarMethod | null {
+ if (method === undefined) {
+ return this.data.method;
+ }
+ if (!method) {
+ this.data.method = null;
+ return this;
+ }
+
+ this.data.method = checkEnum(ICalCalendarMethod, method) as ICalCalendarMethod;
+ return this;
+ }
+
+
+ /**
+ * Get your feed's name
+ * @since 0.2.0
+ */
+ name(): string | null;
+
+ /**
+ * Set your feed's name. Is used to fill `NAME`
+ * and `X-WR-CALNAME` in your iCal file.
+ *
+ * ```typescript
+ * import ical from 'ical-generator';
+ *
+ * const cal = ical();
+ * cal.name('Next Arrivals');
+ *
+ * cal.toString();
+ * ```
+ *
+ * ```text
+ * BEGIN:VCALENDAR
+ * VERSION:2.0
+ * PRODID:-//sebbo.net//ical-generator//EN
+ * NAME:Next Arrivals
+ * X-WR-CALNAME:Next Arrivals
+ * END:VCALENDAR
+ * ```
+ *
+ * @since 0.2.0
+ */
+ name(name: string | null): this;
+ name(name?: string | null): this | string | null {
+ if (name === undefined) {
+ return this.data.name;
+ }
+
+ this.data.name = name ? String(name) : null;
+ return this;
+ }
+
+
+ /**
+ * Get your feed's description
+ * @since 0.2.7
+ */
+ description(): string | null;
+
+ /**
+ * Set your feed's description
+ * @since 0.2.7
+ */
+ description(description: string | null): this;
+ description(description?: string | null): this | string | null {
+ if (description === undefined) {
+ return this.data.description;
+ }
+
+ this.data.description = description ? String(description) : null;
+ return this;
+ }
+
+
+ /**
+ * Get the current calendar timezone
+ * @since 0.2.0
+ */
+ timezone(): string | null;
+
+ /**
+ * Use this method to set your feed's timezone. Is used
+ * to fill `TIMEZONE-ID` and `X-WR-TIMEZONE` in your iCal export.
+ * Please not that all date values are treaded differently, if
+ * a timezone was set. See {@link formatDate} for details. If no
+ * time zone is specified, all information is output as UTC.
+ *
+ * ```javascript
+ * cal.timezone('America/New_York');
+ * ```
+ *
+ * @see https://github.com/sebbo2002/ical-generator#-date-time--timezones
+ * @since 0.2.0
+ */
+ timezone(timezone: string | null): this;
+
+ /**
+ * Sets the time zone to be used in this calendar file for all times of all
+ * events. Please note that if the time zone is set, ical-generator assumes
+ * that all times are already in the correct time zone. Alternatively, a
+ * `moment-timezone` or a Luxon object can be passed with `setZone`,
+ * ical-generator will then set the time zone itself.
+ *
+ * For the best support of time zones, a VTimezone entry in the calendar is
+ * recommended, which informs the client about the corresponding time zones
+ * (daylight saving time, deviation from UTC, etc.). `ical-generator` itself
+ * does not have a time zone database, so an external generator is needed here.
+ *
+ * A VTimezone generator is a function that takes a time zone as a string and
+ * returns a VTimezone component according to the ical standard. For example,
+ * ical-timezones can be used for this:
+ *
+ * ```typescript
+ * import ical from 'ical-generator';
+ * import {getVtimezoneComponent} from '@touch4it/ical-timezones';
+ *
+ * const cal = ical();
+ * cal.timezone({
+ * name: 'FOO',
+ * generator: getVtimezoneComponent
+ * });
+ * cal.createEvent({
+ * start: new Date(),
+ * timezone: 'Europe/London'
+ * });
+ * ```
+ *
+ * @see https://github.com/sebbo2002/ical-generator#-date-time--timezones
+ * @since 2.0.0
+ */
+ timezone(timezone: ICalTimezone | string | null): this;
+ timezone(timezone?: ICalTimezone | string | null): this | string | null {
+ if (timezone === undefined) {
+ return this.data.timezone?.name || null;
+ }
+
+ if(timezone === 'UTC') {
+ this.data.timezone = null;
+ }
+ else if(typeof timezone === 'string') {
+ this.data.timezone = {name: timezone};
+ }
+ else if(timezone === null) {
+ this.data.timezone = null;
+ }
+ else {
+ this.data.timezone = timezone;
+ }
+
+ return this;
+ }
+
+
+ /**
+ * Get current value of the `SOURCE` attribute.
+ * @since 2.2.0-develop.1
+ */
+ source(): string | null;
+
+ /**
+ * Use this method to set your feed's `SOURCE` attribute.
+ * This tells the client where to refresh your feed.
+ *
+ * ```javascript
+ * cal.source('http://example.com/my/original_source.ical');
+ * ```
+ *
+ * ```text
+ * SOURCE;VALUE=URI:http://example.com/my/original_source.ical
+ * ```
+ *
+ * @since 2.2.0-develop.1
+ */
+ source(source: string | null): this;
+ source(source?: string | null): this | string | null {
+ if (source === undefined) {
+ return this.data.source;
+ }
+
+ this.data.source = source || null;
+ return this;
+ }
+
+
+ /**
+ * Get your feed's URL
+ * @since 0.2.5
+ */
+ url(): string | null;
+
+ /**
+ * Set your feed's URL
+ *
+ * ```javascript
+ * calendar.url('http://example.com/my/feed.ical');
+ * ```
+ *
+ * @since 0.2.5
+ */
+ url(url: string | null): this;
+ url(url?: string | null): this | string | null {
+ if (url === undefined) {
+ return this.data.url;
+ }
+
+ this.data.url = url || null;
+ return this;
+ }
+
+
+ /**
+ * Get current value of the `CALSCALE` attribute. It will
+ * return `null` if no value was set. The iCal standard
+ * specifies this as `GREGORIAN` if no value is present.
+ *
+ * @since 1.8.0
+ */
+ scale(): string | null;
+
+ /**
+ * Use this method to set your feed's `CALSCALE` attribute. There is no
+ * default value for this property and it will not appear in your iCal
+ * file unless set. The iCal standard specifies this as `GREGORIAN` if
+ * no value is present.
+ *
+ * ```javascript
+ * cal.scale('gregorian');
+ * ```
+ *
+ * @since 1.8.0
+ */
+ scale(scale: string | null): this;
+ scale(scale?: string | null): this | string | null {
+ if (scale === undefined) {
+ return this.data.scale;
+ }
+
+ if (scale === null) {
+ this.data.scale = null;
+ }
+ else {
+ this.data.scale = scale.toUpperCase();
+ }
+
+ return this;
+ }
+
+
+ /**
+ * Get the current ttl duration in seconds
+ * @since 0.2.5
+ */
+ ttl(): number | null;
+
+ /**
+ * Use this method to set your feed's time to live
+ * (in seconds). Is used to fill `REFRESH-INTERVAL` and
+ * `X-PUBLISHED-TTL` in your iCal.
+ *
+ * ```javascript
+ * const cal = ical().ttl(60 * 60 * 24); // 1 day
+ * ```
+ *
+ * You can also pass a moment.js duration object. Zero, null
+ * or negative numbers will reset the `ttl` attribute.
+ *
+ * @since 0.2.5
+ */
+ ttl(ttl: number | ICalMomentDurationStub | null): this;
+ ttl(ttl?: number | ICalMomentDurationStub | null): this | number | null {
+ if (ttl === undefined) {
+ return this.data.ttl;
+ }
+
+ if (isMomentDuration(ttl)) {
+ this.data.ttl = ttl.asSeconds();
+ }
+ else if (ttl && ttl > 0) {
+ this.data.ttl = ttl;
+ }
+ else {
+ this.data.ttl = null;
+ }
+
+ return this;
+ }
+
+
+ /**
+ * Creates a new {@link ICalEvent} and returns it. Use options to prefill the event's attributes.
+ * Calling this method without options will create an empty event.
+ *
+ * ```javascript
+ * import ical from 'ical-generator';
+ *
+ * // or use require:
+ * // const { default: ical } = require('ical-generator');
+ *
+ * const cal = ical();
+ * const event = cal.createEvent({summary: 'My Event'});
+ *
+ * // overwrite event summary
+ * event.summary('Your Event');
+ * ```
+ *
+ * @since 0.2.0
+ */
+ createEvent(data: ICalEvent | ICalEventData): ICalEvent {
+ const event = data instanceof ICalEvent ? data : new ICalEvent(data, this);
+ this.data.events.push(event);
+ return event;
+ }
+
+
+ /**
+ * Returns all events of this calendar.
+ *
+ * ```javascript
+ * const cal = ical();
+ *
+ * cal.events([
+ * {
+ * start: new Date(),
+ * end: new Date(new Date().getTime() + 3600000),
+ * summary: 'Example Event',
+ * description: 'It works ;)',
+ * url: 'http://sebbo.net/'
+ * }
+ * ]);
+ *
+ * cal.events(); // --> [ICalEvent]
+ * ```
+ *
+ * @since 0.2.0
+ */
+ events(): ICalEvent[];
+
+ /**
+ * Add multiple events to your calendar.
+ *
+ * ```javascript
+ * const cal = ical();
+ *
+ * cal.events([
+ * {
+ * start: new Date(),
+ * end: new Date(new Date().getTime() + 3600000),
+ * summary: 'Example Event',
+ * description: 'It works ;)',
+ * url: 'http://sebbo.net/'
+ * }
+ * ]);
+ *
+ * cal.events(); // --> [ICalEvent]
+ * ```
+ *
+ * @since 0.2.0
+ */
+ events(events: (ICalEvent | ICalEventData)[]): this;
+ events(events?: (ICalEvent | ICalEventData)[]): this | ICalEvent[] {
+ if (!events) {
+ return this.data.events;
+ }
+
+ events.forEach((e: ICalEvent | ICalEventData) => this.createEvent(e));
+ return this;
+ }
+
+
+ /**
+ * Remove all events from the calendar without
+ * touching any other data like name or prodId.
+ *
+ * @since 2.0.0-develop.1
+ */
+ clear(): this {
+ this.data.events = [];
+ return this;
+ }
+
+
+ /**
+ * Set X-* attributes. Woun't filter double attributes,
+ * which are also added by another method (e.g. busystatus),
+ * so these attributes may be inserted twice.
+ *
+ * ```javascript
+ * calendar.x([
+ * {
+ * key: "X-MY-CUSTOM-ATTR",
+ * value: "1337!"
+ * }
+ * ]);
+ *
+ * calendar.x([
+ * ["X-MY-CUSTOM-ATTR", "1337!"]
+ * ]);
+ *
+ * calendar.x({
+ * "X-MY-CUSTOM-ATTR": "1337!"
+ * });
+ * ```
+ *
+ * ```text
+ * BEGIN:VCALENDAR
+ * VERSION:2.0
+ * PRODID:-//sebbo.net//ical-generator//EN
+ * X-MY-CUSTOM-ATTR:1337!
+ * END:VCALENDAR
+ * ```
+ *
+ * @since 1.9.0
+ */
+ x (keyOrArray: {key: string, value: string}[] | [string, string][] | Record): this;
+
+ /**
+ * Set a X-* attribute. Woun't filter double attributes,
+ * which are also added by another method (e.g. busystatus),
+ * so these attributes may be inserted twice.
+ *
+ * ```javascript
+ * calendar.x("X-MY-CUSTOM-ATTR", "1337!");
+ * ```
+ *
+ * ```text
+ * BEGIN:VCALENDAR
+ * VERSION:2.0
+ * PRODID:-//sebbo.net//ical-generator//EN
+ * X-MY-CUSTOM-ATTR:1337!
+ * END:VCALENDAR
+ * ```
+ *
+ * @since 1.9.0
+ */
+ x (keyOrArray: string, value: string): this;
+
+ /**
+ * Get all custom X-* attributes.
+ * @since 1.9.0
+ */
+ x (): {key: string, value: string}[];
+ x (keyOrArray?: {key: string, value: string}[] | [string, string][] | Record | string, value?: string): this | void | ({key: string, value: string})[] {
+ if(keyOrArray === undefined) {
+ return addOrGetCustomAttributes (this.data);
+ }
+
+ if(typeof keyOrArray === 'string' && typeof value === 'string') {
+ addOrGetCustomAttributes (this.data, keyOrArray, value);
+ }
+ else if(typeof keyOrArray === 'object') {
+ addOrGetCustomAttributes (this.data, keyOrArray);
+ }
+ else {
+ throw new Error('Either key or value is not a string!');
+ }
+
+ return this;
+ }
+
+
+ /**
+ * Return a shallow copy of the calendar's options for JSON stringification.
+ * Third party objects like moment.js values or RRule objects are stringified
+ * as well. Can be used for persistence.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const json = JSON.stringify(cal);
+ *
+ * // later: restore calendar data
+ * cal = ical(JSON.parse(json));
+ * ```
+ *
+ * @since 0.2.4
+ */
+ toJSON(): ICalCalendarJSONData {
+ return Object.assign({}, this.data, {
+ timezone: this.timezone(),
+ events: this.data.events.map(event => event.toJSON()),
+ x: this.x()
+ });
+ }
+
+
+ /**
+ * Get the number of events added to your calendar
+ */
+ length(): number {
+ return this.data.events.length;
+ }
+
+
+ /**
+ * Return generated calendar as a string.
+ *
+ * ```javascript
+ * const cal = ical();
+ * console.log(cal.toString()); // → BEGIN:VCALENDAR…
+ * ```
+ */
+ toString(): string {
+ let g = '';
+
+ // VCALENDAR and VERSION
+ g = 'BEGIN:VCALENDAR\r\nVERSION:2.0\r\n';
+
+ // PRODID
+ g += 'PRODID:-' + this.data.prodId + '\r\n';
+
+ // URL
+ if (this.data.url) {
+ g += 'URL:' + this.data.url + '\r\n';
+ }
+
+ // SOURCE
+ if (this.data.source) {
+ g += 'SOURCE;VALUE=URI:' + this.data.source + '\r\n';
+ }
+
+ // CALSCALE
+ if (this.data.scale) {
+ g += 'CALSCALE:' + this.data.scale + '\r\n';
+ }
+
+ // METHOD
+ if (this.data.method) {
+ g += 'METHOD:' + this.data.method + '\r\n';
+ }
+
+ // NAME
+ if (this.data.name) {
+ g += 'NAME:' + this.data.name + '\r\n';
+ g += 'X-WR-CALNAME:' + this.data.name + '\r\n';
+ }
+
+ // Description
+ if (this.data.description) {
+ g += 'X-WR-CALDESC:' + this.data.description + '\r\n';
+ }
+
+ // Timezone
+ if(this.data.timezone?.generator) {
+ const timezones = [...new Set([
+ this.timezone(),
+ ...this.data.events.map(event => event.timezone())
+ ])].filter(tz => tz !== null && !tz.startsWith('/')) as string[];
+
+ timezones.forEach(tz => {
+ if(!this.data.timezone?.generator) {
+ return;
+ }
+
+ const s = this.data.timezone.generator(tz);
+ if(!s) {
+ return;
+ }
+
+ g += s.replace(/\r\n/g, '\n')
+ .replace(/\n/g, '\r\n')
+ .trim() + '\r\n';
+ });
+ }
+ if (this.data.timezone?.name) {
+ g += 'TIMEZONE-ID:' + this.data.timezone.name + '\r\n';
+ g += 'X-WR-TIMEZONE:' + this.data.timezone.name + '\r\n';
+ }
+
+ // TTL
+ if (this.data.ttl) {
+ g += 'REFRESH-INTERVAL;VALUE=DURATION:' + toDurationString(this.data.ttl) + '\r\n';
+ g += 'X-PUBLISHED-TTL:' + toDurationString(this.data.ttl) + '\r\n';
+ }
+
+ // Events
+ this.data.events.forEach(event => g += event.toString());
+
+ // CUSTOM X ATTRIBUTES
+ g += generateCustomAttributes(this.data);
+
+ g += 'END:VCALENDAR';
+
+ return foldLines(g);
+ }
+}
diff --git a/src/category.ts b/src/category.ts
new file mode 100755
index 000000000..d539f976c
--- /dev/null
+++ b/src/category.ts
@@ -0,0 +1,101 @@
+'use strict';
+
+
+import {escape} from './tools.ts';
+
+
+export interface ICalCategoryData {
+ name: string;
+}
+
+
+export interface ICalCategoryJSONData {
+ name: string;
+}
+
+export type ICalCategoryInternalData = ICalCategoryJSONData;
+
+
+/**
+ * Usually you get an {@link ICalCategory} object like this:
+ *
+ * ```javascript
+ * import ical from 'ical-generator';
+ * const calendar = ical();
+ * const event = calendar.createEvent();
+ * const category = event.createCategory();
+ * ```
+ *
+ * You can also use the {@link ICalCategory} object directly:
+ *
+ * ```javascript
+ * import ical, {ICalCategory} from 'ical-generator';
+ * const category = new ICalCategory();
+ * event.categories([category]);
+ * ```
+ */
+export default class ICalCategory {
+ private readonly data: ICalCategoryInternalData;
+
+ /**
+ * Constructor of {@link ICalCategory}.
+ * @param data Category Data
+ */
+ constructor(data: ICalCategoryData) {
+ this.data = {
+ name: ''
+ };
+
+ if(!data.name) {
+ throw new Error('No value for `name` in ICalCategory given!');
+ }
+
+ this.name(data.name);
+ }
+
+
+ /**
+ * Get the category name
+ * @since 0.3.0
+ */
+ name(): string;
+
+ /**
+ * Set the category name
+ * @since 0.3.0
+ */
+ name(name: string): this;
+ name(name?: string): this | string {
+ if (name === undefined) {
+ return this.data.name;
+ }
+
+ this.data.name = name;
+ return this;
+ }
+
+
+ /**
+ * Return a shallow copy of the category's options for JSON stringification.
+ * Can be used for persistence.
+ *
+ * @since 0.2.4
+ */
+ toJSON(): ICalCategoryInternalData {
+ return Object.assign({}, this.data);
+ }
+
+
+ /**
+ * Return generated category name as a string.
+ *
+ * ```javascript
+ * console.log(category.toString());
+ * ```
+ */
+ toString(): string {
+
+ // CN / Name
+ return escape(this.data.name, false);
+ }
+}
diff --git a/src/event.ts b/src/event.ts
new file mode 100755
index 000000000..a9fe51778
--- /dev/null
+++ b/src/event.ts
@@ -0,0 +1,1888 @@
+'use strict';
+
+import uuid from 'uuid-random';
+import {
+ addOrGetCustomAttributes,
+ checkDate,
+ checkEnum,
+ checkNameAndMail,
+ escape,
+ formatDate,
+ formatDateTZ,
+ generateCustomAttributes,
+ isRRule,
+ toDate,
+ toJSON
+} from './tools.ts';
+import ICalAttendee, {ICalAttendeeData} from './attendee.ts';
+import ICalAlarm, {ICalAlarmData} from './alarm.ts';
+import ICalCategory, {ICalCategoryData} from './category.ts';
+import ICalCalendar from './calendar.ts';
+import {
+ ICalDateTimeValue,
+ ICalDescription,
+ ICalEventRepeatingFreq,
+ ICalLocation,
+ ICalOrganizer,
+ ICalRepeatingOptions,
+ ICalRRuleStub,
+ ICalWeekday
+} from './types.ts';
+
+
+export enum ICalEventStatus {
+ CONFIRMED = 'CONFIRMED',
+ TENTATIVE = 'TENTATIVE',
+ CANCELLED = 'CANCELLED'
+}
+
+export enum ICalEventBusyStatus {
+ FREE = 'FREE',
+ TENTATIVE = 'TENTATIVE',
+ BUSY = 'BUSY',
+ OOF = 'OOF'
+}
+
+export enum ICalEventTransparency {
+ TRANSPARENT = 'TRANSPARENT',
+ OPAQUE = 'OPAQUE'
+}
+
+export enum ICalEventClass {
+ PUBLIC = 'PUBLIC',
+ PRIVATE = 'PRIVATE',
+ CONFIDENTIAL = 'CONFIDENTIAL'
+}
+
+export interface ICalEventData {
+ id?: string | number | null,
+ sequence?: number,
+ start: ICalDateTimeValue,
+ end?: ICalDateTimeValue | null,
+ recurrenceId?: ICalDateTimeValue | null,
+ timezone?: string | null,
+ stamp?: ICalDateTimeValue,
+ allDay?: boolean,
+ floating?: boolean,
+ repeating?: ICalRepeatingOptions | ICalRRuleStub | string | null,
+ summary?: string,
+ location?: ICalLocation | string | null,
+ description?: ICalDescription | string | null,
+ organizer?: ICalOrganizer | string | null,
+ attendees?: ICalAttendee[] | ICalAttendeeData[],
+ alarms?: ICalAlarm[] | ICalAlarmData[],
+ categories?: ICalCategory[] | ICalCategoryData[],
+ status?: ICalEventStatus | null,
+ busystatus?: ICalEventBusyStatus | null,
+ priority?: number | null,
+ url?: string | null,
+ attachments?: string[],
+ transparency?: ICalEventTransparency | null,
+ created?: ICalDateTimeValue | null,
+ lastModified?: ICalDateTimeValue | null,
+ class?: ICalEventClass | null;
+ x?: {key: string, value: string}[] | [string, string][] | Record;
+}
+
+interface ICalEventInternalData {
+ id: string,
+ sequence: number,
+ start: ICalDateTimeValue,
+ end: ICalDateTimeValue | null,
+ recurrenceId: ICalDateTimeValue | null,
+ timezone: string | null,
+ stamp: ICalDateTimeValue,
+ allDay: boolean,
+ floating: boolean,
+ repeating: ICalEventJSONRepeatingData | ICalRRuleStub | string | null,
+ summary: string,
+ location: ICalLocation | null,
+ description: ICalDescription | null,
+ organizer: ICalOrganizer | null,
+ attendees: ICalAttendee[],
+ alarms: ICalAlarm[],
+ categories: ICalCategory[],
+ status: ICalEventStatus | null,
+ busystatus: ICalEventBusyStatus | null,
+ priority: number | null,
+ url: string | null,
+ attachments: string[],
+ transparency: ICalEventTransparency | null,
+ created: ICalDateTimeValue | null,
+ lastModified: ICalDateTimeValue | null,
+ class: ICalEventClass | null,
+ x: [string, string][];
+}
+
+export interface ICalEventJSONData {
+ id: string,
+ sequence: number,
+ start: string,
+ end: string | null,
+ recurrenceId: string | null,
+ timezone: string | null,
+ stamp: string,
+ allDay: boolean,
+ floating: boolean,
+ repeating: ICalEventJSONRepeatingData | string | null,
+ summary: string,
+ location: ICalLocation | null,
+ description: ICalDescription | null,
+ organizer: ICalOrganizer | null,
+ attendees: ICalAttendee[],
+ alarms: ICalAlarm[],
+ categories: ICalCategory[],
+ status: ICalEventStatus | null,
+ busystatus: ICalEventBusyStatus | null,
+ priority?: number | null,
+ url: string | null,
+ attachments: string[],
+ transparency: ICalEventTransparency | null,
+ created: string | null,
+ lastModified: string | null,
+ x: {key: string, value: string}[];
+}
+
+export interface ICalEventJSONRepeatingData {
+ freq: ICalEventRepeatingFreq;
+ count?: number;
+ interval?: number;
+ until?: ICalDateTimeValue;
+ byDay?: ICalWeekday[];
+ byMonth?: number[];
+ byMonthDay?: number[];
+ bySetPos?: number[];
+ exclude?: ICalDateTimeValue[];
+ startOfWeek?: ICalWeekday;
+}
+
+
+/**
+ * Usually you get an {@link ICalEvent} object like this:
+ * ```javascript
+ * import ical from 'ical-generator';
+ * const calendar = ical();
+ * const event = calendar.createEvent();
+ * ```
+ */
+export default class ICalEvent {
+ private readonly data: ICalEventInternalData;
+ private readonly calendar: ICalCalendar;
+
+ /**
+ * Constructor of [[`ICalEvent`]. The calendar reference is
+ * required to query the calendar's timezone when required.
+ *
+ * @param data Calendar Event Data
+ * @param calendar Reference to ICalCalendar object
+ */
+ constructor(data: ICalEventData, calendar: ICalCalendar) {
+ this.data = {
+ id: uuid(),
+ sequence: 0,
+ start: new Date(),
+ end: null,
+ recurrenceId: null,
+ timezone: null,
+ stamp: new Date(),
+ allDay: false,
+ floating: false,
+ repeating: null,
+ summary: '',
+ location: null,
+ description: null,
+ organizer: null,
+ attendees: [],
+ alarms: [],
+ categories: [],
+ status: null,
+ busystatus: null,
+ priority: null,
+ url: null,
+ attachments: [],
+ transparency: null,
+ created: null,
+ lastModified: null,
+ class: null,
+ x: []
+ };
+
+ this.calendar = calendar;
+ if (!calendar) {
+ throw new Error('`calendar` option required!');
+ }
+
+ data.id && this.id(data.id);
+ data.sequence !== undefined && this.sequence(data.sequence);
+ data.start && this.start(data.start);
+ data.end !== undefined && this.end(data.end);
+ data.recurrenceId !== undefined && this.recurrenceId(data.recurrenceId);
+ data.timezone !== undefined && this.timezone(data.timezone);
+ data.stamp !== undefined && this.stamp(data.stamp);
+ data.allDay !== undefined && this.allDay(data.allDay);
+ data.floating !== undefined && this.floating(data.floating);
+ data.repeating !== undefined && this.repeating(data.repeating);
+ data.summary !== undefined && this.summary(data.summary);
+ data.location !== undefined && this.location(data.location);
+ data.description !== undefined && this.description(data.description);
+ data.organizer !== undefined && this.organizer(data.organizer);
+ data.attendees !== undefined && this.attendees(data.attendees);
+ data.alarms !== undefined && this.alarms(data.alarms);
+ data.categories !== undefined && this.categories(data.categories);
+ data.status !== undefined && this.status(data.status);
+ data.busystatus !== undefined && this.busystatus(data.busystatus);
+ data.priority !== undefined && this.priority(data.priority);
+ data.url !== undefined && this.url(data.url);
+ data.attachments !== undefined && this.attachments(data.attachments);
+ data.transparency !== undefined && this.transparency(data.transparency);
+ data.created !== undefined && this.created(data.created);
+ data.lastModified !== undefined && this.lastModified(data.lastModified);
+ data.class !== undefined && this.class(data.class);
+ data.x !== undefined && this.x(data.x);
+ }
+
+ /**
+ * Get the event's ID
+ * @since 0.2.0
+ */
+ id(): string;
+
+ /**
+ * Use this method to set the event's ID.
+ * If not set, a UUID will be generated randomly.
+ *
+ * @param id Event ID you want to set
+ */
+ id(id: string | number): this;
+ id(id?: string | number): this | string {
+ if (id === undefined) {
+ return this.data.id;
+ }
+
+ this.data.id = String(id);
+ return this;
+ }
+
+ /**
+ * Get the event's ID
+ * @since 0.2.0
+ * @alias id
+ */
+ uid(): string;
+
+ /**
+ * Use this method to set the event's ID.
+ * If not set, a UUID will be generated randomly.
+ *
+ * @param id Event ID you want to set
+ * @alias id
+ */
+ uid(id: string | number): this;
+ uid(id?: string | number): this | string {
+ return id === undefined ? this.id() : this.id(id);
+ }
+
+ /**
+ * Get the event's SEQUENCE number. Use this method to get the event's
+ * revision sequence number of the calendar component within a sequence of revisions.
+ *
+ * @since 0.2.6
+ */
+ sequence(): number;
+
+ /**
+ * Set the event's SEQUENCE number. For a new event, this should be zero.
+ * Each time the organizer makes a significant revision, the sequence
+ * number should be incremented.
+ *
+ * @param sequence Sequence number or null to unset it
+ */
+ sequence(sequence: number): this;
+ sequence(sequence?: number): this | number {
+ if (sequence === undefined) {
+ return this.data.sequence;
+ }
+
+ const s = parseInt(String(sequence), 10);
+ if (isNaN(s)) {
+ throw new Error('`sequence` must be a number!');
+ }
+
+ this.data.sequence = sequence;
+ return this;
+ }
+
+ /**
+ * Get the event start time which is currently
+ * set. Can be any supported date object.
+ *
+ * @since 0.2.0
+ */
+ start(): ICalDateTimeValue;
+
+ /**
+ * Set the appointment date of beginning, which is required for all events.
+ * You can use any supported date object, see
+ * [Readme](https://github.com/sebbo2002/ical-generator#-date-time--timezones)
+ * for details about supported values and timezone handling.
+ *
+ * ```typescript
+ * import ical from 'ical-generator';
+ *
+ * const cal = ical();
+ *
+ * const event = cal.createEvent({
+ * start: new Date('2020-01-01')
+ * });
+ *
+ * // overwrites old start date
+ * event.start(new Date('2024-02-01'));
+ *
+ * cal.toString();
+ * ```
+ *
+ * ```text
+ * BEGIN:VCALENDAR
+ * VERSION:2.0
+ * PRODID:-//sebbo.net//ical-generator//EN
+ * BEGIN:VEVENT
+ * UID:7e2aee64-b07a-4256-9b3e-e9eaa452bac8
+ * SEQUENCE:0
+ * DTSTAMP:20240212T190915Z
+ * DTSTART:20240201T000000Z
+ * SUMMARY:
+ * END:VEVENT
+ * END:VCALENDAR
+ * ```
+ *
+ * @since 0.2.0
+ */
+ start(start: ICalDateTimeValue): this;
+ start(start?: ICalDateTimeValue): this | ICalDateTimeValue {
+ if (start === undefined) {
+ this.swapStartAndEndIfRequired();
+ return this.data.start;
+ }
+
+ this.data.start = checkDate(start, 'start');
+ return this;
+ }
+
+ /**
+ * Get the event end time which is currently
+ * set. Can be any supported date object.
+ *
+ * @since 0.2.0
+ */
+ end(): ICalDateTimeValue | null;
+
+ /**
+ * Set the appointment date of end. You can use any supported date object, see
+ * [readme](https://github.com/sebbo2002/ical-generator#-date-time--timezones)
+ * for details about supported values and timezone handling.
+ *
+ * @since 0.2.0
+ */
+ end(end: ICalDateTimeValue | null): this;
+ end(end?: ICalDateTimeValue | null): this | ICalDateTimeValue | null {
+ if (end === undefined) {
+ this.swapStartAndEndIfRequired();
+ return this.data.end;
+ }
+ if (end === null) {
+ this.data.end = null;
+ return this;
+ }
+
+ this.data.end = checkDate(end, 'end');
+ return this;
+ }
+
+ /**
+ * Checks if the start date is after the end date and swaps them if necessary.
+ * @private
+ */
+ private swapStartAndEndIfRequired(): void {
+ if (this.data.start && this.data.end && toDate(this.data.start).getTime() > toDate(this.data.end).getTime()) {
+ const t = this.data.start;
+ this.data.start = this.data.end;
+ this.data.end = t;
+ }
+ }
+
+ /**
+ * Get the event's recurrence id
+ * @since 0.2.0
+ */
+ recurrenceId(): ICalDateTimeValue | null;
+
+ /**
+ * Set the event's recurrence id. You can use any supported date object, see
+ * [readme](https://github.com/sebbo2002/ical-generator#-date-time--timezones)
+ * for details about supported values and timezone handling.
+ *
+ * @since 0.2.0
+ */
+ recurrenceId(recurrenceId: ICalDateTimeValue | null): this;
+ recurrenceId(recurrenceId?: ICalDateTimeValue | null): this | ICalDateTimeValue | null {
+ if (recurrenceId === undefined) {
+ return this.data.recurrenceId;
+ }
+ if (recurrenceId === null) {
+ this.data.recurrenceId = null;
+ return this;
+ }
+
+ this.data.recurrenceId = checkDate(recurrenceId, 'recurrenceId');
+ return this;
+ }
+
+ /**
+ * Get the event's timezone.
+ * @since 0.2.6
+ */
+ timezone(): string | null;
+
+ /**
+ * Sets the time zone to be used for this event. If a time zone has been
+ * defined in both the event and the calendar, the time zone of the event
+ * is used.
+ *
+ * Please note that if the time zone is set, ical-generator assumes
+ * that all times are already in the correct time zone. Alternatively,
+ * a `moment-timezone` or a Luxon object can be passed with `setZone`,
+ * ical-generator will then set the time zone itself.
+ *
+ * This and the 'floating' flag (see below) are mutually exclusive, and setting a timezone will unset the
+ * 'floating' flag. If neither 'timezone' nor 'floating' are set, the date will be output with in UTC format
+ * (see [date-time form #2 in section 3.3.5 of RFC 554](https://tools.ietf.org/html/rfc5545#section-3.3.5)).
+ *
+ * See [Readme](https://github.com/sebbo2002/ical-generator#-date-time--timezones) for details about
+ * supported values and timezone handling.
+ *
+ * ```javascript
+ * event.timezone('America/New_York');
+ * ```
+ *
+ * @see https://github.com/sebbo2002/ical-generator#-date-time--timezones
+ * @since 0.2.6
+ */
+ timezone(timezone: string | null): this;
+ timezone(timezone?: string | null): this | string | null {
+ if (timezone === undefined && this.data.timezone !== null) {
+ return this.data.timezone;
+ }
+ if (timezone === undefined) {
+ return this.calendar.timezone();
+ }
+
+ this.data.timezone = timezone && timezone !== 'UTC' ? timezone.toString() : null;
+ if (this.data.timezone) {
+ this.data.floating = false;
+ }
+
+ return this;
+ }
+
+ /**
+ * Get the event's timestamp
+ * @since 0.2.0
+ */
+ stamp(): ICalDateTimeValue;
+
+ /**
+ * Set the appointment date of creation. Defaults to the current time and date (`new Date()`). You can use
+ * any supported date object, see [readme](https://github.com/sebbo2002/ical-generator#-date-time--timezones)
+ * for details about supported values and timezone handling.
+ *
+ * @since 0.2.0
+ */
+ stamp(stamp: ICalDateTimeValue): this;
+ stamp(stamp?: ICalDateTimeValue): this | ICalDateTimeValue {
+ if (stamp === undefined) {
+ return this.data.stamp;
+ }
+
+ this.data.stamp = checkDate(stamp, 'stamp');
+ return this;
+ }
+
+ /**
+ * Get the event's timestamp
+ * @since 0.2.0
+ * @alias stamp
+ */
+ timestamp(): ICalDateTimeValue;
+
+ /**
+ * Set the appointment date of creation. Defaults to the current time and date (`new Date()`). You can use
+ * any supported date object, see [readme](https://github.com/sebbo2002/ical-generator#-date-time--timezones)
+ * for details about supported values and timezone handling.
+ *
+ * @since 0.2.0
+ * @alias stamp
+ */
+ timestamp(stamp: ICalDateTimeValue): this;
+ timestamp(stamp?: ICalDateTimeValue): this | ICalDateTimeValue {
+ if (stamp === undefined) {
+ return this.stamp();
+ }
+
+ return this.stamp(stamp);
+ }
+
+ /**
+ * Get the event's allDay flag
+ * @since 0.2.0
+ */
+ allDay(): boolean;
+
+ /**
+ * Set the event's allDay flag.
+ *
+ * ```javascript
+ * event.allDay(true); // → appointment is for the whole day
+ * ```
+ *
+ * ```typescript
+ * import ical from 'ical-generator';
+ *
+ * const cal = ical();
+ *
+ * cal.createEvent({
+ * start: new Date('2020-01-01'),
+ * summary: 'Very Important Day',
+ * allDay: true
+ * });
+ *
+ * cal.toString();
+ * ```
+ *
+ * ```text
+ * BEGIN:VCALENDAR
+ * VERSION:2.0
+ * PRODID:-//sebbo.net//ical-generator//EN
+ * BEGIN:VEVENT
+ * UID:1964fe8d-32c5-4f2a-bd62-7d9d7de5992b
+ * SEQUENCE:0
+ * DTSTAMP:20240212T191956Z
+ * DTSTART;VALUE=DATE:20200101
+ * X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
+ * X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
+ * SUMMARY:Very Important Day
+ * END:VEVENT
+ * END:VCALENDAR
+ * ```
+ *
+ * @since 0.2.0
+ */
+ allDay(allDay: boolean): this;
+ allDay(allDay?: boolean): this | boolean {
+ if (allDay === undefined) {
+ return this.data.allDay;
+ }
+
+ this.data.allDay = Boolean(allDay);
+ return this;
+ }
+
+ /**
+ * Get the event's floating flag.
+ * @since 0.2.0
+ */
+ floating(): boolean;
+ floating(floating: boolean): this;
+
+ /**
+ * Set the event's floating flag. This unsets the event's timezone.
+ * Events whose floating flag is set to true always take place at the
+ * same time, regardless of the time zone.
+ *
+ * ```typescript
+ * import ical from 'ical-generator';
+ *
+ * const cal = ical();
+ *
+ * cal.createEvent({
+ * start: new Date('2020-01-01T20:00:00Z'),
+ * summary: 'Always at 20:00 in every checkEnum(ICalWeekday, day) as ICalWeekday);
+ }
+
+ if (repeating.byMonth) {
+ const byMonthArray = Array.isArray(repeating.byMonth) ? repeating.byMonth : [repeating.byMonth];
+ this.data.repeating.byMonth = byMonthArray.map(month => {
+ if (typeof month !== 'number' || month < 1 || month > 12) {
+ throw new Error('`repeating.byMonth` contains invalid value `' + month + '`!');
+ }
+
+ return month;
+ });
+ }
+
+ if (repeating.byMonthDay) {
+ const byMonthDayArray = Array.isArray(repeating.byMonthDay) ? repeating.byMonthDay : [repeating.byMonthDay];
+
+
+ this.data.repeating.byMonthDay = byMonthDayArray.map(monthDay => {
+ if (typeof monthDay !== 'number' || monthDay < -31 || monthDay > 31 || monthDay === 0) {
+ throw new Error('`repeating.byMonthDay` contains invalid value `' + monthDay + '`!');
+ }
+
+ return monthDay;
+ });
+ }
+
+ if (repeating.bySetPos) {
+ if (!this.data.repeating.byDay) {
+ throw '`repeating.bySetPos` must be used along with `repeating.byDay`!';
+ }
+ const bySetPosArray = Array.isArray(repeating.bySetPos) ? repeating.bySetPos : [repeating.bySetPos];
+ this.data.repeating.bySetPos = bySetPosArray.map(bySetPos => {
+ if (typeof bySetPos !== 'number' || bySetPos < -366 || bySetPos > 366 || bySetPos === 0) {
+ throw '`repeating.bySetPos` contains invalid value `' + bySetPos + '`!';
+ }
+ return bySetPos;
+ });
+ }
+
+ if (repeating.exclude) {
+ const excludeArray = Array.isArray(repeating.exclude) ? repeating.exclude : [repeating.exclude];
+ this.data.repeating.exclude = excludeArray.map((exclude, i) => {
+ return checkDate(exclude, `repeating.exclude[${i}]`);
+ });
+ }
+
+ if (repeating.startOfWeek) {
+ this.data.repeating.startOfWeek = checkEnum(ICalWeekday, repeating.startOfWeek) as ICalWeekday;
+ }
+
+ return this;
+ }
+
+ /**
+ * Get the event's summary
+ * @since 0.2.0
+ */
+ summary(): string;
+
+ /**
+ * Set the event's summary.
+ * Defaults to an empty string if nothing is set.
+ *
+ * @since 0.2.0
+ */
+ summary(summary: string): this;
+ summary(summary?: string): this | string {
+ if (summary === undefined) {
+ return this.data.summary;
+ }
+
+ this.data.summary = summary ? String(summary) : '';
+ return this;
+ }
+
+
+ /**
+ * Get the event's location
+ * @since 0.2.0
+ */
+ location(): ICalLocation | null;
+
+ /**
+ * Set the event's location by passing a string (minimum) or
+ * an {@link ICalLocationWithTitle} object which will also fill the iCal
+ * `GEO` attribute and Apple's `X-APPLE-STRUCTURED-LOCATION`.
+ *
+ * ```javascript
+ * event.location({
+ * title: 'Apple Store Kurfürstendamm',
+ * address: 'Kurfürstendamm 26, 10719 Berlin, Deutschland',
+ * radius: 141.1751386318387,
+ * geo: {
+ * lat: 52.503630,
+ * lon: 13.328650
+ * }
+ * });
+ * ```
+ *
+ * ```text
+ * LOCATION:Apple Store Kurfürstendamm\nKurfürstendamm 26\, 10719 Berlin\,
+ * Deutschland
+ * X-APPLE-STRUCTURED-LOCATION;VALUE=URI;X-ADDRESS=Kurfürstendamm 26\, 10719
+ * Berlin\, Deutschland;X-APPLE-RADIUS=141.1751386318387;X-TITLE=Apple Store
+ * Kurfürstendamm:geo:52.50363,13.32865
+ * GEO:52.50363;13.32865
+ * ```
+ *
+ * Since v6.1.0 you can also pass a {@link ICalLocationWithoutTitle} object to pass
+ * the geolocation only. This will only fill the iCal `GEO` attribute.
+ *
+ * ```javascript
+ * event.location({
+ * geo: {
+ * lat: 52.503630,
+ * lon: 13.328650
+ * }
+ * });
+ * ```
+ *
+ * ```text
+ * GEO:52.50363;13.32865
+ * ```
+ *
+ * @since 0.2.0
+ */
+ location(location: ICalLocation | string | null): this;
+ location(location?: ICalLocation | string | null): this | ICalLocation | null {
+ if (location === undefined) {
+ return this.data.location;
+ }
+ if (typeof location === 'string') {
+ this.data.location = {
+ title: location
+ };
+ return this;
+ }
+ if (location && (
+ ('title' in location && !location.title) ||
+ (location?.geo && (!isFinite(location.geo.lat) || !isFinite(location.geo.lon))) ||
+ (!('title' in location) && !location?.geo)
+ )) {
+ throw new Error(
+ '`location` isn\'t formatted correctly. See https://sebbo2002.github.io/ical-generator/'+
+ 'develop/reference/classes/ICalEvent.html#location'
+ );
+ }
+
+ this.data.location = location || null;
+ return this;
+ }
+
+
+ /**
+ * Get the event's description as an {@link ICalDescription} object.
+ * @since 0.2.0
+ */
+ description(): ICalDescription | null;
+
+ /**
+ * Set the events description by passing a plaintext string or
+ * an object containing both a plaintext and a html description.
+ * Only a few calendar apps support html descriptions and like in
+ * emails, supported HTML tags and styling is limited.
+ *
+ * ```javascript
+ * event.description({
+ * plain: 'Hello World!',
+ * html: 'Hello World!
'
+ * });
+ * ```
+ *
+ * ```text
+ * DESCRIPTION:Hello World!
+ * X-ALT-DESC;FMTTYPE=text/html:Hello World!
+ * ```
+ *
+ * @since 0.2.0
+ */
+ description(description: ICalDescription | string | null): this;
+ description(description?: ICalDescription | string | null): this | ICalDescription | null {
+ if (description === undefined) {
+ return this.data.description;
+ }
+ if (description === null) {
+ this.data.description = null;
+ return this;
+ }
+
+ if (typeof description === 'string') {
+ this.data.description = {plain: description};
+ }
+ else {
+ this.data.description = description;
+ }
+ return this;
+ }
+
+
+ /**
+ * Get the event's organizer
+ * @since 0.2.0
+ */
+ organizer(): ICalOrganizer | null;
+
+ /**
+ * Set the event's organizer
+ *
+ * ```javascript
+ * event.organizer({
+ * name: 'Organizer\'s Name',
+ * email: 'organizer@example.com'
+ * });
+ *
+ * // OR
+ *
+ * event.organizer('Organizer\'s Name ');
+ * ```
+ *
+ * You can also add an explicit `mailto` email address or or the sentBy address.
+ *
+ * ```javascript
+ * event.organizer({
+ * name: 'Organizer\'s Name',
+ * email: 'organizer@example.com',
+ * mailto: 'explicit@mailto.com',
+ * sentBy: 'substitute@example.com'
+ * })
+ * ```
+ *
+ * @since 0.2.0
+ */
+ organizer(organizer: ICalOrganizer | string | null): this;
+ organizer(organizer?: ICalOrganizer | string | null): this | ICalOrganizer | null {
+ if (organizer === undefined) {
+ return this.data.organizer;
+ }
+ if (organizer === null) {
+ this.data.organizer = null;
+ return this;
+ }
+
+ this.data.organizer = checkNameAndMail('organizer', organizer);
+ return this;
+ }
+
+
+ /**
+ * Creates a new {@link ICalAttendee} and returns it. Use options to prefill
+ * the attendee's attributes. Calling this method without options will create
+ * an empty attendee.
+ *
+ * ```javascript
+ * import ical from 'ical-generator';
+ *
+ * const cal = ical();
+ * const event = cal.createEvent({
+ * start: new Date()
+ * });
+ *
+ * event.createAttendee({email: 'hui@example.com', name: 'Hui'});
+ *
+ * // add another attendee
+ * event.createAttendee('Buh ');
+ * ```
+ *
+ * ```text
+ * BEGIN:VCALENDAR
+ * VERSION:2.0
+ * PRODID:-//sebbo.net//ical-generator//EN
+ * BEGIN:VEVENT
+ * UID:b4944f07-98e4-4581-ac80-2589bb20273d
+ * SEQUENCE:0
+ * DTSTAMP:20240212T194232Z
+ * DTSTART:20240212T194232Z
+ * SUMMARY:
+ * ATTENDEE;ROLE=REQ-PARTICIPANT;CN="Hui":MAILTO:hui@example.com
+ * ATTENDEE;ROLE=REQ-PARTICIPANT;CN="Buh":MAILTO:buh@example.net
+ * END:VEVENT
+ * END:VCALENDAR
+ * ```
+ *
+ * As with the organizer, you can also add an explicit `mailto` address.
+ *
+ * ```javascript
+ * event.createAttendee({email: 'hui@example.com', name: 'Hui', mailto: 'another@mailto.com'});
+ *
+ * // overwrite an attendee's mailto address
+ * attendee.mailto('another@mailto.net');
+ * ```
+ *
+ * @since 0.2.0
+ */
+ createAttendee(data: ICalAttendee | ICalAttendeeData | string): ICalAttendee {
+ if (data instanceof ICalAttendee) {
+ this.data.attendees.push(data);
+ return data;
+ }
+ if (typeof data === 'string') {
+ data = { email: data, ...checkNameAndMail('data', data) };
+ }
+
+ const attendee = new ICalAttendee(data, this);
+ this.data.attendees.push(attendee);
+ return attendee;
+ }
+
+
+ /**
+ * Get all attendees
+ * @since 0.2.0
+ */
+ attendees(): ICalAttendee[];
+
+ /**
+ * Add multiple attendees to your event
+ *
+ * ```javascript
+ * const event = ical().createEvent();
+ *
+ * cal.attendees([
+ * {email: 'a@example.com', name: 'Person A'},
+ * {email: 'b@example.com', name: 'Person B'}
+ * ]);
+ *
+ * cal.attendees(); // --> [ICalAttendee, ICalAttendee]
+ * ```
+ *
+ * @since 0.2.0
+ */
+ attendees(attendees: (ICalAttendee | ICalAttendeeData | string)[]): this;
+ attendees(attendees?: (ICalAttendee | ICalAttendeeData | string)[]): this | ICalAttendee[] {
+ if (!attendees) {
+ return this.data.attendees;
+ }
+
+ attendees.forEach(attendee => this.createAttendee(attendee));
+ return this;
+ }
+
+
+ /**
+ * Creates a new {@link ICalAlarm} and returns it. Use options to prefill
+ * the alarm's attributes. Calling this method without options will create
+ * an empty alarm.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ * const alarm = event.createAlarm({type: ICalAlarmType.display, trigger: 300});
+ *
+ * // add another alarm
+ * event.createAlarm({
+ * type: ICalAlarmType.audio,
+ * trigger: 300, // 5min before event
+ * });
+ * ```
+ *
+ * @since 0.2.1
+ */
+ createAlarm(data: ICalAlarm | ICalAlarmData): ICalAlarm {
+ const alarm = data instanceof ICalAlarm ? data : new ICalAlarm(data, this);
+ this.data.alarms.push(alarm);
+ return alarm;
+ }
+
+
+ /**
+ * Get all alarms
+ * @since 0.2.0
+ */
+ alarms(): ICalAlarm[];
+
+ /**
+ * Add one or multiple alarms
+ *
+ * ```javascript
+ * const event = ical().createEvent();
+ *
+ * cal.alarms([
+ * {type: ICalAlarmType.display, trigger: 600},
+ * {type: ICalAlarmType.audio, trigger: 300}
+ * ]);
+ *
+ * cal.alarms(); // --> [ICalAlarm, ICalAlarm]
+ ```
+ *
+ * @since 0.2.0
+ */
+ alarms(alarms: ICalAlarm[] | ICalAlarmData[]): this;
+ alarms(alarms?: ICalAlarm[] | ICalAlarmData[]): this | ICalAlarm[] {
+ if (!alarms) {
+ return this.data.alarms;
+ }
+
+ alarms.forEach((alarm: ICalAlarm | ICalAlarmData) => this.createAlarm(alarm));
+ return this;
+ }
+
+
+ /**
+ * Creates a new {@link ICalCategory} and returns it. Use options to prefill the category's attributes.
+ * Calling this method without options will create an empty category.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ * const category = event.createCategory({name: 'APPOINTMENT'});
+ *
+ * // add another category
+ * event.createCategory({
+ * name: 'MEETING'
+ * });
+ * ```
+ *
+ * @since 0.3.0
+ */
+ createCategory(data: ICalCategory | ICalCategoryData): ICalCategory {
+ const category = data instanceof ICalCategory ? data : new ICalCategory(data);
+ this.data.categories.push(category);
+ return category;
+ }
+
+
+ /**
+ * Get all categories
+ * @since 0.3.0
+ */
+ categories(): ICalCategory[];
+
+ /**
+ * Add categories to the event or return all selected categories.
+ *
+ * ```javascript
+ * const event = ical().createEvent();
+ *
+ * cal.categories([
+ * {name: 'APPOINTMENT'},
+ * {name: 'MEETING'}
+ * ]);
+ *
+ * cal.categories(); // --> [ICalCategory, ICalCategory]
+ * ```
+ *
+ * @since 0.3.0
+ */
+ categories(categories: (ICalCategory | ICalCategoryData)[]): this;
+ categories(categories?: (ICalCategory | ICalCategoryData)[]): this | ICalCategory[] {
+ if (!categories) {
+ return this.data.categories;
+ }
+
+ categories.forEach(category => this.createCategory(category));
+ return this;
+ }
+
+
+ /**
+ * Get the event's status
+ * @since 0.2.0
+ */
+ status(): ICalEventStatus | null;
+
+ /**
+ * Set the event's status
+ *
+ * ```javascript
+ * import ical, {ICalEventStatus} from 'ical-generator';
+ * event.status(ICalEventStatus.CONFIRMED);
+ * ```
+ *
+ * @since 0.2.0
+ */
+ status(status: ICalEventStatus | null): this;
+ status(status?: ICalEventStatus | null): this | ICalEventStatus | null {
+ if (status === undefined) {
+ return this.data.status;
+ }
+ if (status === null) {
+ this.data.status = null;
+ return this;
+ }
+
+ this.data.status = checkEnum(ICalEventStatus, status) as ICalEventStatus;
+ return this;
+ }
+
+
+ /**
+ * Get the event's busy status
+ * @since 1.0.2
+ */
+ busystatus(): ICalEventBusyStatus | null;
+
+ /**
+ * Set the event's busy status. Will add the
+ * [`X-MICROSOFT-CDO-BUSYSTATUS`](https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcical/cd68eae7-ed65-4dd3-8ea7-ad585c76c736)
+ * attribute to your event.
+ *
+ * ```javascript
+ * import ical, {ICalEventBusyStatus} from 'ical-generator';
+ * event.busystatus(ICalEventBusyStatus.BUSY);
+ * ```
+ *
+ * @since 1.0.2
+ */
+ busystatus(busystatus: ICalEventBusyStatus | null): this;
+ busystatus(busystatus?: ICalEventBusyStatus | null): this | ICalEventBusyStatus | null {
+ if (busystatus === undefined) {
+ return this.data.busystatus;
+ }
+ if (busystatus === null) {
+ this.data.busystatus = null;
+ return this;
+ }
+
+ this.data.busystatus = checkEnum(ICalEventBusyStatus, busystatus) as ICalEventBusyStatus;
+ return this;
+ }
+
+
+ /**
+ * Get the event's priority. A value of 1 represents
+ * the highest priority, 9 the lowest. 0 specifies an undefined
+ * priority.
+ *
+ * @since v2.0.0-develop.7
+ */
+ priority(): number | null;
+
+ /**
+ * Set the event's priority. A value of 1 represents
+ * the highest priority, 9 the lowest. 0 specifies an undefined
+ * priority.
+ *
+ * @since v2.0.0-develop.7
+ */
+ priority(priority: number | null): this;
+ priority(priority?: number | null): this | number | null {
+ if (priority === undefined) {
+ return this.data.priority;
+ }
+ if (priority === null) {
+ this.data.priority = null;
+ return this;
+ }
+
+ if(priority < 0 || priority > 9) {
+ throw new Error('`priority` is invalid, musst be 0 ≤ priority ≤ 9.');
+ }
+
+ this.data.priority = Math.round(priority);
+ return this;
+ }
+
+
+ /**
+ * Get the event's URL
+ * @since 0.2.0
+ */
+ url(): string | null;
+
+ /**
+ * Set the event's URL
+ * @since 0.2.0
+ */
+ url(url: string | null): this;
+ url(url?: string | null): this | string | null {
+ if (url === undefined) {
+ return this.data.url;
+ }
+
+ this.data.url = url ? String(url) : null;
+ return this;
+ }
+
+ /**
+ * Adds an attachment to the event by adding the file URL to the calendar.
+ *
+ * `ical-generator` only supports external attachments. File attachments that
+ * are directly included in the file are not supported, because otherwise the
+ * calendar file could easily become unfavourably large.
+ *
+ * ```javascript
+ * const cal = ical();
+ * const event = cal.createEvent();
+ * event.createAttachment('https://files.sebbo.net/calendar/attachments/foo');
+ * ```
+ *
+ * @since 3.2.0-develop.1
+ */
+ createAttachment(url: string): this {
+ this.data.attachments.push(url);
+ return this;
+ }
+
+
+ /**
+ * Get all attachment urls
+ * @since 3.2.0-develop.1
+ */
+ attachments(): string[];
+
+ /**
+ * Add one or multiple alarms
+ *
+ * ```javascript
+ * const event = ical().createEvent();
+ *
+ * cal.attachments([
+ * 'https://files.sebbo.net/calendar/attachments/foo',
+ * 'https://files.sebbo.net/calendar/attachments/bar'
+ * ]);
+ *
+ * cal.attachments(); // --> [string, string]
+ ```
+ *
+ * 3.2.0-develop.1
+ */
+ attachments(attachments: string[]): this;
+ attachments(attachments?: string[]): this | string[] {
+ if (!attachments) {
+ return this.data.attachments;
+ }
+
+ attachments.forEach((attachment: string) => this.createAttachment(attachment));
+ return this;
+ }
+
+ /**
+ * Get the event's transparency
+ * @since 1.7.3
+ */
+ transparency(): ICalEventTransparency | null;
+
+ /**
+ * Set the event's transparency
+ *
+ * Set the field to `OPAQUE` if the person or resource is no longer
+ * available due to this event. If the calendar entry has no influence
+ * on availability, you can set the field to `TRANSPARENT`. This value
+ * is mostly used to find out if a person has time on a certain date or
+ * not (see `TRANSP` in iCal specification).
+ *
+ * ```javascript
+ * import ical, {ICalEventTransparency} from 'ical-generator';
+ * event.transparency(ICalEventTransparency.OPAQUE);
+ * ```
+ *
+ * @since 1.7.3
+ */
+ transparency(transparency: ICalEventTransparency | null): this;
+ transparency(transparency?: ICalEventTransparency | null): this | ICalEventTransparency | null {
+ if (transparency === undefined) {
+ return this.data.transparency;
+ }
+ if (!transparency) {
+ this.data.transparency = null;
+ return this;
+ }
+
+ this.data.transparency = checkEnum(ICalEventTransparency, transparency) as ICalEventTransparency;
+ return this;
+ }
+
+
+ /**
+ * Get the event's creation date
+ * @since 0.3.0
+ */
+ created(): ICalDateTimeValue | null;
+
+ /**
+ * Set the event's creation date
+ * @since 0.3.0
+ */
+ created(created: ICalDateTimeValue | null): this;
+ created(created?: ICalDateTimeValue | null): this | ICalDateTimeValue | null {
+ if (created === undefined) {
+ return this.data.created;
+ }
+ if (created === null) {
+ this.data.created = null;
+ return this;
+ }
+
+ this.data.created = checkDate(created, 'created');
+ return this;
+ }
+
+
+ /**
+ * Get the event's last modification date
+ * @since 0.3.0
+ */
+ lastModified(): ICalDateTimeValue | null;
+
+ /**
+ * Set the event's last modification date
+ * @since 0.3.0
+ */
+ lastModified(lastModified: ICalDateTimeValue | null): this;
+ lastModified(lastModified?: ICalDateTimeValue | null): this | ICalDateTimeValue | null {
+ if (lastModified === undefined) {
+ return this.data.lastModified;
+ }
+ if (lastModified === null) {
+ this.data.lastModified = null;
+ return this;
+ }
+
+ this.data.lastModified = checkDate(lastModified, 'lastModified');
+ return this;
+ }
+
+ /**
+ * Get the event's class
+ * @since 2.0.0
+ */
+ class(): ICalEventClass | null;
+
+ /**
+ * Set the event's class
+ *
+ * ```javascript
+ * import ical, { ICalEventClass } from 'ical-generator';
+ * event.class(ICalEventClass.PRIVATE);
+ * ```
+ *
+ * @since 2.0.0
+ */
+ class(class_: ICalEventClass | null): this;
+ class(class_?: ICalEventClass | null): this | ICalEventClass | null {
+ if (class_ === undefined) {
+ return this.data.class;
+ }
+ if (class_ === null) {
+ this.data.class = null;
+ return this;
+ }
+
+ this.data.class = checkEnum(ICalEventClass, class_) as ICalEventClass;
+ return this;
+ }
+
+
+ /**
+ * Set X-* attributes. Woun't filter double attributes,
+ * which are also added by another method (e.g. summary),
+ * so these attributes may be inserted twice.
+ *
+ * ```javascript
+ * event.x([
+ * {
+ * key: "X-MY-CUSTOM-ATTR",
+ * value: "1337!"
+ * }
+ * ]);
+ *
+ * event.x([
+ * ["X-MY-CUSTOM-ATTR", "1337!"]
+ * ]);
+ *
+ * event.x({
+ * "X-MY-CUSTOM-ATTR": "1337!"
+ * });
+ * ```
+ *
+ * @since 1.9.0
+ */
+ x (keyOrArray: {key: string, value: string}[] | [string, string][] | Record): this;
+
+ /**
+ * Set a X-* attribute. Woun't filter double attributes,
+ * which are also added by another method (e.g. summary),
+ * so these attributes may be inserted twice.
+ *
+ * ```javascript
+ * event.x("X-MY-CUSTOM-ATTR", "1337!");
+ * ```
+ *
+ * @since 1.9.0
+ */
+ x (keyOrArray: string, value: string): this;
+
+ /**
+ * Get all custom X-* attributes.
+ * @since 1.9.0
+ */
+ x (): {key: string, value: string}[];
+ x(keyOrArray?: ({ key: string, value: string })[] | [string, string][] | Record | string, value?: string): this | void | ({ key: string, value: string })[] {
+ if (keyOrArray === undefined) {
+ return addOrGetCustomAttributes(this.data);
+ }
+
+ if (typeof keyOrArray === 'string' && typeof value === 'string') {
+ addOrGetCustomAttributes(this.data, keyOrArray, value);
+ }
+ if (typeof keyOrArray === 'object') {
+ addOrGetCustomAttributes(this.data, keyOrArray);
+ }
+
+ return this;
+ }
+
+
+ /**
+ * Return a shallow copy of the events's options for JSON stringification.
+ * Third party objects like moment.js values or RRule objects are stringified
+ * as well. Can be used for persistence.
+ *
+ * ```javascript
+ * const event = ical().createEvent();
+ * const json = JSON.stringify(event);
+ *
+ * // later: restore event data
+ * const calendar = ical().createEvent(JSON.parse(json));
+ * ```
+ *
+ * @since 0.2.4
+ */
+ toJSON(): ICalEventJSONData {
+ let repeating: ICalEventJSONRepeatingData | string | null = null;
+ if(isRRule(this.data.repeating) || typeof this.data.repeating === 'string') {
+ repeating = this.data.repeating.toString();
+ }
+ else if(this.data.repeating) {
+ repeating = Object.assign({}, this.data.repeating, {
+ until: toJSON(this.data.repeating.until) || undefined,
+ exclude: this.data.repeating.exclude?.map(d => toJSON(d)),
+ });
+ }
+
+ this.swapStartAndEndIfRequired();
+ return Object.assign({}, this.data, {
+ start: toJSON(this.data.start) || null,
+ end: toJSON(this.data.end) || null,
+ recurrenceId: toJSON(this.data.recurrenceId) || null,
+ stamp: toJSON(this.data.stamp) || null,
+ created: toJSON(this.data.created) || null,
+ lastModified: toJSON(this.data.lastModified) || null,
+ repeating,
+ x: this.x()
+ });
+ }
+
+
+ /**
+ * Return generated event as a string.
+ *
+ * ```javascript
+ * const event = ical().createEvent();
+ * console.log(event.toString()); // → BEGIN:VEVENT…
+ * ```
+ */
+ toString(): string {
+ let g = '';
+
+ // DATE & TIME
+ g += 'BEGIN:VEVENT\r\n';
+ g += 'UID:' + this.data.id + '\r\n';
+
+ // SEQUENCE
+ g += 'SEQUENCE:' + this.data.sequence + '\r\n';
+
+ this.swapStartAndEndIfRequired();
+ g += 'DTSTAMP:' + formatDate(this.calendar.timezone(), this.data.stamp) + '\r\n';
+ if (this.data.allDay) {
+ g += 'DTSTART;VALUE=DATE:' + formatDate(this.timezone(), this.data.start, true) + '\r\n';
+ if (this.data.end) {
+ g += 'DTEND;VALUE=DATE:' + formatDate(this.timezone(), this.data.end, true) + '\r\n';
+ }
+
+ g += 'X-MICROSOFT-CDO-ALLDAYEVENT:TRUE\r\n';
+ g += 'X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE\r\n';
+ }
+ else {
+ g += formatDateTZ(this.timezone(), 'DTSTART', this.data.start, this.data) + '\r\n';
+ if (this.data.end) {
+ g += formatDateTZ(this.timezone(), 'DTEND', this.data.end, this.data) + '\r\n';
+ }
+ }
+
+ // REPEATING
+ if(isRRule(this.data.repeating) || typeof this.data.repeating === 'string') {
+ let repeating = this.data.repeating
+ .toString()
+ .replace(/\r\n/g, '\n')
+ .split('\n')
+ .filter(l => l && !l.startsWith('DTSTART:'))
+ .join('\r\n');
+
+ if(!repeating.includes('\r\n') && !repeating.startsWith('RRULE:')) {
+ repeating = 'RRULE:' + repeating;
+ }
+
+ g += repeating.trim() + '\r\n';
+ }
+ else if (this.data.repeating) {
+ g += 'RRULE:FREQ=' + this.data.repeating.freq;
+
+ if (this.data.repeating.count) {
+ g += ';COUNT=' + this.data.repeating.count;
+ }
+
+ if (this.data.repeating.interval) {
+ g += ';INTERVAL=' + this.data.repeating.interval;
+ }
+
+ if (this.data.repeating.until) {
+ g += ';UNTIL=' + formatDate(this.calendar.timezone(), this.data.repeating.until, false, this.floating());
+ }
+
+ if (this.data.repeating.byDay) {
+ g += ';BYDAY=' + this.data.repeating.byDay.join(',');
+ }
+
+ if (this.data.repeating.byMonth) {
+ g += ';BYMONTH=' + this.data.repeating.byMonth.join(',');
+ }
+
+ if (this.data.repeating.byMonthDay) {
+ g += ';BYMONTHDAY=' + this.data.repeating.byMonthDay.join(',');
+ }
+
+ if (this.data.repeating.bySetPos) {
+ g += ';BYSETPOS=' + this.data.repeating.bySetPos.join(',');
+ }
+
+ if (this.data.repeating.startOfWeek) {
+ g += ';WKST=' + this.data.repeating.startOfWeek;
+ }
+
+ g += '\r\n';
+
+ // REPEATING EXCLUSION
+ if (this.data.repeating.exclude) {
+ if (this.data.allDay) {
+ g += 'EXDATE;VALUE=DATE:' + this.data.repeating.exclude.map(excludedDate => {
+ return formatDate(this.calendar.timezone(), excludedDate, true);
+ }).join(',') + '\r\n';
+ }
+ else {
+ g += 'EXDATE';
+ if (this.timezone()) {
+ g += ';TZID=' + this.timezone() + ':' + this.data.repeating.exclude.map(excludedDate => {
+ // This isn't a 'floating' event because it has a timezone;
+ // but we use it to omit the 'Z' UTC specifier in formatDate()
+ return formatDate(this.timezone(), excludedDate, false, true);
+ }).join(',') + '\r\n';
+ }
+ else {
+ g += ':' + this.data.repeating.exclude.map(excludedDate => {
+ return formatDate(this.timezone(), excludedDate, false, this.floating());
+ }).join(',') + '\r\n';
+ }
+ }
+ }
+ }
+
+ // RECURRENCE
+ if (this.data.recurrenceId) {
+ g += formatDateTZ(this.timezone(), 'RECURRENCE-ID', this.data.recurrenceId, this.data) + '\r\n';
+ }
+
+ // SUMMARY
+ g += 'SUMMARY:' + escape(this.data.summary, false) + '\r\n';
+
+ // TRANSPARENCY
+ if (this.data.transparency) {
+ g += 'TRANSP:' + escape(this.data.transparency, false) + '\r\n';
+ }
+
+ // LOCATION
+ if (this.data.location && 'title' in this.data.location && this.data.location.title) {
+ g += 'LOCATION:' + escape(
+ this.data.location.title +
+ (this.data.location.address ? '\n' + this.data.location.address : ''),
+ false
+ ) + '\r\n';
+
+ if (this.data.location.radius && this.data.location.geo) {
+ g += 'X-APPLE-STRUCTURED-LOCATION;VALUE=URI;' +
+ (this.data.location.address ? 'X-ADDRESS=' + escape(this.data.location.address, false) + ';' : '') +
+ 'X-APPLE-RADIUS=' + escape(this.data.location.radius, false) + ';' +
+ 'X-TITLE=' + escape(this.data.location.title, false) +
+ ':geo:' + escape(this.data.location.geo?.lat, false) + ',' +
+ escape(this.data.location.geo?.lon, false) + '\r\n';
+ }
+ }
+
+ // GEO
+ if (this.data.location && 'geo' in this.data.location && this.data.location.geo) {
+ g += 'GEO:' + escape(this.data.location.geo?.lat, false) + ';' +
+ escape(this.data.location.geo?.lon, false) + '\r\n';
+ }
+
+ // DESCRIPTION
+ if (this.data.description) {
+ g += 'DESCRIPTION:' + escape(this.data.description.plain, false) + '\r\n';
+
+ // HTML DESCRIPTION
+ if (this.data.description.html) {
+ g += 'X-ALT-DESC;FMTTYPE=text/html:' + escape(this.data.description.html, false) + '\r\n';
+ }
+ }
+
+ // ORGANIZER
+ if (this.data.organizer) {
+ g += 'ORGANIZER;CN="' + escape(this.data.organizer.name, true) + '"';
+
+ if (this.data.organizer.sentBy) {
+ g += ';SENT-BY="mailto:' + escape(this.data.organizer.sentBy, true) + '"';
+ }
+ if (this.data.organizer.email && this.data.organizer.mailto) {
+ g += ';EMAIL=' + escape(this.data.organizer.email, false);
+ }
+ if(this.data.organizer.email) {
+ g += ':mailto:' + escape(this.data.organizer.mailto || this.data.organizer.email, false);
+ }
+ g += '\r\n';
+ }
+
+ // ATTENDEES
+ this.data.attendees.forEach(function (attendee) {
+ g += attendee.toString();
+ });
+
+ // ALARMS
+ this.data.alarms.forEach(function (alarm) {
+ g += alarm.toString();
+ });
+
+ // CATEGORIES
+ if (this.data.categories.length > 0) {
+ g += 'CATEGORIES:' + this.data.categories
+ .map(category => category.toString())
+ .join() + '\r\n';
+ }
+
+ // URL
+ if (this.data.url) {
+ g += 'URL;VALUE=URI:' + escape(this.data.url, false) + '\r\n';
+ }
+
+ // ATTACHMENT
+ if (this.data.attachments.length > 0) {
+ this.data.attachments.forEach(url => {
+ g += 'ATTACH:' + escape(url, false) + '\r\n';
+ });
+ }
+
+ // STATUS
+ if (this.data.status) {
+ g += 'STATUS:' + this.data.status.toUpperCase() + '\r\n';
+ }
+
+ // BUSYSTATUS
+ if (this.data.busystatus) {
+ g += 'X-MICROSOFT-CDO-BUSYSTATUS:' + this.data.busystatus.toUpperCase() + '\r\n';
+ }
+
+ // PRIORITY
+ if (this.data.priority !== null) {
+ g += 'PRIORITY:' + this.data.priority + '\r\n';
+ }
+
+ // CUSTOM X ATTRIBUTES
+ g += generateCustomAttributes(this.data);
+
+ // CREATED
+ if (this.data.created) {
+ g += 'CREATED:' + formatDate(this.calendar.timezone(), this.data.created) + '\r\n';
+ }
+
+ // LAST-MODIFIED
+ if (this.data.lastModified) {
+ g += 'LAST-MODIFIED:' + formatDate(this.calendar.timezone(), this.data.lastModified) + '\r\n';
+ }
+
+ if (this.data.class) {
+ g+= 'CLASS:' + this.data.class.toUpperCase() + '\r\n';
+ }
+
+ g += 'END:VEVENT\r\n';
+ return g;
+ }
+}
diff --git a/src/index.ts b/src/index.ts
new file mode 100755
index 000000000..c18eb7c7e
--- /dev/null
+++ b/src/index.ts
@@ -0,0 +1,123 @@
+/**
+ * ical-generator entrypoint
+ */
+
+'use strict';
+
+import ICalCalendar, {ICalCalendarData} from './calendar.ts';
+
+
+/**
+ * Create a new, empty calendar and returns it.
+ *
+ * ```javascript
+ * import ical from 'ical-generator';
+ *
+ * // or use require:
+ * // const { default: ical } = require('ical-generator');
+ *
+ * const cal = ical();
+ * ```
+ *
+ * You can pass options to setup your calendar or use setters to do this.
+ *
+ * ```javascript
+ * import ical from 'ical-generator';
+ *
+ * // or use require:
+ * // const { default: ical } = require('ical-generator');
+ * const cal = ical({domain: 'sebbo.net'});
+ *
+ * // is the same as
+ *
+ * const cal = ical().domain('sebbo.net');
+ *
+ * // is the same as
+ *
+ * const cal = ical();
+ * cal.domain('sebbo.net');
+ * ```
+ *
+ * @param data Calendar data
+ */
+function ical(data?: ICalCalendarData): ICalCalendar {
+ return new ICalCalendar(data);
+}
+
+export default ical;
+
+export {
+ default as ICalAlarm,
+ ICalAlarmData,
+ ICalAlarmBaseData,
+ ICalAlarmJSONData,
+ ICalAlarmRelatesTo,
+ ICalAlarmRepeatData,
+ ICalAlarmTriggerData,
+ ICalAlarmTriggerAfterData,
+ ICalAlarmTriggerBeforeData,
+ ICalAlarmType,
+ ICalAlarmTypeValue,
+ ICalAttachment,
+} from './alarm.ts';
+
+export {
+ default as ICalAttendee,
+ ICalAttendeeData,
+ ICalAttendeeType,
+ ICalAttendeeRole,
+ ICalAttendeeStatus,
+ ICalAttendeeJSONData
+} from './attendee.ts';
+
+export {
+ default as ICalCalendar,
+ ICalCalendarData,
+ ICalCalendarProdIdData,
+ ICalCalendarMethod,
+ ICalCalendarJSONData
+} from './calendar.ts';
+
+export {
+ default as ICalCategory,
+ ICalCategoryData,
+ ICalCategoryJSONData
+} from './category.ts';
+
+export {
+ default as ICalEvent,
+ ICalEventStatus,
+ ICalEventBusyStatus,
+ ICalEventTransparency,
+ ICalEventData,
+ ICalEventJSONData,
+ ICalEventJSONRepeatingData,
+ ICalEventClass,
+} from './event.ts';
+
+export {
+ ICalDateTimeValue,
+ ICalRepeatingOptions,
+ ICalLocation,
+ ICalLocationWithTitle,
+ ICalLocationWithoutTitle,
+ ICalGeo,
+ ICalOrganizer,
+ ICalDescription,
+ ICalEventRepeatingFreq,
+ ICalWeekday,
+ ICalTimezone,
+ ICalMomentStub,
+ ICalMomentTimezoneStub,
+ ICalMomentDurationStub,
+ ICalLuxonDateTimeStub,
+ ICalDayJsStub,
+ ICalRRuleStub
+} from './types.ts';
+
+export {
+ formatDate,
+ formatDateTZ,
+ escape,
+ foldLines
+} from './tools.ts';
diff --git a/src/lib/index.ts b/src/lib/index.ts
deleted file mode 100644
index 675e159bc..000000000
--- a/src/lib/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export default class Magic {
- static double (n: number): number {
- return n + n;
- }
-}
diff --git a/src/tools.ts b/src/tools.ts
new file mode 100755
index 000000000..0aa861d2a
--- /dev/null
+++ b/src/tools.ts
@@ -0,0 +1,410 @@
+'use strict';
+
+import {
+ ICalDateTimeValue,
+ ICalDayJsStub,
+ ICalLuxonDateTimeStub,
+ ICalMomentDurationStub,
+ ICalMomentStub,
+ ICalMomentTimezoneStub,
+ ICalOrganizer, ICalRRuleStub
+} from './types.ts';
+
+/**
+ * Converts a valid date/time object supported by this library to a string.
+ */
+export function formatDate (timezone: string | null, d: ICalDateTimeValue, dateonly?: boolean, floating?: boolean): string {
+ if(timezone?.startsWith('/')) {
+ timezone = timezone.substr(1);
+ }
+
+ if(typeof d === 'string' || d instanceof Date) {
+ const m = new Date(d);
+
+ // (!dateonly && !floating) || !timezone => utc
+ let s = m.getUTCFullYear() +
+ String(m.getUTCMonth() + 1).padStart(2, '0') +
+ m.getUTCDate().toString().padStart(2, '0');
+
+ // (dateonly || floating) && timezone => tz
+ if(timezone) {
+ s = m.getFullYear() +
+ String(m.getMonth() + 1).padStart(2, '0') +
+ m.getDate().toString().padStart(2, '0');
+ }
+
+ if(dateonly) {
+ return s;
+ }
+
+ if(timezone) {
+ s += 'T' + m.getHours().toString().padStart(2, '0') +
+ m.getMinutes().toString().padStart(2, '0') +
+ m.getSeconds().toString().padStart(2, '0');
+
+ return s;
+ }
+
+ s += 'T' + m.getUTCHours().toString().padStart(2, '0') +
+ m.getUTCMinutes().toString().padStart(2, '0') +
+ m.getUTCSeconds().toString().padStart(2, '0') +
+ (floating ? '' : 'Z');
+
+ return s;
+ }
+ else if(isMoment(d)) {
+ // @see https://momentjs.com/timezone/docs/#/using-timezones/parsing-in-zone/
+ const m = timezone
+ ? (isMomentTZ(d) && !d.tz() ? d.clone().tz(timezone) : d)
+ : (floating || (dateonly && isMomentTZ(d) && d.tz()) ? d : d.utc());
+
+ return m.format('YYYYMMDD') + (!dateonly ? (
+ 'T' + m.format('HHmmss') + (floating || timezone ? '' : 'Z')
+ ) : '');
+ }
+ else if(isLuxonDate(d)) {
+ const m = timezone
+ ? d.setZone(timezone)
+ : (floating || (dateonly && d.zone.type !== 'system') ? d : d.setZone('utc'));
+
+ return m.toFormat('yyyyLLdd') + (!dateonly ? (
+ 'T' + m.toFormat('HHmmss') + (floating || timezone ? '' : 'Z')
+ ) : '');
+ }
+ else {
+ // @see https://day.js.org/docs/en/plugin/utc
+
+ let m = d;
+ if(timezone) {
+ // @see https://day.js.org/docs/en/plugin/timezone
+ // @ts-ignore
+ m = typeof d.tz === 'function' ? d.tz(timezone) : d;
+ }
+ else if(floating) {
+ // m = d;
+ }
+
+ // @ts-ignore
+ else if (typeof d.utc === 'function') {
+ // @ts-ignore
+ m = d.utc();
+ }
+ else {
+ throw new Error('Unable to convert dayjs object to UTC value: UTC plugin is not available!');
+ }
+
+ return m.format('YYYYMMDD') + (!dateonly ? (
+ 'T' + m.format('HHmmss') + (floating || timezone ? '' : 'Z')
+ ) : '');
+ }
+}
+
+/**
+ * Converts a valid date/time object supported by this library to a string.
+ * For information about this format, see RFC 5545, section 3.3.5
+ * https://tools.ietf.org/html/rfc5545#section-3.3.5
+ */
+export function formatDateTZ (timezone: string | null, property: string, date: ICalDateTimeValue | Date | string, eventData?: {floating?: boolean | null, timezone?: string | null}): string {
+ let tzParam = '';
+ let floating = eventData?.floating || false;
+
+ if (eventData?.timezone) {
+ tzParam = ';TZID=' + eventData.timezone;
+
+ // This isn't a 'floating' event because it has a timezone;
+ // but we use it to omit the 'Z' UTC specifier in formatDate()
+ floating = true;
+ }
+
+ return property + tzParam + ':' + formatDate(timezone, date, false, floating);
+}
+
+/**
+ * Escapes special characters in the given string
+ */
+export function escape (str: string | unknown, inQuotes: boolean): string {
+ return String(str).replace(inQuotes ? /[\\"]/g : /[\\;,]/g, function (match) {
+ return '\\' + match;
+ }).replace(/(?:\r\n|\r|\n)/g, '\\n');
+}
+
+/**
+ * Trim line length of given string
+ */
+export function foldLines (input: string): string {
+ return input.split('\r\n').map(function (line) {
+ let result = '';
+ let c = 0;
+ for (let i = 0; i < line.length; i++) {
+ let ch = line.charAt(i);
+
+ // surrogate pair, see https://mathiasbynens.be/notes/javascript-encoding#surrogate-pairs
+ if (ch >= '\ud800' && ch <= '\udbff') {
+ ch += line.charAt(++i);
+ }
+
+ // TextEncoder is available in browsers and node.js >= 11.0.0
+ const charsize = new TextEncoder().encode(ch).length;
+ c += charsize;
+ if (c > 74) {
+ result += '\r\n ';
+ c = charsize;
+ }
+
+ result += ch;
+ }
+ return result;
+ }).join('\r\n');
+}
+
+export function addOrGetCustomAttributes (data: {x: [string, string][]}, keyOrArray: ({key: string, value: string})[] | [string, string][] | Record): void;
+export function addOrGetCustomAttributes (data: {x: [string, string][]}, keyOrArray: string, value: string): void;
+export function addOrGetCustomAttributes (data: {x: [string, string][]}): ({key: string, value: string})[];
+export function addOrGetCustomAttributes (data: {x: [string, string][]}, keyOrArray?: ({key: string, value: string})[] | [string, string][] | Record | string | undefined, value?: string | undefined): void | ({key: string, value: string})[] {
+ if (Array.isArray(keyOrArray)) {
+ data.x = keyOrArray.map((o: {key: string, value: string} | [string, string]) => {
+ if(Array.isArray(o)) {
+ return o;
+ }
+ if (typeof o.key !== 'string' || typeof o.value !== 'string') {
+ throw new Error('Either key or value is not a string!');
+ }
+ if (o.key.substr(0, 2) !== 'X-') {
+ throw new Error('Key has to start with `X-`!');
+ }
+
+ return [o.key, o.value] as [string, string];
+ });
+ }
+ else if (typeof keyOrArray === 'object') {
+ data.x = Object.entries(keyOrArray).map(([key, value]) => {
+ if (typeof key !== 'string' || typeof value !== 'string') {
+ throw new Error('Either key or value is not a string!');
+ }
+ if (key.substr(0, 2) !== 'X-') {
+ throw new Error('Key has to start with `X-`!');
+ }
+
+ return [key, value];
+ });
+ }
+ else if (typeof keyOrArray === 'string' && typeof value === 'string') {
+ if (keyOrArray.substr(0, 2) !== 'X-') {
+ throw new Error('Key has to start with `X-`!');
+ }
+
+ data.x.push([keyOrArray, value]);
+ }
+ else {
+ return data.x.map(a => ({
+ key: a[0],
+ value: a[1]
+ }));
+ }
+}
+
+export function generateCustomAttributes (data: {x: [string, string][]}): string {
+ const str = data.x
+ .map(([key, value]) => key.toUpperCase() + ':' + escape(value, false))
+ .join('\r\n');
+ return str.length ? str + '\r\n' : '';
+}
+
+/**
+ * Check the given string or ICalOrganizer. Parses
+ * the string for name and email address if possible.
+ *
+ * @param attribute Attribute name for error messages
+ * @param value Value to parse name/email from
+ */
+export function checkNameAndMail (attribute: string, value: string | ICalOrganizer): ICalOrganizer {
+ let result: ICalOrganizer | null = null;
+
+ if (typeof value === 'string') {
+ const match = value.match(/^(.+) ?<([^>]+)>$/);
+ if (match) {
+ result = {
+ name: match[1].trim(),
+ email: match[2].trim()
+ };
+ }
+ else if(value.includes('@')) {
+ result = {
+ name: value.trim(),
+ email: value.trim()
+ };
+ }
+ }
+ else if (typeof value === 'object') {
+ result = {
+ name: value.name,
+ email: value.email,
+ mailto: value.mailto,
+ sentBy: value.sentBy
+ };
+ }
+
+ if (!result && typeof value === 'string') {
+ throw new Error(
+ '`' + attribute + '` isn\'t formated correctly. See https://sebbo2002.github.io/ical-generator/develop/'+
+ 'reference/interfaces/ICalOrganizer.html'
+ );
+ }
+ else if (!result) {
+ throw new Error(
+ '`' + attribute + '` needs to be a valid formed string or an object. See https://sebbo2002.github.io/'+
+ 'ical-generator/develop/reference/interfaces/ICalOrganizer.html'
+ );
+ }
+
+ if (!result.name) {
+ throw new Error('`' + attribute + '.name` is empty!');
+ }
+
+ return result;
+}
+
+/**
+ * Checks if the given string `value` is a
+ * valid one for the type `type`
+ */
+export function checkEnum(type: Record, value: unknown): unknown {
+ const allowedValues = Object.values(type);
+ const valueStr = String(value).toUpperCase();
+
+ if (!valueStr || !allowedValues.includes(valueStr)) {
+ throw new Error(`Input must be one of the following: ${allowedValues.join(', ')}`);
+ }
+
+ return valueStr;
+}
+
+/**
+ * Checks if the given input is a valid date and
+ * returns the internal representation (= moment object)
+ */
+export function checkDate(value: ICalDateTimeValue, attribute: string): ICalDateTimeValue {
+
+ // Date & String
+ if(
+ (value instanceof Date && isNaN(value.getTime())) ||
+ (typeof value === 'string' && isNaN(new Date(value).getTime()))
+ ) {
+ throw new Error(`\`${attribute}\` has to be a valid date!`);
+ }
+ if(value instanceof Date || typeof value === 'string') {
+ return value;
+ }
+
+ // Luxon
+ if(isLuxonDate(value) && value.isValid === true) {
+ return value;
+ }
+
+ // Moment / Moment Timezone
+ if((isMoment(value) || isDayjs(value)) && value.isValid()) {
+ return value;
+ }
+
+ throw new Error(`\`${attribute}\` has to be a valid date!`);
+}
+
+export function toDate(value: ICalDateTimeValue): Date {
+ if(typeof value === 'string' || value instanceof Date) {
+ return new Date(value);
+ }
+
+ // @ts-ignore
+ if(isLuxonDate(value)) {
+ return value.toJSDate();
+ }
+
+ return value.toDate();
+}
+
+export function isMoment(value: ICalDateTimeValue): value is ICalMomentStub {
+
+ // @ts-ignore
+ return value != null && value._isAMomentObject != null;
+}
+export function isMomentTZ(value: ICalDateTimeValue): value is ICalMomentTimezoneStub {
+ return isMoment(value) && 'tz' in value && typeof value.tz === 'function';
+}
+export function isDayjs(value: ICalDateTimeValue): value is ICalDayJsStub {
+ return typeof value === 'object' &&
+ value !== null &&
+ !(value instanceof Date) &&
+ !isMoment(value) &&
+ !isLuxonDate(value);
+}
+export function isLuxonDate(value: ICalDateTimeValue): value is ICalLuxonDateTimeStub {
+ return typeof value === 'object' && value !== null && 'toJSDate' in value && typeof value.toJSDate === 'function';
+}
+
+export function isMomentDuration(value: unknown): value is ICalMomentDurationStub {
+
+ // @ts-ignore
+ return value !== null && typeof value === 'object' && typeof value.asSeconds === 'function';
+}
+
+export function isRRule(value: unknown): value is ICalRRuleStub {
+
+ // @ts-ignore
+ return value !== null && typeof value === 'object' && typeof value.between === 'function' && typeof value.toString === 'function';
+}
+
+export function toJSON(value: ICalDateTimeValue | null | undefined): string | null | undefined {
+ if(!value) {
+ return null;
+ }
+ if(typeof value === 'string') {
+ return value;
+ }
+
+ return value.toJSON();
+}
+
+export function toDurationString(seconds: number): string {
+ let string = '';
+
+ // < 0
+ if(seconds < 0) {
+ string = '-';
+ seconds *= -1;
+ }
+
+ string += 'P';
+
+ // DAYS
+ if(seconds >= 86400) {
+ string += Math.floor(seconds / 86400) + 'D';
+ seconds %= 86400;
+ }
+ if(!seconds && string.length > 1) {
+ return string;
+ }
+
+ string += 'T';
+
+ // HOURS
+ if(seconds >= 3600) {
+ string += Math.floor(seconds / 3600) + 'H';
+ seconds %= 3600;
+ }
+
+ // MINUTES
+ if(seconds >= 60) {
+ string += Math.floor(seconds / 60) + 'M';
+ seconds %= 60;
+ }
+
+ // SECONDS
+ if(seconds > 0) {
+ string += seconds + 'S';
+ }
+ else if(string.length <= 2) {
+ string += '0S';
+ }
+
+ return string;
+}
diff --git a/src/types.ts b/src/types.ts
new file mode 100644
index 000000000..d11deb4eb
--- /dev/null
+++ b/src/types.ts
@@ -0,0 +1,118 @@
+/**
+ * ical-generator supports [native Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date),
+ * [moment.js](https://momentjs.com/) (and [moment-timezone](https://momentjs.com/timezone/), [Day.js](https://day.js.org/en/) and
+ * [Luxon](https://moment.github.io/luxon/)'s [DateTime](https://moment.github.io/luxon/docs/class/src/datetime.js~DateTime.html)
+ * objects. You can also pass a string which is then passed to javascript's Date internally.
+ */
+export type ICalDateTimeValue = Date | ICalMomentStub | ICalMomentTimezoneStub | ICalLuxonDateTimeStub | ICalDayJsStub | string;
+
+export interface ICalRepeatingOptions {
+ freq: ICalEventRepeatingFreq;
+ count?: number;
+ interval?: number;
+ until?: ICalDateTimeValue;
+ byDay?: ICalWeekday[] | ICalWeekday;
+ byMonth?: number[] | number;
+ byMonthDay?: number[] | number;
+ bySetPos?: number[] | number;
+ exclude?: ICalDateTimeValue[] | ICalDateTimeValue;
+ startOfWeek?: ICalWeekday;
+}
+
+export type ICalLocation = ICalLocationWithTitle | ICalLocationWithoutTitle;
+
+export interface ICalLocationWithTitle {
+ title: string;
+ address?: string;
+ radius?: number;
+ geo?: ICalGeo;
+}
+
+export interface ICalLocationWithoutTitle {
+ geo: ICalGeo;
+}
+
+export interface ICalGeo {
+ lat: number;
+ lon: number;
+}
+
+export interface ICalOrganizer {
+ name: string;
+ email?: string;
+ mailto?: string;
+ sentBy?: string;
+}
+
+export interface ICalDescription {
+ plain: string;
+ html?: string;
+}
+
+export interface ICalTimezone {
+ name: string | null;
+ generator?: (timezone: string) => string|null;
+}
+
+export interface ICalMomentStub {
+ format(format?: string): string;
+ clone(): ICalMomentStub;
+ utc(): ICalMomentStub;
+ toDate(): Date;
+ isValid(): boolean;
+ toJSON(): string;
+}
+
+export interface ICalMomentTimezoneStub extends ICalMomentStub {
+ clone(): ICalMomentTimezoneStub;
+ utc(): ICalMomentTimezoneStub;
+ tz(): string | undefined;
+ tz(timezone: string): ICalMomentTimezoneStub;
+}
+
+export interface ICalMomentDurationStub {
+ asSeconds(): number;
+}
+
+export interface ICalLuxonDateTimeStub {
+ setZone(zone?: string): ICalLuxonDateTimeStub;
+ zone: { type: string; };
+ toFormat(fmt: string): string;
+ toJSDate(): Date;
+ get isValid(): boolean;
+ toJSON(): string | null;
+}
+
+export interface ICalDayJsStub {
+ tz(zone?: string): ICalDayJsStub;
+ utc(): ICalDayJsStub;
+ format(format?: string): string;
+ toDate(): Date;
+ isValid(): boolean;
+ toJSON(): string;
+}
+
+export interface ICalRRuleStub {
+ between(after: Date, before: Date, inc?: boolean, iterator?: (d: Date, len: number) => boolean): Date[];
+ toString(): string;
+}
+
+export enum ICalEventRepeatingFreq {
+ SECONDLY = 'SECONDLY',
+ MINUTELY = 'MINUTELY',
+ HOURLY = 'HOURLY',
+ DAILY = 'DAILY',
+ WEEKLY = 'WEEKLY',
+ MONTHLY = 'MONTHLY',
+ YEARLY = 'YEARLY'
+}
+
+export enum ICalWeekday {
+ SU = 'SU',
+ MO = 'MO',
+ TU = 'TU',
+ WE = 'WE',
+ TH = 'TH',
+ FR = 'FR',
+ SA = 'SA'
+}
diff --git a/test/alarm.ts b/test/alarm.ts
new file mode 100644
index 000000000..a973e8cdf
--- /dev/null
+++ b/test/alarm.ts
@@ -0,0 +1,799 @@
+'use strict';
+
+import assert from 'assert';
+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 ICalAttendee from '../src/attendee.js';
+
+
+describe('ical-generator Alarm', function () {
+ describe('constructor()', function () {
+ it('shouldn\'t work without event reference', function () {
+ assert.throws(function () {
+ // @ts-ignore
+ new ICalAlarm({type: ICalAlarmType.display}, null);
+ }, /`event`/);
+ });
+
+ it('should ignore unknown data attributes', function () {
+ const a = new ICalAlarm({
+ // @ts-ignore
+ unknown: true,
+ type: ICalAlarmType.display
+ }, new ICalEvent({
+ start: new Date()
+ }, new ICalCalendar()));
+
+ assert.strictEqual(a.type(), 'display');
+ });
+ });
+
+ describe('type()', function () {
+ it('setter should return this', function () {
+ 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({
+ start: new Date()
+ }, new ICalCalendar()));
+ assert.strictEqual(a.type(), 'display');
+
+ a.type(ICalAlarmType.audio);
+ assert.strictEqual(a.type(), 'audio');
+ });
+
+ it('should throw error when type not allowed', function () {
+ 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({}, 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(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+ assert.deepStrictEqual(a, a.trigger(60 * 10));
+ });
+
+ it('getter should return value', function () {
+ const a = new ICalAlarm({}, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+ const now = new Date();
+
+ assert.strictEqual(a.trigger(), 600);
+ assert.strictEqual(a.triggerAfter(), -600);
+
+ a.trigger(300);
+ assert.strictEqual(a.trigger(), 300);
+ assert.strictEqual(a.triggerAfter(), -300);
+
+ // Date
+ a.trigger(now);
+ const dateResult = a.trigger();
+ assert.deepStrictEqual(dateResult, now);
+ });
+
+ it('should throw error when trigger not allowed', function () {
+ const a = new ICalAlarm({}, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+ assert.throws(function () {
+ a.trigger(Infinity);
+ }, /`trigger`/);
+ assert.throws(function () {
+ // @ts-ignore
+ a.trigger('hi');
+ }, /`trigger`/);
+ assert.throws(function () {
+ // @ts-ignore
+ a.trigger(true);
+ }, /`trigger`/);
+ });
+
+ it('setter should work with date', function () {
+ 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(
+ { 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(
+ { 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()
+ ));
+
+ assert.ok(a.toString().includes('TRIGGER:-PT10M'));
+
+ a.trigger(trigger);
+ 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(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.deepStrictEqual(a, a.triggerAfter(60 * 10));
+ });
+
+ it('getter should return value', function () {
+ 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(
+ { 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(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.throws(function () {
+ a.triggerAfter(Infinity);
+ }, /`trigger`/);
+ assert.throws(function () {
+ // @ts-ignore
+ a.triggerAfter('hi');
+ }, /`trigger`/);
+ assert.throws(function () {
+ // @ts-ignore
+ a.triggerAfter(true);
+ }, /`trigger`/);
+ });
+
+ it('should change something', function () {
+ const trigger = moment('20150201T133845Z');
+ const a = new ICalAlarm({ triggerAfter: 600 }, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.ok(a.toString().indexOf('TRIGGER;RELATED=END:PT10M') > -1);
+
+ a.triggerAfter(trigger);
+ assert.ok(a.toString().indexOf('TRIGGER;VALUE=DATE-TIME:20150201T133845Z') > -1);
+ });
+ });
+
+ describe('triggerBefore()', function () {
+ it('setter should return this', function () {
+ 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(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+ const now = new Date();
+
+ assert.strictEqual(a.triggerBefore(), 600);
+
+ a.trigger(300);
+ assert.strictEqual(a.triggerBefore(), 300);
+
+ // Date
+ a.trigger(now);
+ const dateResult = a.triggerBefore();
+ assert.deepStrictEqual(dateResult, now);
+ });
+
+ it('should throw error when trigger not allowed', function () {
+ const a = new ICalAlarm({}, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.throws(function () {
+ a.triggerBefore(Infinity);
+ }, /`trigger`/);
+ assert.throws(function () {
+ // @ts-ignore
+ a.triggerBefore('hi');
+ }, /`trigger`/);
+ assert.throws(function () {
+ // @ts-ignore
+ a.triggerBefore(true);
+ }, /`trigger`/);
+ });
+
+ it('setter should work with date', function () {
+ 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({ 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(
+ { 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()
+ ));
+
+ assert.ok(a.toString().indexOf('TRIGGER:-PT10M') > -1);
+
+ a.triggerBefore(trigger);
+ assert.ok(a.toString().indexOf('TRIGGER;VALUE=DATE-TIME:20150201T133845Z') > -1);
+ });
+ });
+
+ describe('relatesTo()', function () {
+ it('setter should return this', function () {
+ 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(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ a.relatesTo(ICalAlarmRelatesTo.end);
+ assert.strictEqual(a.relatesTo(), ICalAlarmRelatesTo.end);
+ a.relatesTo(null);
+ assert.strictEqual(a.relatesTo(), null);
+ });
+
+ it('should throw if value is not `null`, "START" or "END"', function () {
+ const a = new ICalAlarm({}, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.throws(function () {
+ // @ts-ignore
+ a.relatesTo('hi');
+ }, /`relatesTo`/);
+ assert.throws(function () {
+ // @ts-ignore
+ a.relatesTo(true);
+ }, /`relatesTo`/);
+ assert.throws(function () {
+ // @ts-ignore
+ a.relatesTo(Infinity);
+ }, /`relatesTo`/);
+ });
+
+ it('should change RELATED', function () {
+ const a = new ICalAlarm({}, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.ok(a.toString().indexOf('RELATED=START') === -1);
+
+ a.relatesTo(ICalAlarmRelatesTo.start);
+ assert.ok(a.toString().indexOf('RELATED=START') > -1);
+
+ a.relatesTo(ICalAlarmRelatesTo.end);
+ assert.ok(a.toString().indexOf('RELATED=END') > -1);
+ });
+ });
+
+ describe('repeat()', function () {
+ it('setter should return this', function () {
+ 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(
+ { 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(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.throws(function () {
+ a.repeat({
+ times: Infinity,
+ interval: 60
+ });
+ }, /`repeat.times`/);
+ assert.throws(function () {
+ a.repeat({
+ // @ts-ignore
+ times: 'hi',
+ interval: 60
+ });
+ }, /`repeat.times`/);
+ assert.throws(function () {
+ 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({
+ trigger: 300,
+ 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'));
+
+ a.repeat(null);
+ assert.ok(!a.toString().includes('REPEAT:42'));
+ assert.ok(!a.toString().includes('DURATION:PT1M30S'));
+ });
+
+ it('should throw an error if repeat is set but interval isn\'t', function () {
+ assert.throws(function () {
+ 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 () {
+ 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 () {
+ 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(
+ { 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(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.strictEqual(a.attach(), null);
+
+ a.attach(t);
+ assert.deepStrictEqual(a.attach(), t);
+
+ a.attach('https://www.example.com/beep.aud');
+ assert.deepStrictEqual(a.attach(), {
+ uri: 'https://www.example.com/beep.aud',
+ mime: null
+ });
+
+ a.attach({
+ uri: 'https://www.example.com/beep.aud'
+ });
+ assert.deepStrictEqual(a.attach(), {
+ uri: 'https://www.example.com/beep.aud',
+ mime: null
+ });
+
+ a.attach(null);
+ assert.strictEqual(a.attach(), null);
+ });
+
+ it('should throw error withour uri', function () {
+ const a = new ICalAlarm({}, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.throws(function () {
+ // @ts-ignore
+ a.attach({mime: 'audio/basic'});
+ }, /`attach.uri`/);
+ });
+
+ it('should throw error when unknown format', function () {
+ const a = new ICalAlarm({}, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.throws(function () {
+ // @ts-ignore
+ a.attach(Infinity);
+ }, /`attachment`/);
+ });
+
+ it('should change something', function () {
+ 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');
+ assert.ok(a.toString().indexOf('\r\nATTACH;VALUE=URI:https://example.com/beep.aud') > -1);
+
+ a.attach({
+ uri: 'https://example.com/beep.aud',
+ mime: 'audio/basic'
+ });
+ assert.ok(a.toString().indexOf('\r\nATTACH;FMTTYPE=audio/basic:https://example.com/beep.aud') > -1);
+ });
+ });
+
+ describe('description()', function () {
+ it('setter should return this', function () {
+ 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(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.deepStrictEqual(a.description(), null);
+ a.description('blablabla');
+ assert.deepStrictEqual(a.description(), 'blablabla');
+ a.description(null);
+ assert.deepStrictEqual(a.description(), null);
+ });
+
+ it('should change something', function () {
+ const a = new ICalAlarm({
+ description: 'Huibuh!'
+ }, 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({ description: 'Example Event' }, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.ok(a.toString().indexOf('\r\nDESCRIPTION:Example Event') > -1);
+ });
+ });
+
+ describe('summary()', function () {
+ it('setter should return this', function () {
+ const a = new ICalAlarm({}, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.deepStrictEqual(a, a.summary(null));
+ assert.deepStrictEqual(a, a.summary('Hey Ho!'));
+ });
+
+ it('getter should return value', function () {
+ const a = new ICalAlarm({}, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ assert.deepStrictEqual(a.summary(), null);
+ a.summary('blablabla');
+ assert.deepStrictEqual(a.summary(), 'blablabla');
+ a.summary(null);
+ assert.deepStrictEqual(a.summary(), null);
+ });
+
+ it('should change something', function () {
+ const a = new ICalAlarm({
+ type: ICalAlarmType.email,
+ summary: 'Huibuh!'
+ }, new ICalEvent({ start: new Date() }, new ICalCalendar()));
+ assert.ok(a.toString().indexOf('\r\nSUMMARY:Huibuh') > -1);
+ });
+
+ it('should fallback to event summary', function () {
+ const a = new ICalAlarm(
+ { type: ICalAlarmType.email },
+ new ICalEvent({ start: new Date(), summary: 'Example Event' }, new ICalCalendar())
+ );
+
+ assert.ok(a.toString().indexOf('\r\nSUMMARY:Example Event') > -1);
+ });
+ });
+
+ describe('createAttendee()', function () {
+ it('if Attendee passed, it should add and return it', function () {
+ const alarm = new ICalEvent({ start: new Date() }, new ICalCalendar()).createAlarm({
+ type: ICalAlarmType.email
+ });
+
+ const attendee = new ICalAttendee({ email: 'mail@example.com' }, alarm);
+ assert.strictEqual(alarm.createAttendee(attendee), attendee, 'createAttendee returns attendee');
+ assert.deepStrictEqual(alarm.attendees()[0], attendee, 'attendee pushed');
+ });
+
+ it('should return a ICalAttendee instance', function () {
+ const alarm = new ICalEvent({ start: new Date() }, new ICalCalendar()).createAlarm({
+ type: ICalAlarmType.email
+ });;
+
+ assert.ok(alarm.createAttendee({ email: 'mail@example.com' }) instanceof ICalAttendee);
+ assert.strictEqual(alarm.attendees.length, 1, 'attendee pushed');
+ });
+
+ it('should accept string', function () {
+ const alarm = new ICalEvent({ start: new Date() }, new ICalCalendar()).createAlarm({
+ type: ICalAlarmType.email
+ });;
+ const attendee = alarm.createAttendee('Zac ');
+
+ assert.strictEqual(attendee.name(), 'Zac');
+ assert.strictEqual(attendee.email(), 'zac@example.com');
+ assert.strictEqual(alarm.attendees().length, 1, 'attendee pushed');
+ });
+
+ it('should throw error when string misformated', function () {
+ const alarm = new ICalEvent({ start: new Date() }, new ICalCalendar()).createAlarm({
+ type: ICalAlarmType.email
+ });;
+ assert.throws(function () {
+ alarm.createAttendee('foo bar');
+ }, /isn't formated correctly/);
+ });
+
+ it('should accept object', function () {
+ const alarm = new ICalEvent({ start: new Date() }, new ICalCalendar()).createAlarm({
+ type: ICalAlarmType.email
+ });
+ const attendee = alarm.createAttendee({name: 'Zac', email: 'zac@example.com'});
+
+ assert.strictEqual(attendee.name(), 'Zac');
+ assert.strictEqual(attendee.email(), 'zac@example.com');
+ assert.strictEqual(alarm.attendees().length, 1, 'attendee pushed');
+ assert.ok(alarm.toString().includes('ATTENDEE;ROLE=REQ-PARTICIPANT;CN="Zac":MAILTO:zac@example.com'));
+ });
+ });
+
+ describe('attendees()', function () {
+ it('getter should return an array of attendees…', function () {
+ const alarm = new ICalEvent({ start: new Date() }, new ICalCalendar()).createAlarm({
+ type: ICalAlarmType.email
+ });
+ assert.strictEqual(alarm.attendees().length, 0);
+
+ const attendee = alarm.createAttendee({ email: 'mail@example.com' });
+ assert.strictEqual(alarm.attendees().length, 1);
+ assert.deepStrictEqual(alarm.attendees()[0], attendee);
+ });
+
+ it('setter should add attendees and return this', function () {
+ const alarm = new ICalEvent({ start: new Date() }, new ICalCalendar()).createAlarm({
+ type: ICalAlarmType.email
+ });
+ const foo = alarm.attendees([
+ { name: 'Person A', email: 'a@example.com' },
+ { name: 'Person B', email: 'b@example.com' }
+ ]);
+
+ assert.strictEqual(alarm.attendees().length, 2);
+ assert.deepStrictEqual(foo, alarm);
+ });
+ });
+
+ describe('x()', function () {
+ it('is there', function () {
+ 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(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ a.type(ICalAlarmType.display);
+ a.trigger(120);
+
+ assert.deepStrictEqual(a.toJSON(), {
+ attach: null,
+ attendees: [],
+ description: null,
+ relatesTo: null,
+ interval: null,
+ repeat: null,
+ summary: null,
+ trigger: 120,
+ type: 'display',
+ x: []
+ });
+ });
+
+ it('should be compatible with constructor (type check)', function () {
+ const a = new ICalAlarm({}, new ICalEvent(
+ { start: new Date() },
+ new ICalCalendar()
+ ));
+
+ new ICalAlarm(a.toJSON(), new ICalEvent({ start: new Date() }, new ICalCalendar()));
+ });
+ });
+});
diff --git a/test/attendee.ts b/test/attendee.ts
new file mode 100644
index 000000000..1dbef7290
--- /dev/null
+++ b/test/attendee.ts
@@ -0,0 +1,561 @@
+'use strict';
+
+import assert from 'assert';
+import ICalCalendar from '../src/calendar.js';
+import ICalEvent from '../src/event.js';
+import ICalAttendee, {
+ ICalAttendeeData,
+ ICalAttendeeRole,
+ ICalAttendeeStatus,
+ ICalAttendeeType
+} from '../src/attendee.js';
+
+describe('ical-generator Attendee', function () {
+ describe('constructor()', function () {
+ it('shoud set data from constructor', function () {
+ const data: ICalAttendeeData = {
+ name: 'John Doe',
+ email: 'john@example.org',
+ mailto: 'john+calendar@example.org',
+ sentBy: null,
+ status: ICalAttendeeStatus.ACCEPTED,
+ role: ICalAttendeeRole.REQ,
+ rsvp: false,
+ type: ICalAttendeeType.INDIVIDUAL,
+ delegatedTo: null,
+ delegatedFrom: null,
+ x: []
+ };
+ const event = new ICalAttendee(
+ data,
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.deepStrictEqual(event.toJSON(), data);
+ });
+
+ it('shouldn\'t work without event reference', function () {
+ assert.throws(function () {
+ // @ts-ignore
+ 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(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.strictEqual(a.name(), null);
+
+ a.name('Sebastian');
+ assert.strictEqual(a.name(), 'Sebastian');
+ });
+
+ it('setter should return this', function () {
+ 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(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+
+ a.name('Sebastian');
+ assert.strictEqual(a.name(), 'Sebastian');
+
+ a.name(null);
+ assert.strictEqual(a.name(), null);
+ });
+ });
+
+ describe('email()', function () {
+ it('getter should return value', function () {
+ 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(
+ { 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({ 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(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.strictEqual(a.mailto(), null);
+
+ a.mailto('foo@example.com');
+ assert.strictEqual(a.mailto(), 'foo@example.com');
+ });
+
+ it('setter should return this', function () {
+ 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({ start: new Date() }, new ICalCalendar())
+ );
+ a.mailto('mail2@example2.com');
+ assert.ok(
+ a.toString().indexOf('EMAIL=mail@example.com') > -1 &&
+ a.toString().indexOf('MAILTO:mail2@example2.com') > -1
+ );
+ });
+ });
+
+ describe('sentBy()', function () {
+ it('getter should return value', function () {
+ 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(
+ { 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({ 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(
+ { 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(
+ { 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(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.throws(function () {
+ // @ts-ignore
+ a.role('');
+ }, /Input must be one of the following: CHAIR, REQ-PARTICIPANT, OPT-PARTICIPANT, NON-PARTICIPANT/);
+ });
+
+ it('should throw error when method not allowed', function () {
+ const a = new ICalAttendee(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.throws(function () {
+ // @ts-ignore
+ a.role('COOKING');
+ }, /must be one of the following/);
+ });
+
+ it('should change something', function () {
+ 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(
+ { 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(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+
+ a.rsvp(true);
+ assert.strictEqual(a.rsvp(), true);
+
+ a.rsvp(false);
+ assert.strictEqual(a.rsvp(), false);
+ });
+
+ it('getter should return value', function () {
+ 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);
+ a.rsvp(null);
+ assert.strictEqual(a.rsvp(), null);
+ });
+
+ it('should change something', function () {
+ 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(
+ { 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(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.strictEqual(a.status(), null);
+
+ a.status(ICalAttendeeStatus.ACCEPTED);
+ assert.strictEqual(a.status(), 'ACCEPTED');
+
+ a.status(null);
+ assert.strictEqual(a.status(), null);
+ });
+
+ it('should throw error when method not allowed', function () {
+ const a = new ICalAttendee(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.throws(function () {
+ // @ts-ignore
+ a.status('DRINKING');
+ }, /must be one of the following/);
+ });
+
+ it('should change something', function () {
+ const a = new ICalAttendee(
+ { email: 'mail@example.com', status: ICalAttendeeStatus.DECLINED },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.ok(a.toString().indexOf('DECLINED') > -1);
+ });
+
+ it('should change something too', function () {
+ const a = new ICalAttendee(
+ { email: 'mail@example.com', status: ICalAttendeeStatus.NEEDSACTION },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.ok(a.toString().indexOf('NEEDS-ACTION') > -1);
+ });
+ });
+
+ describe('type()', function () {
+ it('setter should return this', function () {
+ 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(
+ { 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');
+ a.type(null);
+ assert.strictEqual(a.type(), null);
+ });
+
+ it('should throw error when method not allowed', function () {
+ const a = new ICalAttendee(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.throws(function () {
+ // @ts-ignore
+ a.type('DRINKING');
+ }, /must be one of the following/);
+ });
+
+ it('should change something', function () {
+ const a = new ICalAttendee({
+ email: 'mailing-list@example.com',
+ type: ICalAttendeeType.GROUP
+ }, 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(
+ { 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(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.strictEqual(a.delegatedTo(), null);
+
+ a.delegatedTo('foo@example.com');
+ const result = a.delegatedTo();
+ assert.ok(result);
+ assert.strictEqual(result.email(), 'foo@example.com');
+
+ a.delegatedTo(null);
+ assert.strictEqual(a.delegatedTo(), null);
+ });
+
+ it('should change something', function () {
+ const a = new ICalAttendee({
+ email: 'mail@example.com',
+ delegatedTo: 'foo@example.com'
+ }, 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(
+ { 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(
+ { email: 'foo@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ );
+ assert.strictEqual(a.delegatedFrom(), null);
+
+ a.delegatedFrom('foo@example.com');
+ let result = a.delegatedFrom();
+ assert.ok(result);
+ assert.strictEqual(result.email(), 'foo@example.com');
+
+ a.delegatedFrom({
+ name: 'Max Mustermann',
+ email: 'max.mustermann@example.com'
+ });
+ result = a.delegatedFrom();
+ assert.ok(result);
+ assert.strictEqual(result.name(), 'Max Mustermann');
+ assert.strictEqual(result.email(), 'max.mustermann@example.com');
+
+ a.delegatedFrom(null);
+ assert.strictEqual(a.delegatedFrom(), null);
+ });
+
+ it('should change something', function () {
+ const a = new ICalAttendee({
+ email: 'mail@example.com',
+ delegatedFrom: 'foo@example.com'
+ }, 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(
+ { 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({ 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', email: 'zac@example.com' },
+ new ICalEvent({ start: new Date() }, new ICalCalendar())
+ ).delegatesTo({ name: 'Cody', email: 'cody@example.com' });
+
+ assert.strictEqual(attendee.name(), 'Cody');
+ });
+ });
+
+ describe('delegatesFrom()', function () {
+ it('should return a new ICalAttendee instance by default', function () {
+ 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({ 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', 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({ 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'));
+ });
+ });
+
+ describe('toJSON()', function () {
+ it('should work', function () {
+ 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: 'max@example.com',
+ mailto: null,
+ sentBy: null,
+ name: 'Max Mustermann',
+ role: 'REQ-PARTICIPANT',
+ rsvp: null,
+ status: 'DELEGATED',
+ type: null,
+ x: []
+ });
+ });
+
+ it('should be compatible with constructor (type check)', function () {
+ 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
new file mode 100644
index 000000000..8baa5be79
--- /dev/null
+++ b/test/calendar.ts
@@ -0,0 +1,583 @@
+'use strict';
+
+import assert from 'assert';
+import moment from 'moment';
+import ICalCalendar, {ICalCalendarJSONData, ICalCalendarMethod} from '../src/calendar.js';
+import ICalEvent from '../src/event.js';
+import {getVtimezoneComponent} from '@touch4it/ical-timezones';
+
+describe('ical-generator Calendar', function () {
+ describe('constructor()', function () {
+ it('shoud load json export', function () {
+ const data: ICalCalendarJSONData = {
+ prodId: '//sebbo.net//ical-generator//EN',
+ method: ICalCalendarMethod.PUBLISH,
+ name: 'Test Calendar',
+ description: 'Hi, I am the description.',
+ timezone: null,
+ url: 'https://github.com/sebbo2002/ical-generator',
+ source: 'http://example.com/my/original_source.ical',
+ scale: null,
+ ttl: null,
+ events: [],
+ x: []
+ };
+ const cal = new ICalCalendar(data);
+ assert.deepStrictEqual(cal.toJSON(), data);
+ });
+ });
+
+ describe('prodId()', function () {
+ it('getter should return value', function () {
+ const cal = new ICalCalendar();
+ cal.prodId('//loremipsum.de//ical-tests//EN');
+ assert.strictEqual(cal.prodId(), '//loremipsum.de//ical-tests//EN');
+ });
+
+ it('setter should return this', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.prodId('//loremipsum.de//ical-tests//EN'));
+ });
+
+ it('should throw error when not string/object', function () {
+ const cal = new ICalCalendar();
+ assert.throws(function () {
+ // @ts-ignore
+ cal.prodId(256);
+ }, /`prodid`/);
+ });
+
+ it('should throw error when no company given', function () {
+ const cal = new ICalCalendar();
+ assert.throws(function () {
+ // @ts-ignore
+ cal.prodId({
+ product: 'ical-tests'
+ });
+ }, /`prodid\.company`/);
+ });
+
+ it('should throw error when no product given', function () {
+ const cal = new ICalCalendar();
+ assert.throws(function () {
+ // @ts-ignore
+ cal.prodId({
+ company: 'sebbo.net'
+ });
+ }, /`prodid\.product`/);
+ });
+
+ it('should change something #1', function () {
+ const cal = new ICalCalendar().prodId({
+ company: 'loremipsum.com',
+ product: 'awesome-unit-tests'
+ });
+
+ assert.strictEqual(cal.prodId(), '//loremipsum.com//awesome-unit-tests//EN');
+ });
+
+ it('should change something #2', function () {
+ const cal = new ICalCalendar().prodId({
+ company: 'loremipsum.com',
+ product: 'awesome-unit-tests',
+ language: 'DE'
+ });
+
+ assert.strictEqual(cal.prodId(), '//loremipsum.com//awesome-unit-tests//DE');
+ });
+ });
+
+ describe('method()', function () {
+ it('setter should return this', function () {
+ const c = new ICalCalendar();
+ assert.deepStrictEqual(c, c.method(null), 'method(null)');
+ assert.deepStrictEqual(c, c.method(ICalCalendarMethod.PUBLISH), 'method(enum)');
+ });
+
+ it('getter should return value', function () {
+ const c = new ICalCalendar();
+ assert.strictEqual(c.method(), null);
+ c.method(null);
+ assert.strictEqual(c.method(), null);
+ c.method(ICalCalendarMethod.PUBLISH);
+ assert.strictEqual(c.method(), 'PUBLISH');
+ c.method(null);
+ assert.strictEqual(c.method(), null);
+ });
+
+ it('should throw error when method not allowed', function () {
+ const c = new ICalCalendar();
+ assert.throws(function () {
+ // @ts-ignore
+ c.method('KICK ASS');
+ }, /Input must be one of the following: PUBLISH, REQUEST, REPLY, ADD, CANCEL, REFRESH, COUNTER, DECLINECOUNTER/);
+ });
+
+ it('should change something', function () {
+ const c = new ICalCalendar({method: ICalCalendarMethod.PUBLISH});
+ assert.strictEqual(c.method(), 'PUBLISH');
+
+ c.method(ICalCalendarMethod.ADD);
+ assert.strictEqual(c.method(), 'ADD');
+ });
+ });
+
+ describe('name()', function () {
+ it('setter should return this', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.name(null));
+ assert.deepStrictEqual(cal, cal.name('Testevents'));
+ });
+
+ it('getter should return value', function () {
+ const cal = new ICalCalendar();
+ assert.strictEqual(cal.name(), null);
+ cal.name('Testevents');
+ assert.strictEqual(cal.name(), 'Testevents');
+ cal.name(null);
+ assert.strictEqual(cal.name(), null);
+ });
+
+ it('should change something', function () {
+ const cal = new ICalCalendar().name('Testevents');
+ cal.createEvent({
+ start: new Date(),
+ summary: 'Example Event'
+ });
+ assert.strictEqual(cal.name(), 'Testevents');
+ });
+ });
+
+ describe('description()', function () {
+ it('setter should return this', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.description(null));
+ assert.deepStrictEqual(cal, cal.description('Testbeschreibung'));
+ });
+
+ it('getter should return value', function () {
+ const cal = new ICalCalendar();
+ assert.strictEqual(cal.description(), null);
+ cal.description('Testbeschreibung');
+ assert.strictEqual(cal.description(), 'Testbeschreibung');
+ cal.description(null);
+ assert.strictEqual(cal.description(), null);
+ });
+
+ it('should change something', function () {
+ const cal = new ICalCalendar().description('Testbeschreibung');
+ cal.createEvent({
+ start: new Date(),
+ summary: 'Example Event'
+ });
+
+ assert.ok(cal.description(), 'Testbeschreibung');
+ });
+ });
+
+ describe('timezone()', function () {
+ it('setter should return this', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.timezone('Europe/Berlin'));
+ assert.deepStrictEqual(cal, cal.timezone(null));
+ assert.deepStrictEqual(cal, cal.timezone({
+ name: 'Europe/Berlin',
+ generator: getVtimezoneComponent
+ }));
+ });
+
+ it('getter should return value', function () {
+ const cal = new ICalCalendar().timezone('Europe/Berlin');
+ assert.strictEqual(cal.timezone(), 'Europe/Berlin');
+
+ cal.timezone(null);
+ assert.strictEqual(cal.timezone(), null);
+
+ cal.timezone({name: 'Europe/Berlin'});
+ assert.strictEqual(cal.timezone(), 'Europe/Berlin');
+ });
+
+ it('setting UTC should reset timezone as UTC is the default', function () {
+ const cal = new ICalCalendar().timezone('Europe/Berlin');
+ assert.strictEqual(cal.timezone(), 'Europe/Berlin');
+
+ cal.timezone('UTC');
+ assert.strictEqual(cal.timezone(), null);
+ });
+ });
+
+ describe('ttl()', function () {
+ it('setter should return this', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal.ttl(60 * 60 * 24), cal);
+ assert.deepStrictEqual(cal.ttl(moment.duration(2, 'days')), cal);
+ assert.deepStrictEqual(cal.ttl(null), cal);
+ });
+
+ it('getter should return value', function () {
+ const cal = new ICalCalendar();
+ assert.strictEqual(cal.ttl(), null);
+ cal.ttl(86400);
+ assert.strictEqual(cal.ttl(), 86400);
+ });
+
+ it('should change something', function () {
+ const cal = new ICalCalendar().ttl(86400);
+ assert.strictEqual(cal.ttl(), 86400);
+ });
+ });
+
+ describe('source()', function () {
+ it('setter should return this', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.source('http://example.com/my/original_source.ical'));
+ });
+
+ it('getter should return value', function () {
+ const cal = new ICalCalendar();
+ assert.strictEqual(cal.source(), null);
+
+ cal.source('http://example.com/my/original_source.ical');
+ assert.strictEqual(cal.source(), 'http://example.com/my/original_source.ical');
+
+ cal.url(null);
+ assert.strictEqual(cal.url(), null);
+ });
+ });
+
+ describe('url()', function () {
+ it('setter should return this', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.url('https://example.com/calendar.ical'));
+ });
+
+ it('getter should return value', function () {
+ const cal = new ICalCalendar();
+ assert.strictEqual(cal.url(), null);
+ cal.url('https://example.com/calendar.ical');
+ assert.strictEqual(cal.url(), 'https://example.com/calendar.ical');
+ cal.url(null);
+ assert.strictEqual(cal.url(), null);
+ });
+
+ it('should change something', function () {
+ const cal = new ICalCalendar().url('https://example.com/calendar.ical');
+ cal.createEvent({
+ start: new Date(),
+ end: new Date(new Date().getTime() + 3600000),
+ summary: 'Example Event'
+ });
+ assert.ok(cal.url(), 'https://example.com/calendar.ical');
+ });
+ });
+
+ describe('scale()', function () {
+ it('setter should return this', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.scale('gregorian'));
+ });
+
+ it('getter should return value', function () {
+ const cal = new ICalCalendar();
+ assert.strictEqual(cal.scale(), null);
+ cal.scale('GREGORIAN');
+ assert.strictEqual(cal.scale(), 'GREGORIAN');
+ cal.scale(null);
+ assert.strictEqual(cal.scale(), null);
+ });
+
+ it('should change something', function () {
+ const cal = new ICalCalendar().scale('gregorian');
+ cal.createEvent({
+ start: new Date(),
+ end: new Date(new Date().getTime() + 3600000),
+ summary: 'Example Event'
+ });
+ assert.ok(cal.scale(), 'GREGORIAN');
+ });
+ });
+
+ describe('createEvent()', function () {
+ it('should return a ICalEvent instance', function () {
+ const cal = new ICalCalendar();
+ assert.ok(cal.createEvent({ start: new Date() }) instanceof ICalEvent);
+ });
+
+ it('should pass data to instance', function () {
+ const cal = new ICalCalendar();
+ const event = cal.createEvent({
+ start: new Date(),
+ summary: 'Patch-Day'
+ });
+
+ assert.strictEqual(event.summary(), 'Patch-Day');
+ });
+
+ it('should not require optional parameters', function () {
+ assert.doesNotThrow(function () {
+ new ICalCalendar().createEvent({
+ start: new Date(),
+ summary: 'Patch-Day'
+ });
+ }, Error);
+ });
+ });
+
+ describe('events()', function () {
+ it('getter should return an array of events…', function () {
+ const cal = new ICalCalendar();
+ assert.strictEqual(cal.events().length, 0);
+
+ const event = cal.createEvent({ start: new Date() });
+ assert.strictEqual(cal.events().length, 1);
+ assert.deepStrictEqual(cal.events()[0], event);
+ });
+
+ it('setter should add events and return this', function () {
+ const cal = new ICalCalendar();
+ assert.strictEqual(cal.length(), 0);
+
+ 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);
+ });
+ });
+
+ describe('clear()', function () {
+ it('should do the job', function () {
+ const cal = new ICalCalendar();
+ cal.createEvent({ start: new Date() });
+ assert.strictEqual(cal.events().length, 1);
+ assert.deepStrictEqual(cal.clear(), cal);
+ assert.strictEqual(cal.events().length, 0);
+ });
+ });
+
+ describe('x()', function () {
+ it('setter should return this', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.x('X-FOO', 'bar'));
+ });
+
+ it('setter should work with key and value strings', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.x('X-FOO', 'bar'));
+ assert.deepEqual(cal.x(), [{
+ key: 'X-FOO',
+ value: 'bar'
+ }]);
+
+ assert.deepStrictEqual(cal, cal.x('X-LOREM', 'ipsum'));
+ assert.deepEqual(cal.x(), [
+ {key: 'X-FOO', value: 'bar'},
+ {key: 'X-LOREM', value: 'ipsum'}
+ ]);
+
+ assert.throws(() => {
+ cal.x('LOREM', 'ipsum');
+ });
+
+ assert.throws(() => {
+ // @ts-ignore
+ cal.x('X-LOREM', 1337);
+ });
+
+ assert.throws(() => {
+ // @ts-ignore
+ cal.x(5, 'ipsum');
+ });
+ });
+
+ it('setter should work with key and value array', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.x([{key: 'X-FOO', value: 'bar'}]));
+ assert.deepEqual(cal.x(), [{key: 'X-FOO', value: 'bar'}]);
+
+ assert.deepStrictEqual(cal, cal.x([{key: 'X-LOREM', value: 'ipsum'}]));
+ assert.deepEqual(cal.x(), [{key: 'X-LOREM', value: 'ipsum'}]);
+
+ assert.throws(() => {
+ cal.x([{key: 'LOREM', value: 'ipsum'}]);
+ });
+
+ assert.throws(() => {
+ // @ts-ignore
+ cal.x([{key: 'X-LOREM', value: 1337}]);
+ });
+
+ assert.throws(() => {
+ // @ts-ignore
+ cal.x([{key: 5, value: 'ipsum'}]);
+ });
+ });
+
+ it('setter should work with key and value object', function () {
+ const cal = new ICalCalendar();
+ assert.deepStrictEqual(cal, cal.x({'X-FOO': 'bar'}));
+ assert.deepEqual(cal.x(), [{key: 'X-FOO', value: 'bar'}]);
+
+ assert.deepStrictEqual(cal, cal.x({'X-LOREM': 'ipsum'}));
+ assert.deepEqual(cal.x(), [{key: 'X-LOREM', value: 'ipsum'}]);
+
+ assert.throws(() => {
+ cal.x({'LOREM': 'ipsum'});
+ });
+
+ assert.throws(() => {
+ // @ts-ignore
+ cal.x({'X-LOREM': 1337});
+ });
+
+ assert.throws(() => {
+ cal.x({5: 'ipsum'});
+ });
+ });
+
+ it('getter should return value', function () {
+ const cal = new ICalCalendar();
+ assert.deepEqual(cal.x(), []);
+ cal.x('X-FOO', 'BAR');
+ assert.deepEqual(cal.x(), [{key: 'X-FOO', value: 'BAR'}]);
+ cal.x({});
+ assert.deepEqual(cal.x().length, 0);
+ });
+
+ it('should change something', function () {
+ const cal = new ICalCalendar().x('X-FOO', 'BAR');
+ cal.createEvent({
+ start: new Date(),
+ end: new Date(new Date().getTime() + 3600000),
+ summary: 'Example Event'
+ });
+ assert.ok(cal.toString().includes('X-FOO'));
+ });
+ });
+
+ describe('toJSON()', function () {
+ it('should work', function () {
+ const cal = new ICalCalendar();
+ const prodId = cal.toJSON().prodId;
+ assert.strictEqual(typeof prodId, 'string');
+ assert.ok(prodId.length > 0);
+
+ assert.strictEqual(cal.toJSON().events?.length, 0);
+ });
+
+ it('should work with params', function () {
+ const cal = new ICalCalendar();
+ cal.createEvent({
+ start: new Date(),
+ end: new Date(new Date().getTime() + (1000 * 60 * 60)),
+ summary: 'HTTP Calendar Event',
+ x: [
+ {key: 'X-FOO', value: 'bar'},
+ {key: 'X-LOREM', value: 'ipsum'}
+ ]
+ });
+
+ const prodId = cal.toJSON().prodId;
+ assert.strictEqual(typeof prodId, 'string');
+ assert.ok(prodId.length > 0);
+
+ const events = cal.toJSON().events;
+ assert.strictEqual(events?.length, 1);
+ assert.deepEqual(events[0].x, [
+ {'key': 'X-FOO', 'value': 'bar'},
+ {'key': 'X-LOREM', 'value': 'ipsum'}
+ ]);
+ });
+
+ it('should be compatible with constructor (type check)', function () {
+ const a = new ICalCalendar();
+ new ICalCalendar(a.toJSON());
+ });
+ });
+
+ describe('length()', function () {
+ it('should work', function () {
+ const cal = new ICalCalendar();
+ assert.strictEqual(cal.length(), 0);
+
+ cal.createEvent({
+ start: new Date(),
+ end: new Date(new Date().getTime() + 3600000),
+ summary: 'Example Event'
+ });
+ assert.strictEqual(cal.length(), 1);
+ });
+ });
+
+ describe('toString()', function () {
+ it('should include the URL', function () {
+ const cal = new ICalCalendar();
+ cal.url('https://sebbo.net/foo');
+ assert.ok(cal.toString().indexOf('URL:https://sebbo.net/foo') > -1);
+ });
+
+ it('should include the method', function () {
+ const cal = new ICalCalendar();
+ cal.method(ICalCalendarMethod.REFRESH);
+ assert.ok(cal.toString().indexOf('METHOD:REFRESH') > -1);
+ });
+
+ it('should include the name', function () {
+ const cal = new ICalCalendar();
+ cal.name('TEST');
+ assert.ok(cal.toString().indexOf('NAME:TEST') > -1);
+ assert.ok(cal.toString().indexOf('X-WR-CALNAME:TEST') > -1);
+ });
+
+ it('should include the description', function () {
+ const cal = new ICalCalendar();
+ cal.description('TEST');
+ assert.ok(cal.toString().indexOf('X-WR-CALDESC:TEST') > -1);
+ });
+
+ it('should include the timezone', function () {
+ const cal = new ICalCalendar();
+ cal.timezone('TEST');
+ assert.ok(cal.toString().indexOf('TIMEZONE-ID:TEST') > -1);
+ assert.ok(cal.toString().indexOf('X-WR-TIMEZONE:TEST') > -1);
+ });
+
+ it('should include the source', function () {
+ const cal = new ICalCalendar();
+ cal.source('http://foo.bar.example.com/ical.cal');
+ assert.ok(cal.toString().includes('http://foo.bar.example.com/ical.cal'));
+ });
+
+ it('should include VTimezone objects if generator was supplied', function () {
+ const cal = new ICalCalendar();
+ cal.timezone({name: 'Europe/Berlin', generator: getVtimezoneComponent});
+ cal.createEvent({
+ start: new Date(),
+ timezone: 'Europe/London'
+ });
+
+ assert.ok(cal.toString().includes('BEGIN:VTIMEZONE\r\n'), 'BEGIN:VTIMEZONE');
+ assert.ok(cal.toString().includes('TZID:Europe/Berlin\r\n'), 'TZID:Europe/Berlin');
+ assert.ok(cal.toString().includes('TZID:Europe/London\r\n'), 'TZID:Europe/London');
+ });
+ it('should also work if VTimezone was not found', function () {
+ const cal = new ICalCalendar();
+ cal.timezone({name: 'FOO', generator: getVtimezoneComponent});
+ assert.ok(!cal.toString().includes('TZID:Foo\r\n'));
+ });
+ it('should ignore global timezone ids', function () {
+ const cal = new ICalCalendar();
+ cal.timezone({name: '/Europe/Berlin', generator: getVtimezoneComponent});
+ assert.ok(!cal.toString().includes('TZID:/Europe/Berlin\r\n'));
+ });
+
+ it('should include the ttl', function () {
+ const cal = new ICalCalendar();
+ cal.ttl(moment.duration(3, 'days'));
+ assert.ok(cal.toString().indexOf('REFRESH-INTERVAL;VALUE=DURATION:P3D') > -1);
+ assert.ok(cal.toString().indexOf('X-PUBLISHED-TTL:P3D') > -1);
+ });
+ });
+});
diff --git a/test/cases.ts b/test/cases.ts
new file mode 100644
index 000000000..c7010866d
--- /dev/null
+++ b/test/cases.ts
@@ -0,0 +1,292 @@
+'use strict';
+
+import assert from 'assert';
+import { join, dirname } from 'node:path';
+import { promises as fs } from 'node:fs';
+import { fileURLToPath } from 'node:url';
+import ical, { ICalEventTransparency } from '../src/index.js';
+import { ICalCalendarMethod } from '../src/calendar.js';
+import { ICalEventStatus } from '../src/event.js';
+import { ICalEventRepeatingFreq, ICalWeekday } from '../src/types.js';
+import { ICalAttendeeRole, ICalAttendeeStatus, ICalAttendeeType } from '../src/attendee.js';
+import { ICalAlarmType } from '../src/alarm.js';
+import { getVtimezoneComponent } from '@touch4it/ical-timezones';
+
+describe('ical-generator Cases', function () {
+ const resultDir = join(dirname(fileURLToPath(import.meta.url)), 'results');
+ it('case #1', async function () {
+ const cal = ical({prodId: '//sebbo.net//ical-generator.tests//EN'});
+ cal.createEvent({
+ id: '123',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ end: new Date('Fr Oct 04 2013 23:15:00 UTC'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ created: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ lastModified: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'Simple Event'
+ });
+
+ const string = cal.toString();
+ assert.strictEqual(string, await fs.readFile(resultDir + '/generate_01.ics', 'utf8'));
+
+ assert.strictEqual(ical(cal.toJSON()).toString(), string);
+ });
+
+ it('case #2', async function () {
+ const cal = ical({prodId: '//sebbo.net//ical-generator.tests//EN'});
+ cal.createEvent({
+ id: '123',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ end: new Date('Fr Oct 04 2013 23:15:00 UTC'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'Sample Event',
+ location: 'localhost',
+ transparency: ICalEventTransparency.OPAQUE,
+ description: {
+ plain: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\nbeep boop',
+ html: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\nbeep boop
'
+ }
+ });
+
+ const string = cal.toString();
+ assert.strictEqual(string, await fs.readFile(resultDir + '/generate_02.ics', 'utf8'));
+ assert.strictEqual(ical(cal.toJSON()).toString(), string);
+ });
+
+ it('case #3', async function () {
+ const cal = ical({
+ method: ICalCalendarMethod.ADD,
+ prodId: '//sebbo.net//ical-generator.tests//EN'
+ });
+ cal.createEvent({
+ id: '123',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ end: new Date('Fr Oct 06 2013 23:15:00 UTC'),
+ allDay: true,
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'Sample Event',
+ location: {
+ title: 'Apple Store Kurfürstendamm',
+ address: 'Kurfürstendamm 26, 10719 Berlin, Deutschland',
+ radius: 141.1751386318387,
+ geo: {lat: 52.503630, lon: 13.328650}
+ },
+ organizer: 'Sebastian Pekarek ',
+ status: ICalEventStatus.CONFIRMED,
+ categories: [{name: 'WORK'}],
+ url: 'http://sebbo.net/',
+ attachments: [
+ 'https://files.sebbo.net/calendar/attachments/foo'
+ ]
+ });
+
+ const string = cal.toString();
+ assert.strictEqual(string, await fs.readFile(resultDir + '/generate_03.ics', 'utf8'), 'toString');
+ assert.strictEqual(ical(cal.toJSON()).toString(), string, 'toJSON / toString()');
+ });
+
+ it('case #4 (repeating)', async function () {
+ const cal = ical({prodId: '//sebbo.net//ical-generator.tests//EN'});
+ cal.timezone({name: null, generator: getVtimezoneComponent});
+ cal.events([
+ {
+ id: '1',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ end: new Date('Fr Oct 06 2013 23:15:00 UTC'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'repeating by month',
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ exclude: new Date('Fr Oct 06 2013 23:15:00 UTC')
+ }
+ },
+ {
+ id: '2',
+ start: new Date('Fr Oct 04 2013 22:39:30'),
+ end: new Date('Fr Oct 06 2013 23:15:00'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ timezone: 'Europe/Berlin',
+ summary: 'repeating by day, twice',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ count: 2
+ }
+ },
+ {
+ id: '3',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ end: new Date('Fr Oct 06 2013 23:15:00 UTC'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'repeating by 3 weeks, until 2014',
+ repeating: {
+ freq: ICalEventRepeatingFreq.WEEKLY,
+ interval: 3,
+ until: new Date('We Jan 01 2014 00:00:00 UTC')
+ }
+ }
+ ]);
+
+ assert.strictEqual(cal.toString(), await fs.readFile(resultDir + '/generate_04.ics', 'utf8'), 'first check');
+
+ // Wount be same, as reference to VTimezone generator is not exported
+ // assert.strictEqual(ical(cal.toJSON()).toString(), string);
+
+ cal.timezone(null);
+ assert.strictEqual(ical(cal.toJSON()).toString(), cal.toString(), 'second check');
+ });
+
+ it('case #5 (floating)', async function () {
+ const cal = ical({prodId: '//sebbo.net//ical-generator.tests//EN'});
+ cal.createEvent({
+ id: '1',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ end: new Date('Fr Oct 06 2013 23:15:00 UTC'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'floating',
+ floating: true
+ });
+
+ const string = cal.toString();
+ assert.strictEqual(string, await fs.readFile(resultDir + '/generate_05.ics', 'utf8'));
+ assert.strictEqual(ical(cal.toJSON()).toString(), string);
+ });
+
+ it('case #6 (attendee with simple delegation and alarm)', async function () {
+ const cal = ical({prodId: '//sebbo.net//ical-generator.tests//EN', method: ICalCalendarMethod.PUBLISH});
+ cal.createEvent({
+ id: '123',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ allDay: true,
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'Sample Event',
+ organizer: 'Sebastian Pekarek ',
+ attendees: [
+ {
+ name: 'Smith, Matt; ("Sales")',
+ email: 'matt@example.com',
+ delegatesTo: {
+ name: 'John',
+ email: 'john@example.com',
+ status: ICalAttendeeStatus.ACCEPTED
+ }
+ }
+ ],
+ alarms: [
+ {
+ type: ICalAlarmType.display,
+ trigger: 60 * 10,
+ repeat: {
+ times: 2,
+ interval: 60
+ }
+ },
+ {
+ type: ICalAlarmType.display,
+ trigger: 60 * 60,
+ description: 'I\'m a reminder :)'
+ }
+ ],
+ status: ICalEventStatus.CONFIRMED,
+ url: 'http://sebbo.net/'
+ });
+
+ const string = cal.toString();
+ assert.strictEqual(string, await fs.readFile(resultDir + '/generate_06.ics', 'utf8'));
+ assert.strictEqual(ical(cal.toJSON()).toString(), string);
+ });
+
+ it('case #7 (repeating: byDay, byMonth, byMonthDay)', async function () {
+ const cal = ical({prodId: '//sebbo.net//ical-generator.tests//EN'});
+ cal.events([
+ {
+ id: '1',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ end: new Date('Fr Oct 06 2013 23:15:00 UTC'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'repeating by month',
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ byMonth: [1, 4, 7, 10]
+ }
+ },
+ {
+ id: '2',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'repeating on Mo/We/Fr, twice',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ count: 2,
+ byDay: [ICalWeekday.MO, ICalWeekday.WE, ICalWeekday.FR]
+ }
+ },
+ {
+ id: '3',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ end: new Date('Fr Oct 06 2013 23:15:00 UTC'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'repeating on 1st and 15th',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 1,
+ byMonthDay: [1, 15]
+ }
+ }
+ ]);
+
+ const string = cal.toString();
+ assert.strictEqual(string, await fs.readFile(resultDir + '/generate_07.ics', 'utf8'));
+ assert.strictEqual(ical(cal.toJSON()).toString(), string);
+ });
+
+ it('case #8', async function () {
+ const cal = ical({prodId: '//sebbo.net//ical-generator.tests//EN'});
+ cal.createEvent({
+ id: '123',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ end: new Date('Fr Oct 04 2013 23:15:00 UTC'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ created: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ lastModified: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'Simple Event',
+ attendees: [{
+ type: ICalAttendeeType.INDIVIDUAL,
+ role: ICalAttendeeRole.REQ,
+ status: ICalAttendeeStatus.NEEDSACTION,
+ email: 'mail@example.com',
+ rsvp: true
+ }]
+ });
+
+ const string = cal.toString();
+ assert.strictEqual(string, await fs.readFile(resultDir + '/generate_08.ics', 'utf8'));
+ assert.strictEqual(ical(cal.toJSON()).toString(), string);
+ });
+
+ it('case #9 (organizer with mailto)', async function () {
+ const cal = ical({method: ICalCalendarMethod.REQUEST, prodId: '//sebbo.net//ical-generator.tests//EN'});
+ cal.createEvent({
+ id: '123',
+ start: new Date('Fr Oct 04 2013 22:39:30 UTC'),
+ end: new Date('Fr Oct 04 2013 23:15:00 UTC'),
+ stamp: new Date('Fr Oct 04 2013 23:34:53 UTC'),
+ summary: 'Sample Event',
+ organizer: {
+ name: 'Sebastian Pekarek',
+ email: 'mail@sebbo.net',
+ mailto: 'mail2@example2.com'
+ },
+ attendees: [{
+ type: ICalAttendeeType.INDIVIDUAL,
+ role: ICalAttendeeRole.REQ,
+ status: ICalAttendeeStatus.NEEDSACTION,
+ email: 'mail@example.com',
+ rsvp: true
+ }]
+ });
+
+ const string = cal.toString();
+ assert.strictEqual(string, await fs.readFile(resultDir + '/generate_09.ics', 'utf8'), 'toString');
+ assert.strictEqual(ical(cal.toJSON()).toString(), string, 'toJSON / toString()');
+ });
+});
diff --git a/test/category.ts b/test/category.ts
new file mode 100644
index 000000000..4c2dc51eb
--- /dev/null
+++ b/test/category.ts
@@ -0,0 +1,52 @@
+'use strict';
+
+import assert from 'assert';
+import ICalCategory from '../src/category.js';
+
+describe('ical-generator Category', function () {
+ describe('constructor()', function () {
+ it('should ignore unknown data attributes', function () {
+ const a = new ICalCategory({
+ // @ts-ignore
+ unknown: true,
+ name: 'FOO'
+ });
+
+ 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({ name: 'foo' });
+ assert.deepStrictEqual(c, c.name('FOO'));
+ });
+
+ it('getter should return value', function () {
+ const c = new ICalCategory({ name: 'foo' });
+ assert.strictEqual(c.name(), 'foo');
+
+ c.name('HELLO-WORLD');
+ assert.strictEqual(c.name(), 'HELLO-WORLD');
+ });
+
+ it('should change something', function () {
+ const c = new ICalCategory({name: 'BANANA'});
+ assert.ok(c.toString().includes('BANANA'));
+ });
+ });
+
+ describe('toJSON()', function () {
+ it('should contain valued previously set', function () {
+ const c = new ICalCategory({name: 'FOOBAR'});
+ assert.deepStrictEqual(c.toJSON(), {name: 'FOOBAR'});
+ });
+ });
+});
diff --git a/test/event.ts b/test/event.ts
new file mode 100644
index 000000000..4a7208519
--- /dev/null
+++ b/test/event.ts
@@ -0,0 +1,2074 @@
+'use strict';
+
+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 ICalAttendee from '../src/attendee.js';
+import ICalAlarm, { ICalAlarmType } from '../src/alarm.js';
+import ICalCategory from '../src/category.js';
+import { isRRule } from '../src/tools.js';
+import rrule from 'rrule';
+import {DateTime} from 'luxon';
+
+describe('ical-generator Event', function () {
+ describe('constructor()', function () {
+ it('shoud set data from constructor', function () {
+ const data: ICalEventData = {
+ id: 'FOO',
+ sequence: 1,
+ start: new Date().toJSON(),
+ end: new Date().toJSON(),
+ recurrenceId: new Date().toJSON(),
+ timezone: 'Europe/Berlin',
+ stamp: new Date().toJSON(),
+ allDay: true,
+ floating: false,
+ repeating: null,
+ summary: 'Hello.',
+ location: null,
+ description: null,
+ organizer: null,
+ attendees: [],
+ alarms: [],
+ categories: [],
+ status: null,
+ busystatus: ICalEventBusyStatus.BUSY,
+ priority: 5,
+ url: 'https://github.com/sebbo2002/ical-generator',
+ attachments: [
+ 'https://files.sebbo.net/calendar/attachments/foo'
+ ],
+ transparency: ICalEventTransparency.TRANSPARENT,
+ created: new Date().toJSON(),
+ lastModified: new Date().toJSON(),
+ class: null,
+ x: []
+ };
+ const event = new ICalEvent(data, new ICalCalendar());
+ assert.deepStrictEqual(event.toJSON(), data);
+ });
+
+ it('shouldn\'t work without calendar reference', function () {
+ assert.throws(function () {
+ // @ts-ignore
+ new ICalEvent({summary: 'Testevent'}, null);
+ }, /`calendar`/);
+ });
+ });
+
+ describe('id()', function () {
+ it('setter should return this', function () {
+ 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({ start: new Date() }, new ICalCalendar()).id(512);
+ assert.strictEqual(event.id(), '512');
+
+ event.id('xyz');
+ assert.strictEqual(event.id(), 'xyz');
+ });
+ });
+
+ describe('uid()', function () {
+ it('setter should return this', function () {
+ 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({ start: new Date() }, new ICalCalendar()).uid(512);
+ assert.strictEqual(event.uid(), '512');
+
+ event.id('xyz');
+ assert.strictEqual(event.uid(), 'xyz');
+ });
+ });
+
+ describe('sequence()', function () {
+ it('setter should return this', function () {
+ 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(
+ { 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ event.sequence('hello');
+ }, /`sequence`/);
+ });
+
+ it('setter should work with 0', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar()).sequence(12);
+ assert.strictEqual(event.sequence(), 12);
+
+ event.sequence(0);
+ assert.strictEqual(event.sequence(), 0);
+ });
+ });
+
+ describe('start()', function () {
+ it('getter should return value', function () {
+ const now = moment();
+ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ event.start(3);
+ }, /`start`/, 'Number');
+ assert.throws(function () {
+ // @ts-ignore
+ event.start(null);
+ }, /`start`/, 'null');
+ assert.throws(function () {
+ // @ts-ignore
+ event.start(NaN);
+ }, /`start`/, 'NaN');
+ assert.throws(function () {
+ event.start(new Date('hallo'));
+ }, /`start`/, 'Invalid Date');
+ });
+
+ it('setter should flip start and end if necessary', function () {
+ const start = moment().add(5, 'minutes');
+ const end = moment();
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar())
+ .end(end)
+ .start(start);
+
+ assert.deepStrictEqual(event.start(), end);
+ assert.deepStrictEqual(event.end(), start);
+ });
+
+ it('setter should return this', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(event, event.start(moment()));
+ assert.deepStrictEqual(event, event.start(new Date()));
+ });
+ });
+
+ describe('end()', function () {
+ it('getter should return value', function () {
+ const now = moment();
+ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ event.end(3);
+ }, /`end`/, 'Number');
+ assert.throws(function () {
+ // @ts-ignore
+ event.end(NaN);
+ }, /`end`/, 'NaN');
+ assert.throws(function () {
+ event.end(new Date('hallo'));
+ }, /`end`/, 'Invalid Date');
+ });
+
+ it('setter should flip start and end if necessary', function () {
+ const start = moment().add(5, 'minutes');
+ const end = moment();
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar())
+ .start(start)
+ .end(end);
+
+ assert.deepStrictEqual(event.start(), end);
+ assert.deepStrictEqual(event.end(), start);
+ });
+
+ it('setter should return this', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(event, event.end(moment()));
+ assert.deepStrictEqual(event, event.end(new Date()));
+ });
+ });
+
+ describe('recurrenceId()', function () {
+ it('getter should return value', function () {
+ const now = moment();
+ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ event.recurrenceId(3);
+ }, /`recurrenceId`/, 'Number');
+ assert.throws(function () {
+ // @ts-ignore
+ event.recurrenceId(NaN);
+ }, /`recurrenceId`/, 'NaN');
+ assert.throws(function () {
+ event.recurrenceId(new Date('hallo'));
+ }, /`recurrenceId`/, 'Invalid Date');
+ });
+
+ it('setter should return this', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(event, event.recurrenceId(moment()));
+ assert.deepStrictEqual(event, event.recurrenceId(new Date()));
+ });
+ });
+
+ describe('timezone()', function () {
+ it('getter should return value', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar())
+ .timezone('Europe/Berlin');
+
+ assert.strictEqual(e.timezone(), 'Europe/Berlin');
+ });
+
+ it('getter should inherit from calendar', function () {
+ const cal = new ICalCalendar();
+ const e = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, cal);
+
+ assert.strictEqual(cal.timezone(), null);
+ assert.strictEqual(e.timezone(), null);
+
+ cal.timezone('Europe/London');
+ assert.strictEqual(cal.timezone(), 'Europe/London');
+ assert.strictEqual(e.timezone(), 'Europe/London');
+
+ e.timezone('Europe/Berlin');
+ assert.strictEqual(cal.timezone(), 'Europe/London');
+ assert.strictEqual(e.timezone(), 'Europe/Berlin');
+
+ cal.timezone(null);
+ assert.strictEqual(cal.timezone(), null);
+ assert.strictEqual(e.timezone(), 'Europe/Berlin');
+
+ e.timezone(null);
+ assert.strictEqual(cal.timezone(), null);
+ assert.strictEqual(e.timezone(), null);
+ });
+
+ it('setter should return this', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.timezone('Europe/Berlin'));
+ });
+
+ it('should update timezone', function () {
+ const e = new ICalEvent({
+ start: moment(),
+ end: new Date(new Date().getTime() + 3600000),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ e.timezone('Europe/London');
+ assert.strictEqual(e.timezone(), 'Europe/London');
+ });
+
+ it('should disable floating when truthy', function () {
+ const e = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ e.floating(true);
+ e.timezone('Europe/London');
+ assert.strictEqual(e.floating(), false);
+ });
+
+ it('should not disable floating when falsy', function () {
+ const e = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ e.floating(true);
+ e.timezone(null);
+ assert.strictEqual(e.floating(), true);
+ });
+
+ it('setting UTC should reset timezone as UTC is the default', function () {
+ const e = new ICalEvent({
+ start: moment(),
+ timezone: 'Europe/Berlin',
+ summary: 'Example Event'
+ }, new ICalCalendar());
+ assert.strictEqual(e.timezone(), 'Europe/Berlin');
+
+ e.timezone('UTC');
+ assert.strictEqual(e.timezone(), null);
+ });
+ });
+
+ describe('stamp()', function () {
+ it('getter should return value', function () {
+ const now = moment().add(1, 'day');
+ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ event.stamp(3);
+ }, /`stamp`/, 'Number');
+ assert.throws(function () {
+ // @ts-ignore
+ event.stamp(null);
+ }, /`stamp`/, 'null');
+ assert.throws(function () {
+ // @ts-ignore
+ event.stamp(NaN);
+ }, /`stamp`/, 'NaN');
+ assert.throws(function () {
+ event.stamp(new Date('hallo'));
+ }, /`stamp`/, 'Invalid Date');
+ });
+
+ it('setter should return this', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.stamp(new Date()));
+ });
+ });
+
+ describe('timestamp()', function () {
+ it('getter should return value', function () {
+ const now = moment().add(1, 'day');
+ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ event.timestamp(3);
+ }, /`stamp`/, 'Number');
+ assert.throws(function () {
+ // @ts-ignore
+ event.timestamp(null);
+ }, /`stamp`/, 'null');
+ assert.throws(function () {
+ // @ts-ignore
+ event.timestamp(NaN);
+ }, /`stamp`/, 'NaN');
+ assert.throws(function () {
+ event.timestamp(new Date('hallo'));
+ }, /`stamp`/, 'Invalid Date');
+ });
+
+ it('setter should return this', function () {
+ 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({ start: new Date() }, new ICalCalendar());
+ e.allDay(true);
+ assert.strictEqual(e.allDay(), true);
+ });
+
+ it('setter should return this', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.allDay(true));
+ });
+
+ it('should change something', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.allDay(true);
+ assert.strictEqual(event.allDay(), true);
+ });
+ });
+
+ describe('floating()', function () {
+ it('getter should return value', function () {
+ 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({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.floating(false));
+ assert.deepStrictEqual(e, e.floating(true));
+ });
+
+ it('should update floating', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.floating(true);
+ assert.strictEqual(event.floating(), true);
+ });
+
+ it('should remove timezone when truthy', function () {
+ const e = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ e.timezone('Europe/London');
+ e.floating(true);
+ assert.strictEqual(e.timezone(), null);
+ });
+
+ it('should not remove timezone when falsy', function () {
+ const e = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ e.timezone('Europe/London');
+ e.floating(false);
+ assert.strictEqual(e.timezone(), 'Europe/London');
+ });
+ });
+
+ describe('repeating()', function () {
+ it('getter should return value', function () {
+ const options = {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ count: 5,
+ interval: 2,
+ until: moment(),
+ exclude: [moment()]
+ };
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e.repeating(), null);
+
+ e.repeating(options);
+ assert.strictEqual(
+ JSON.stringify(e.repeating(), null, ' '),
+ JSON.stringify(options, null, ' ')
+ );
+
+ e.repeating(null);
+ assert.deepStrictEqual(e.repeating(), null);
+ });
+
+ it('setter should handle null', function () {
+ 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({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.repeating(null), 'repeating(null)');
+ assert.deepStrictEqual(e, e.repeating({
+ freq: ICalEventRepeatingFreq.MONTHLY
+ }), 'repeating({freq: \'MONTHLY\'})');
+ });
+
+ it('setter should throw error when repeating without freq', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+
+ // @ts-ignore
+ repeating: {}
+ }, new ICalCalendar());
+ }, /Input must be one of the following: SECONDLY, MINUTELY, HOURLY, DAILY, WEEKLY, MONTHLY, YEARLY/);
+ });
+
+ it('setter should throw error when repeating when freq is not allowed', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ // @ts-ignore
+ freq: 'hello'
+ }
+ }, new ICalCalendar());
+ }, /must be one of the following/);
+ });
+
+ it('setter should update freq', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+
+ e.repeating({freq: ICalEventRepeatingFreq.MONTHLY});
+
+ const result = e.repeating();
+ assert.ok(result);
+ assert.ok(!isRRule(result));
+ assert.ok(typeof result !== 'string');
+
+ // @ts-ignore
+ assert.strictEqual(result.freq, 'MONTHLY');
+ });
+
+ it('setter should throw error when repeating.count is not a number', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ count: Infinity
+ }
+ }, new ICalCalendar());
+ }, /`repeating.count` must be a finite number!/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ // @ts-ignore
+ count: 'abc'
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.count` must be a finite number!/);
+ });
+
+ it('setter should update count', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+
+ e.repeating({freq: ICalEventRepeatingFreq.MONTHLY, count: 5});
+
+ const result = e.repeating();
+ assert.ok(result);
+ assert.ok(!isRRule(result));
+ assert.ok(typeof result !== 'string');
+
+ // @ts-ignore
+ assert.strictEqual(result.count, 5);
+ });
+
+ it('should throw error when repeating.interval is not a number', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: Infinity
+ }
+ }, new ICalCalendar());
+ }, /`repeating.interval` must be a finite number!/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ // @ts-ignore
+ interval: 'abc'
+ }
+ }, new ICalCalendar());
+ }, /`repeating.interval` must be a finite number!/);
+ });
+
+ it('setter should update interval', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+
+ e.repeating({freq: ICalEventRepeatingFreq.MONTHLY, interval: 5});
+
+ const result = e.repeating();
+ assert.ok(result);
+ assert.ok(!isRRule(result));
+ assert.ok(typeof result !== 'string');
+
+ // @ts-ignore
+ assert.strictEqual(result.interval, 5);
+ });
+
+ it('should throw error when repeating.until is not a date', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ // @ts-ignore
+ until: null
+ }
+ }, new ICalCalendar());
+ }, /Error: `repeating\.until` has to be a valid date!/);
+ });
+
+ it('setter should parse repeating.until string if required', function () {
+ 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);
+ 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({ 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);
+ 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({ 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);
+ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ event.repeating({freq: ICalEventRepeatingFreq.MONTHLY, until: 3});
+ }, /`repeating.until`/, 'Number');
+ assert.throws(function () {
+ // @ts-ignore
+ event.repeating({freq: ICalEventRepeatingFreq.MONTHLY, until: null});
+ }, /`repeating.until`/, 'null');
+ assert.throws(function () {
+ // @ts-ignore
+ event.repeating({freq: ICalEventRepeatingFreq.MONTHLY, until: NaN});
+ }, /`repeating.until`/, 'NaN');
+ assert.throws(function () {
+ event.repeating({freq: ICalEventRepeatingFreq.MONTHLY, until: new Date('foo')});
+ }, /`repeating.until`/, 'Invalid Date');
+ });
+
+ it('should throw error when repeating.byDay is not valid', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ // @ts-ignore
+ byDay: 'FOO'
+ }
+ }, new ICalCalendar());
+ }, /Input must be one of the following: SU, MO, TU, WE, TH, FR, SA/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ // @ts-ignore
+ byDay: ['SU', 'BAR', 'th']
+ }
+ }, new ICalCalendar());
+ }, /Input must be one of the following: SU, MO, TU, WE, TH, FR, SA/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ // @ts-ignore
+ byDay: ['SU', Infinity, 'th']
+ }
+ }, new ICalCalendar());
+ }, /Input must be one of the following: SU, MO, TU, WE, TH, FR, SA/);
+ });
+
+ it('setter should update repeating.byDay', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+
+ e.repeating({
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ byDay: [ICalWeekday.SU, ICalWeekday.WE, ICalWeekday.TH]
+ });
+
+ const result = e.repeating();
+ assert.ok(result);
+ assert.ok(!isRRule(result));
+ assert.ok(typeof result !== 'string');
+
+ // @ts-ignore
+ assert.deepStrictEqual(result.byDay, ['SU', 'WE', 'TH']);
+ });
+
+ it('should throw error when repeating.byMonth is not valid', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ // @ts-ignore
+ byMonth: 'FOO'
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.byMonth` contains invalid value `FOO`/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ byMonth: [1, 14, 7]
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.byMonth` contains invalid value `14`/);
+ });
+
+ it('setter should update repeating.byMonth', function () {
+ 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);
+ assert.ok(!isRRule(result));
+ assert.ok(typeof result !== 'string');
+
+ // @ts-ignore
+ assert.deepStrictEqual(result.byMonth, [1, 12, 7]);
+ });
+
+ it('should throw error when repeating.byMonthDay is not valid', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ // @ts-ignore
+ byMonthDay: 'FOO'
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.byMonthDay` contains invalid value `FOO`/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ byMonthDay: [1, 32, -15]
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.byMonthDay` contains invalid value `32`/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ byMonthDay: [-1, -32, 15]
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.byMonthDay` contains invalid value `-32`/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ byMonthDay: [1, 0, 15]
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.byMonthDay` contains invalid value `0`/);
+ });
+
+ it('setter should update repeating.byMonthDay', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+
+ e.repeating({freq: ICalEventRepeatingFreq.MONTHLY, byMonthDay: [1, 15]});
+
+ const result = e.repeating();
+ assert.ok(result);
+ assert.ok(!isRRule(result));
+ assert.ok(typeof result !== 'string');
+
+ // @ts-ignore
+ assert.deepStrictEqual(result.byMonthDay, [1, 15]);
+ });
+
+ it('should throw error when repeating.bySetPos is not valid', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ interval: 2,
+ byDay: [ICalWeekday.SU],
+ bySetPos: [367]
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.bySetPos` contains invalid value `367`/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ interval: 2,
+ byDay: [ICalWeekday.SU],
+ bySetPos: [-367]
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.bySetPos` contains invalid value `-367`/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ interval: 2,
+ byDay: [ICalWeekday.SU],
+ bySetPos: [0]
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.bySetPos` contains invalid value `0`/);
+
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ interval: 2,
+ byDay: [ICalWeekday.SU],
+ // @ts-ignore
+ bySetPos: ['FOO']
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.bySetPos` contains invalid value `FOO`/);
+ });
+
+ it('should throw error when repeating.byDay is not present with repeating.bySetPos', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ interval: 2,
+ bySetPos: 6
+ }
+ }, new ICalCalendar());
+ }, /`repeating\.bySetPos` must be used along with `repeating\.byDay`/);
+ });
+
+ it('setter should update repeating.bySetPos', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+
+ e.repeating({
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ byDay: [ICalWeekday.SU],
+ bySetPos: [2]
+ });
+
+ const result = e.repeating();
+ 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);
+ });
+
+ it('should throw error when repeating.exclude is not valid', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ byDay: [ICalWeekday.SU],
+ exclude: new Date('FOO')
+ }
+ }, new ICalCalendar());
+ }, /has to be a valid date/);
+ });
+
+ it('should throw error when repeating.exclude is not valid (should throw on first err value', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ byDay: [ICalWeekday.SU],
+ exclude: [moment(), new Date('BAR'), 'FOO']
+ }
+ }, new ICalCalendar());
+ }, /has to be a valid date/);
+ });
+
+ it('should throw error when repeating.exclude is not a valid type', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ end: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ byDay: [ICalWeekday.SU],
+ // @ts-ignore
+ exclude: 42
+ }
+ }, new ICalCalendar());
+ }, /`repeating.exclude\[0\]` has to be a valid date!/);
+ });
+
+ it('setter should update repeating.exclude', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ const date = moment().add(1, 'week');
+
+ e.repeating({
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ exclude: [
+ date.toJSON(),
+ date.toDate(),
+ date
+ ]
+ });
+
+ const result = e.repeating();
+ 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');
+ });
+
+ it('should throw error when repeating.startOfWeek is not valid', function () {
+ assert.throws(function () {
+ new ICalEvent({
+ start: moment(),
+ summary: 'test',
+ repeating: {
+ freq: ICalEventRepeatingFreq.DAILY,
+ interval: 2,
+ // @ts-ignore
+ startOfWeek: 'FOO'
+ }
+ }, new ICalCalendar());
+ }, /Input must be one of the following: SU, MO, TU, WE, TH, FR, SA/);
+ });
+
+ it('setter should update repeating.wkst', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+
+ e.repeating({
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ startOfWeek: ICalWeekday.SU
+ });
+
+ const result = e.repeating();
+ assert.ok(result);
+ assert.ok(!isRRule(result));
+ assert.ok(typeof result !== 'string');
+
+ // @ts-ignore
+ assert.deepStrictEqual(result.startOfWeek, 'SU');
+ });
+
+ it('should support RRules', function () {
+ const start = new Date(Date.UTC(2012, 1, 1, 10, 30));
+ const e = new ICalEvent({start}, new ICalCalendar());
+ const rule = new rrule.RRule({
+ freq: rrule.RRule.WEEKLY,
+ interval: 5,
+ byweekday: [rrule.RRule.MO, rrule.RRule.FR],
+ dtstart: start,
+ until: new Date(Date.UTC(2012, 12, 31))
+ });
+
+ e.repeating(rule);
+
+ const result = e.repeating();
+ assert.ok(isRRule(result));
+ assert.deepStrictEqual(result, rule);
+ assert.ok(e.toString().includes('RRULE:FREQ=WEEKLY;INTERVAL=5;BYDAY=MO,FR;UNTIL=20130131T000000Z'));
+ });
+ it('should support strings', function () {
+ const e = new ICalEvent({start: new Date()}, new ICalCalendar());
+ const rule = 'RRULE:FREQ=WEEKLY;INTERVAL=5;BYDAY=MO,FR;UNTIL=20130131T000000Z';
+ e.repeating(rule);
+
+ const result = e.repeating();
+ assert.deepStrictEqual(result, rule);
+ assert.ok(e.toString().includes('RRULE:FREQ=WEEKLY;INTERVAL=5;BYDAY=MO,FR;UNTIL=20130131T000000Z'));
+ });
+ it('should add RRULE: prefix for single line string if not already there', function () {
+ const e = new ICalEvent({start: new Date()}, new ICalCalendar());
+ const rule = 'FREQ=WEEKLY;INTERVAL=5;BYDAY=MO,FR;UNTIL=20130131T000000Z';
+ e.repeating(rule);
+
+ const result = e.repeating();
+ assert.deepStrictEqual(result, rule);
+ assert.ok(e.toString().includes('RRULE:FREQ=WEEKLY;INTERVAL=5;BYDAY=MO,FR;UNTIL=20130131T000000Z'));
+ });
+ });
+
+ describe('summary()', function () {
+ it('getter should return value', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(e.summary(), '');
+
+ e.summary('Testevent');
+ assert.strictEqual(e.summary(), 'Testevent');
+ });
+
+ it('setter should return this', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.summary(''));
+ assert.deepStrictEqual(e, e.summary('Testevent'));
+ });
+
+ it('should update summary', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.summary('Example Event II');
+ assert.strictEqual(event.summary(), 'Example Event II');
+
+ event.summary('');
+ assert.strictEqual(event.summary(), '');
+ });
+ });
+
+ describe('location()', function () {
+ it('getter should return value (string)', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(e.location(), null);
+
+ e.location('Test Location');
+ assert.deepStrictEqual(e.location(), {title: 'Test Location'});
+
+ e.location(null);
+ assert.strictEqual(e.location(), null);
+ });
+
+ it('getter should return value (obj)', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(e.location(), null);
+
+ e.location({
+ title: 'Foo',
+ geo: {lat: 44.5, lon: -3.4}
+ });
+
+ const location = e.location();
+ assert.ok(location);
+ assert.ok('title' in location);
+ assert.deepStrictEqual(location?.title, 'Foo');
+ assert.deepStrictEqual(location?.geo, {lat: 44.5, lon: -3.4});
+
+ e.location(null);
+ assert.strictEqual(e.location(), null);
+ });
+
+ it('setter should return this', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.location(null));
+ assert.deepStrictEqual(e, e.location('Test Location'));
+ });
+
+ it('should update location', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.location('Europa-Park');
+
+ const location = event.location();
+ assert.ok(location);
+ assert.ok('title' in location);
+ assert.strictEqual(location?.title, 'Europa-Park');
+ });
+
+ it('should throw error when location is not valid', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ // @ts-ignore
+ assert.throws(() => event.location({geo: 3}), /`location` isn't formatted correctly/i);
+
+ // @ts-ignore
+ assert.throws(() => event.location({}), /`location` isn't formatted correctly/i);
+ });
+ });
+
+ describe('description()', function () {
+ it('getter should return value', function () {
+ 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…');
+ assert.deepStrictEqual(e.description(), {
+ plain: 'I don\'t need a description. I\'m far to awesome for descriptions…'
+ });
+
+ e.description({
+ plain: 'I don\'t need a description. I\'m far to awesome for descriptions…',
+ html: 'I don\'t need a description. I\'m far to awesome for descriptions…'
+ });
+ assert.deepStrictEqual(e.description(), {
+ plain: 'I don\'t need a description. I\'m far to awesome for descriptions…',
+ html: 'I don\'t need a description. I\'m far to awesome for descriptions…'
+ });
+
+ e.description(null);
+ assert.strictEqual(e.description(), null);
+ });
+
+ it('setter should return this', function () {
+ 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…'));
+ });
+
+ it('should change something', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.description('Well. But other people need descriptions… :/');
+ assert.deepStrictEqual(event.description(), {
+ plain: 'Well. But other people need descriptions… :/'
+ });
+
+ event.description({
+ plain: 'I am uncool text.',
+ html: 'I\'m the best HTML tag in this universe! '
+ });
+ assert.ok(event.toString().includes('I\'m the best HTML tag in this universe! '));
+ });
+ });
+
+ describe('organizer()', function () {
+ it('getter should return value', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(e.organizer(), null);
+
+ e.organizer(null);
+ assert.strictEqual(e.organizer(), null);
+
+ e.organizer({name: 'Sebastian Pekarek', email: 'mail@example.com'});
+ assert.strictEqual('Sebastian Pekarek', e.organizer()?.name);
+ assert.strictEqual('mail@example.com', e.organizer()?.email);
+
+ e.organizer({name: 'Sebastian Pekarek', email: 'mail@example.com', mailto: 'mail2@example2.com'});
+ assert.strictEqual('Sebastian Pekarek', e.organizer()?.name);
+ assert.strictEqual('mail@example.com', e.organizer()?.email);
+ assert.strictEqual('mail2@example2.com', e.organizer()?.mailto);
+ });
+
+ it('setter should return this', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.organizer(null));
+ assert.deepStrictEqual(e, e.organizer('Sebastian Pekarek '));
+ });
+
+ it('should work with objects', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.organizer({name: 'Sebastian Pekarek', email: 'mail@example.com'});
+ assert.deepStrictEqual(event.organizer(), {
+ name: 'Sebastian Pekarek',
+ email: 'mail@example.com',
+ mailto: undefined,
+ sentBy: undefined
+ });
+
+ event.organizer({name: 'Sebastian Pekarek', email: 'mail@example.com', mailto: 'mail2@example2.com'});
+ assert.deepStrictEqual(event.organizer(), {
+ name: 'Sebastian Pekarek',
+ email: 'mail@example.com',
+ mailto: 'mail2@example2.com',
+ sentBy: undefined
+ });
+ });
+
+ it('should support sent by when using object', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.organizer({name: 'Sebastian Pekarek', email: 'mail@example.com', sentBy: 'bot@example.com'});
+ assert.deepStrictEqual(event.organizer(), {
+ name: 'Sebastian Pekarek',
+ email: 'mail@example.com',
+ mailto: undefined,
+ sentBy: 'bot@example.com'
+ });
+ });
+
+ it('should work with valid strings', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.organizer('Sebastian Pekarek ');
+ assert.deepStrictEqual(event.organizer(), {name: 'Sebastian Pekarek', email: 'mail@example.com'});
+ });
+
+ it('should throw error when string misformated', function () {
+ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ e.organizer({email: 'foo'});
+ }, /`organizer\.name`/);
+ });
+
+ it('should throw error when unknown format', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ e.organizer(Infinity);
+ }, /`organizer`/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.organizer(NaN);
+ }, /`organizer`/);
+ });
+
+ it('should work without an email', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.organizer({name: 'Sebastian Pekarek'});
+ assert.deepStrictEqual(event.organizer(), {
+ name: 'Sebastian Pekarek',
+ email: undefined,
+ mailto: undefined,
+ sentBy: undefined
+ });
+ });
+ });
+
+ describe('createAttendee()', function () {
+ it('if Attendee passed, it should add and return it', function () {
+ 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({ start: new Date() }, new ICalCalendar());
+
+ 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({ start: new Date() }, new ICalCalendar());
+ const attendee = event.createAttendee('Zac ');
+
+ assert.strictEqual(attendee.name(), 'Zac');
+ assert.strictEqual(attendee.email(), 'zac@example.com');
+ assert.strictEqual(event.attendees().length, 1, 'attendee pushed');
+ });
+
+ it('should throw error when string misformated', function () {
+ 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({ start: new Date() }, new ICalCalendar());
+ const attendee = event.createAttendee({name: 'Zac', email: 'zac@example.com'});
+
+ assert.strictEqual(attendee.name(), 'Zac');
+ assert.strictEqual(attendee.email(), 'zac@example.com');
+ assert.strictEqual(event.attendees().length, 1, 'attendee pushed');
+ });
+ });
+
+ describe('attendees()', function () {
+ it('getter should return an array of attendees…', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(event.attendees().length, 0);
+
+ 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({ 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);
+ });
+ });
+
+ describe('createAlarm()', function () {
+ it('should return a ICalAlarm instance', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+
+ assert.ok(event.createAlarm({
+ type: ICalAlarmType.display,
+ trigger: 60 * 10
+ }) instanceof ICalAlarm);
+ });
+
+ it('should pass data to instance', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ const alarm = event.createAlarm({
+ type: ICalAlarmType.audio,
+ trigger: 60 * 10
+ });
+
+ assert.strictEqual(alarm.type(), 'audio');
+ });
+ });
+
+ describe('alarms()', function () {
+ it('getter should return an array of alarms…', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(event.alarms().length, 0);
+
+ 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({ start: new Date() }, new ICalCalendar());
+ const foo = event.alarms([
+ { type: ICalAlarmType.audio, trigger: 60 },
+ { type: ICalAlarmType.display, trigger: 600 }
+ ]);
+
+ assert.strictEqual(event.alarms().length, 2);
+ assert.deepStrictEqual(foo, event);
+ });
+ });
+
+ describe('createCategory()', function () {
+ it('should return a ICalCategory instance', function () {
+ 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({ start: new Date() }, new ICalCalendar());
+ const category = event.createCategory({name: 'foo'});
+
+ assert.strictEqual(category.name(), 'foo');
+ });
+ });
+
+ describe('categories()', function () {
+ it('getter should return an array of categories…', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(event.categories().length, 0);
+
+ 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({ start: new Date() }, new ICalCalendar());
+ const foo = event.categories([
+ {name: 'foo'},
+ {name: 'bar'}
+ ]);
+
+ assert.strictEqual(event.categories().length, 2);
+ assert.deepStrictEqual(foo, event);
+ });
+ });
+
+ describe('status()', function () {
+ it('getter should return value', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(event.status(), null);
+
+ event.status(ICalEventStatus.CONFIRMED);
+ assert.strictEqual(event.status(), 'CONFIRMED');
+
+ event.status(null);
+ assert.strictEqual(event.status(), null);
+ });
+
+ it('setter should return this', function () {
+ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ e.status('COOKING');
+ }, /Input must be one of the following: CONFIRMED, TENTATIVE, CANCELLED/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.status(Infinity);
+ }, /Input must be one of the following: CONFIRMED, TENTATIVE, CANCELLED/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.status(NaN);
+ }, /Input must be one of the following: CONFIRMED, TENTATIVE, CANCELLED/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.status(-1);
+ }, /Input must be one of the following: CONFIRMED, TENTATIVE, CANCELLED/);
+ });
+ });
+
+ describe('busystatus()', function () {
+ it('getter should return value', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(event.busystatus(), null);
+
+ event.busystatus(ICalEventBusyStatus.BUSY);
+ assert.strictEqual(event.busystatus(), 'BUSY');
+
+ event.busystatus(null);
+ assert.strictEqual(event.busystatus(), null);
+ });
+
+ it('setter should return this', function () {
+ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ e.busystatus('COOKING');
+ }, /FREE, TENTATIVE, BUSY, OOF/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.busystatus(Infinity);
+ }, /FREE, TENTATIVE, BUSY, OOF/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.busystatus(NaN);
+ }, /FREE, TENTATIVE, BUSY, OOF/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.busystatus(-1);
+ }, /FREE, TENTATIVE, BUSY, OOF/);
+ });
+ });
+
+ describe('priority()', function () {
+ it('getter should return value', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(e.priority(), null);
+
+ e.priority(5);
+ assert.strictEqual(e.priority(), 5);
+ });
+
+ it('setter should return this', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.priority(null));
+ assert.deepStrictEqual(e, e.priority(5));
+ });
+
+ it('should update value', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.priority(5);
+ assert.strictEqual(event.priority(), 5);
+ assert.ok(event.toString().includes('PRIORITY:5'));
+ });
+ });
+
+ describe('url()', function () {
+ it('getter should return value', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(e.url(), null);
+
+ e.url('http://sebbo.net/');
+ assert.strictEqual(e.url(), 'http://sebbo.net/');
+ });
+
+ it('setter should return this', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.url(null));
+ assert.deepStrictEqual(e, e.url('http://sebbo.net/'));
+ });
+
+ it('should update value', function () {
+ const event = new ICalEvent({
+ start: moment(),
+ summary: 'Example Event'
+ }, new ICalCalendar());
+
+ event.url('http://github.com/sebbo2002/ical-generator');
+ assert.strictEqual(event.url(), 'http://github.com/sebbo2002/ical-generator');
+ });
+ });
+
+ describe('createAttachment()', function () {
+ it('should return this', function () {
+ 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({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(event.attachments().length, 0);
+
+ event.createAttachment('https://files.sebbo.net/calendar/attachments/foo');
+ assert.strictEqual(event.attachments().length, 1);
+ assert.deepStrictEqual(typeof event.attachments()[0], 'string');
+ });
+
+ it('setter should add url and return this', function () {
+ 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'
+ ]);
+
+ assert.strictEqual(event.attachments().length, 2);
+ assert.deepStrictEqual(foo, event);
+ });
+ });
+
+ describe('created()', function () {
+ it('setter should return this', function () {
+ 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({ 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({ 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({ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ e.created('hallo'); // this will produce a "Deprecation warning", sorry 😇
+ }, /`created`/);
+ });
+ });
+
+ describe('lastModified()', function () {
+ it('setter should return this', function () {
+ 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({ 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({ 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({ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ e.lastModified('hallo');
+ }, /`lastModified`/);
+ });
+ });
+
+ describe('class()', function () {
+ it('getter should return value', function () {
+ const event = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(event.class(), null);
+
+ event.class(ICalEventClass.PRIVATE);
+ assert.strictEqual(event.class(), 'PRIVATE');
+
+ event.class(null);
+ assert.strictEqual(event.class(), null);
+ });
+
+ it('setter should return this', function () {
+ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ e.class('COOKING');
+ }, /Input must be one of the following: PUBLIC, PRIVATE, CONFIDENTIAL/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.class(Infinity);
+ }, /Input must be one of the following: PUBLIC, PRIVATE, CONFIDENTIAL/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.class(NaN);
+ }, /Input must be one of the following: PUBLIC, PRIVATE, CONFIDENTIAL/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.class(-1);
+ }, /Input must be one of the following: PUBLIC, PRIVATE, CONFIDENTIAL/);
+ });
+ });
+
+ describe('x()', function () {
+ it('is there', function () {
+ const e = new ICalEvent({ start: new Date() }, new ICalCalendar());
+ assert.deepStrictEqual(e, e.x('X-FOO', 'bar'));
+ });
+ });
+
+ describe('toJSON()', function () {
+ it('should maybe work', function () {
+ const date = moment().add(1, 'month');
+ 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');
+ assert.strictEqual(typeof event.toJSON().start, 'string', 'start is string');
+ });
+
+ it('should stringify RRule objects', function() {
+ const date = new Date();
+ const rule = new rrule.RRule({
+ freq: rrule.RRule.WEEKLY,
+ interval: 5,
+ byweekday: [rrule.RRule.MO, rrule.RRule.FR],
+ dtstart: date,
+ until: new Date(Date.UTC(2012, 12, 31))
+ });
+
+ 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');
+
+ const event2 = new ICalEvent(event.toJSON(), new ICalCalendar());
+ const after = event2.toString();
+ assert.strictEqual(after, before);
+ });
+
+ it('should be compatible with constructor (type check)', function () {
+ 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({ start: new Date() }, new ICalCalendar());
+ assert.strictEqual(event.transparency(), null);
+
+ event.transparency(ICalEventTransparency.OPAQUE);
+ assert.strictEqual(event.transparency(), 'OPAQUE');
+
+ event.transparency(null);
+ assert.strictEqual(event.transparency(), null);
+ });
+
+ it('setter should return this', function () {
+ 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({ 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({ 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({ start: new Date() }, new ICalCalendar());
+ assert.throws(function () {
+ // @ts-ignore
+ e.transparency('COOKING');
+ }, /TRANSPARENT, OPAQUE/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.transparency(Infinity);
+ }, /TRANSPARENT, OPAQUE/);
+ assert.throws(function () {
+ // @ts-ignore
+ e.transparency(-1);
+ }, /TRANSPARENT, OPAQUE/);
+ });
+ });
+
+ describe('toString()', function () {
+ it('should make use of escaping', function () {
+ const e = new ICalEvent({
+ start: new Date(),
+ end: new Date(new Date().getTime() + 3600000),
+ summary: 'Hel\\\\lo\nW;orl,d'
+ }, new ICalCalendar());
+
+ assert.ok(e.toString().indexOf('Hel\\\\\\\\lo\\nW\\;orl\\,d') > -1);
+ });
+
+ it('should render correct UIDs', function () {
+ const cal = new ICalCalendar();
+ const event = new ICalEvent({
+ id: 42,
+ start: moment(),
+ summary: ':)'
+ }, cal);
+
+ assert.ok(event.toString().indexOf('UID:42\r') > -1);
+ });
+
+ it('should include wkst only if provided', function () {
+ const cal = new ICalCalendar();
+ let event = new ICalEvent({
+ start: moment(),
+ end: moment(),
+ repeating: {
+ freq: ICalEventRepeatingFreq.WEEKLY
+ }
+ }, cal);
+ assert.ok(!event.toString().includes('WKST'), 'without WKST');
+
+ event = new ICalEvent({
+ start: moment(),
+ end: moment(),
+ repeating: {
+ freq: ICalEventRepeatingFreq.WEEKLY,
+ startOfWeek: ICalWeekday.SU
+ }
+ }, cal);
+ assert.ok(event.toString().includes('WKST'), 'with WKST');
+ });
+
+ it('should render allday events for luxon dates with timezone correct', function () {
+ const cal = new ICalCalendar();
+ const luxonStartDate = DateTime.fromISO('2024-03-17T00:00:00.000+01:00', {setZone: true});
+ const luxonEndDate = DateTime.fromISO('2024-03-18T00:00:00.000+01:00', {setZone: true});
+ const event = new ICalEvent({
+ allDay: true,
+ start: luxonStartDate,
+ end: luxonEndDate,
+ }, cal);
+
+ const actual = event.toString();
+ assert.match(actual, new RegExp('X-MICROSOFT-CDO-ALLDAYEVENT:TRUE\r\n'), 'with Microsoft CDO alldayevent set');
+ assert.match(actual, new RegExp('X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE\r\n'), 'with Microsoft MSNCalendar alldayevent flag set');
+ assert.match(actual, new RegExp(`DTSTART;VALUE=DATE:${luxonStartDate.toFormat('yyyyLLdd')}\r\n`), 'for DTSTART');
+ assert.match(actual, new RegExp(`DTEND;VALUE=DATE:${luxonEndDate.toFormat('yyyyLLdd')}\r\n`), 'for DTEND');
+ });
+ });
+});
diff --git a/test/index.ts b/test/index.ts
new file mode 100644
index 000000000..c6192bb77
--- /dev/null
+++ b/test/index.ts
@@ -0,0 +1,114 @@
+'use strict';
+
+import assert from 'assert';
+import ical, {
+ ICalAlarm,
+ ICalAlarmType,
+ ICalAttendee,
+ ICalAttendeeType,
+ ICalAttendeeRole,
+ ICalAttendeeStatus,
+ ICalCategory,
+ ICalCalendar,
+ ICalCalendarMethod,
+ ICalEvent,
+ ICalEventStatus,
+ ICalEventBusyStatus,
+ ICalEventTransparency,
+ ICalEventRepeatingFreq,
+ ICalWeekday,
+ formatDate,
+ formatDateTZ,
+ escape,
+ foldLines
+} from '../src/index.js';
+
+describe('ical-generator Index', function() {
+ describe('default', function () {
+ it('should be a function', function() {
+ assert.strictEqual(typeof ical, 'function');
+ });
+ it('should return a ICalCalendar', function() {
+ assert.ok(ical() instanceof ICalCalendar);
+ });
+ });
+
+ describe('Alarm', function () {
+ it('should export ICalAlarm', function () {
+ assert.ok(ICalAlarm);
+ });
+ it('should export ICalAlarmType', function () {
+ assert.ok(ICalAlarmType);
+ });
+ });
+
+ describe('Attendee', function () {
+ it('should export ICalAttendee', function () {
+ assert.ok(ICalAttendee);
+ });
+ it('should export ICalAttendeeType', function () {
+ assert.ok(ICalAttendeeType);
+ });
+ it('should export ICalAttendeeRole', function () {
+ assert.ok(ICalAttendeeRole);
+ });
+ it('should export ICalAttendeeStatus', function () {
+ assert.ok(ICalAttendeeStatus);
+ });
+ });
+
+ describe('Calendar', function () {
+ it('should export ICalCalendar', function() {
+ assert.ok(ICalCalendar);
+ });
+
+ it('should export ICalCalendarMethod', function() {
+ assert.ok(ICalCalendarMethod);
+ });
+ });
+
+ describe('Category', function () {
+ it('should export ICalCategory', function () {
+ assert.ok(ICalCategory);
+ });
+ });
+
+ describe('Event', function () {
+ it('should export ICalEvent', function() {
+ assert.ok(ICalEvent);
+ });
+ it('should export ICalEventStatus', function() {
+ assert.ok(ICalEventStatus);
+ });
+ it('should export ICalEventBusyStatus', function() {
+ assert.ok(ICalEventBusyStatus);
+ });
+ it('should export ICalEventTransparency', function() {
+ assert.ok(ICalEventTransparency);
+ });
+ });
+
+ describe('Type', function () {
+ it('should export ICalEventRepeatingFreq', function () {
+ assert.ok(ICalEventRepeatingFreq);
+ });
+ it('should export ICalWeekday', function () {
+ assert.ok(ICalWeekday);
+ });
+ });
+
+ describe('Tools', function () {
+ it('should export formatDate', function () {
+ assert.ok(typeof formatDate === 'function');
+ });
+ it('should export formatDateTZ', function () {
+ assert.ok(typeof formatDateTZ === 'function');
+ });
+ it('should export escape', function () {
+ assert.ok(typeof escape === 'function');
+ });
+ it('should export foldLines', function () {
+ assert.ok(typeof foldLines === 'function');
+ });
+ });
+});
diff --git a/test/issues.ts b/test/issues.ts
new file mode 100644
index 000000000..3acf22607
--- /dev/null
+++ b/test/issues.ts
@@ -0,0 +1,327 @@
+'use strict';
+
+import assert from 'assert';
+import moment from 'moment-timezone';
+import ical from '../src/index.js';
+import {ICalEventRepeatingFreq, ICalWeekday} from '../src/types.js';
+
+describe('Issues', function () {
+ describe('Issue #38', function () {
+ it('should work with Europe/Berlin', function () {
+ const calendar = ical({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ timezone: 'Europe/Berlin',
+ events: [{
+ start: moment('2016-04-30T22:00:00.000Z'),
+ summary: 'Example Event',
+ allDay: true
+ }]
+ });
+
+ const str = calendar.toString();
+ assert.ok(str.indexOf('DTSTART;VALUE=DATE:20160501') > -1);
+ });
+ it('should work with Brazil/East', function () {
+ const calendar = ical({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ timezone: 'Brazil/East',
+ events: [{
+ start: moment('2016-05-01T03:00:00.000Z'),
+ summary: 'Example Event',
+ allDay: true
+ }]
+ });
+
+ const str = calendar.toString();
+ assert.ok(str.indexOf('DTSTART;VALUE=DATE:20160501') > -1);
+ });
+ });
+
+ describe('Issue #123', function () {
+ it('should work with repeating bySetPos', function () {
+ const calendar = ical({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ events: [{
+ start: moment('2016-04-30T22:00:00.000Z'),
+ end: moment('2016-05-01T00:00:00.000Z'),
+ summary: 'Example Event',
+ allDay: true,
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ count: 3,
+ interval: 1,
+ byDay: [ICalWeekday.SU],
+ bySetPos: 3
+ }
+ }]
+ });
+
+ const str = calendar.toString();
+ assert.ok(str.indexOf('RRULE:FREQ=MONTHLY;COUNT=3;INTERVAL=1;BYDAY=SU;BYSETPOS=3') > -1);
+ });
+
+ it('should work with repeating bySetPos by taking all elements of the byDay array', function () {
+ const calendar = ical({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ events: [{
+ start: moment('2016-04-30T22:00:00.000Z'),
+ end: moment('2016-05-01T00:00:00.000Z'),
+ summary: 'Example Event',
+ allDay: true,
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ count: 3,
+ interval: 1,
+ byDay: [ICalWeekday.MO, ICalWeekday.FR],
+ bySetPos: 3
+ }
+ }]
+ });
+
+ const str = calendar.toString();
+ assert.ok(str.indexOf('RRULE:FREQ=MONTHLY;COUNT=3;INTERVAL=1;BYDAY=MO,FR;BYSETPOS=3') > -1);
+ });
+ });
+
+ describe('Issue #154', function () {
+ ['DTSTART', 'DTEND', 'RECURRENCE-ID'].forEach(function (prop) {
+ it(`it should correctly set ${prop} when using different timezone in calendar and event`, function () {
+ const calendar = ical({
+ timezone: 'America/Buenos_Aires',
+ events: [
+ {
+ start: moment(1553219772000),
+ end: moment(1553219772000),
+ recurrenceId: moment(1553219772000),
+ timezone: 'America/La_Paz'
+ }
+ ]
+ });
+
+ const str = calendar.toString();
+ assert.ok(str.indexOf(`${prop};TZID=America/La_Paz:20190321T215612`) > -1, str);
+ });
+ });
+ });
+
+ describe('Issue #210', function () {
+ it('should repeat/exclude with Europe/Berlin', function () {
+ const calendar = ical({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ timezone: 'Europe/Berlin',
+ events: [{
+ start: moment('2020-08-13T00:00:00+01:00'),
+ summary: 'Example Event',
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ count: 12,
+ exclude: moment('2020-12-13T00:00:00+01:00')
+ }
+ }]
+ });
+
+ const str = calendar.toString();
+ assert.ok(str.indexOf('EXDATE;TZID=Europe/Berlin:20201213T000000') > -1);
+ });
+ it('should repeat/exclude with America/New_York', function () {
+ const calendar = ical({
+ prodId: '//superman-industries.com//ical-generator//EN',
+ timezone: 'America/New_York',
+ events: [{
+ start: moment('2020-08-13T00:00:00-05:00'),
+ summary: 'Example Event',
+ repeating: {
+ freq: ICalEventRepeatingFreq.MONTHLY,
+ count: 12,
+ exclude: moment('2020-12-13T00:00:00-05:00')
+ }
+ }]
+ });
+
+ const str = calendar.toString();
+ assert.ok(str.indexOf('EXDATE;TZID=America/New_York:20201213T000000') > -1);
+ });
+ });
+
+ describe('Issue #236', function () {
+ it('should look like in the example', function () {
+ const calendar = ical({
+ events: [{
+ id: 'foo',
+ start: new Date('2020-08-13T00:00:00-05:00'),
+ stamp: new Date('2020-08-13T00:00:00-05:00'),
+ summary: 'Example Event',
+ location: {
+ title: 'Los Angeles, California, United States',
+ geo: {
+ lon: -118.24368,
+ lat: 34.05223,
+ },
+ radius: 400
+ }
+ }]
+ });
+
+ assert.strictEqual(calendar.toString(), [
+ 'BEGIN:VCALENDAR',
+ 'VERSION:2.0',
+ 'PRODID:-//sebbo.net//ical-generator//EN',
+ 'BEGIN:VEVENT',
+ 'UID:foo',
+ 'SEQUENCE:0',
+ 'DTSTAMP:20200813T050000Z',
+ 'DTSTART:20200813T050000Z',
+ 'SUMMARY:Example Event',
+ 'LOCATION:Los Angeles\\, California\\, United States',
+ 'X-APPLE-STRUCTURED-LOCATION;VALUE=URI;X-APPLE-RADIUS=400;X-TITLE=Los Angel',
+ ' es\\, California\\, United States:geo:34.05223,-118.24368',
+ 'GEO:34.05223;-118.24368',
+ 'END:VEVENT',
+ 'END:VCALENDAR'
+ ].join('\r\n'));
+ });
+ });
+
+ describe('Issue #377', function () {
+ it('should not escape quotes in summary', function () {
+ const calendar = ical({
+ events: [
+ {
+ id: 'foo',
+ start: new Date('2020-08-13T00:00:00-05:00'),
+ stamp: new Date('2020-08-13T00:00:00-05:00'),
+ summary:'My "quoted" string'
+ }
+ ]
+ });
+
+ assert.strictEqual(calendar.toString(), [
+ 'BEGIN:VCALENDAR',
+ 'VERSION:2.0',
+ 'PRODID:-//sebbo.net//ical-generator//EN',
+ 'BEGIN:VEVENT',
+ 'UID:foo',
+ 'SEQUENCE:0',
+ 'DTSTAMP:20200813T050000Z',
+ 'DTSTART:20200813T050000Z',
+ 'SUMMARY:My "quoted" string',
+ 'END:VEVENT',
+ 'END:VCALENDAR'
+ ].join('\r\n'));
+ });
+ });
+
+ describe('Issue #442', function () {
+ it('should generate floating repeat until value if event is a floating event');
+ it('should generate floating repeat exclusion dates if event is a floating event');
+ });
+
+ describe('Issue #459', function () {
+ it('event.repeating should work with `RRULE:` prefix', function () {
+ const calendar = ical({
+ events: [{
+ id: 'foo',
+ start: new Date('2020-08-13T00:00:00-05:00'),
+ stamp: new Date('2020-08-13T00:00:00-05:00'),
+ summary: 'Example Event',
+ repeating: 'RRULE:FREQ=MONTHLY;COUNT=3;INTERVAL=1'
+ }]
+ });
+
+ assert.strictEqual(calendar.toString(), [
+ 'BEGIN:VCALENDAR',
+ 'VERSION:2.0',
+ 'PRODID:-//sebbo.net//ical-generator//EN',
+ 'BEGIN:VEVENT',
+ 'UID:foo',
+ 'SEQUENCE:0',
+ 'DTSTAMP:20200813T050000Z',
+ 'DTSTART:20200813T050000Z',
+ 'RRULE:FREQ=MONTHLY;COUNT=3;INTERVAL=1',
+ 'SUMMARY:Example Event',
+ 'END:VEVENT',
+ 'END:VCALENDAR'
+ ].join('\r\n'));
+ });
+ it('event.repeating should work without `RRULE:` prefix', function () {
+ const calendar = ical({
+ events: [{
+ id: 'foo',
+ start: new Date('2020-08-13T00:00:00-05:00'),
+ stamp: new Date('2020-08-13T00:00:00-05:00'),
+ summary: 'Example Event',
+ repeating: 'FREQ=MONTHLY;COUNT=3;INTERVAL=1'
+ }]
+ });
+
+ assert.strictEqual(calendar.toString(), [
+ 'BEGIN:VCALENDAR',
+ 'VERSION:2.0',
+ 'PRODID:-//sebbo.net//ical-generator//EN',
+ 'BEGIN:VEVENT',
+ 'UID:foo',
+ 'SEQUENCE:0',
+ 'DTSTAMP:20200813T050000Z',
+ 'DTSTART:20200813T050000Z',
+ 'RRULE:FREQ=MONTHLY;COUNT=3;INTERVAL=1',
+ 'SUMMARY:Example Event',
+ 'END:VEVENT',
+ 'END:VCALENDAR'
+ ].join('\r\n'));
+ });
+ });
+
+ describe('Issue #569 / 570', function () {
+ it('event.location should work with `geo` only', function () {
+ const event = ical().createEvent({
+ id: '12345',
+ summary: 'Hello',
+ start: new Date('2020-06-15T00:00:00Z'),
+ end: new Date('2020-06-15T01:00:00Z'),
+ stamp: new Date('2020-06-15T00:00:00Z')
+ });
+
+ event.location({
+ geo: {
+ lat: 52.51147570081018,
+ lon: 13.342200696373846
+ }
+ });
+
+ assert.strictEqual(event.toString(), [
+ 'BEGIN:VEVENT',
+ 'UID:12345',
+ 'SEQUENCE:0',
+ 'DTSTAMP:20200615T000000Z',
+ 'DTSTART:20200615T000000Z',
+ 'DTEND:20200615T010000Z',
+ 'SUMMARY:Hello',
+ 'GEO:52.51147570081018;13.342200696373846',
+ 'END:VEVENT',
+ ''
+ ].join('\r\n'));
+ });
+ });
+
+ describe('Issue #581', function () {
+ it('event.start and event.end should be swappable', function () {
+ const calendar = ical();
+ const event = calendar.createEvent({
+ summary: 'Test Event',
+ start: '2024-02-29T17:00:00.000Z',
+ end: '2024-02-29T17:20:00.000Z'
+ });
+
+ event.start('2024-02-29T19:00:00.000Z');
+ event.end('2024-02-29T19:20:00.000Z');
+
+ const start = event.start();
+ assert.ok(typeof start === 'string');
+ assert.strictEqual(start, '2024-02-29T19:00:00.000Z');
+
+ const end = event.end();
+ assert.ok(typeof end === 'string');
+ assert.strictEqual(end, '2024-02-29T19:20:00.000Z');
+ });
+ });
+});
diff --git a/test/lib/index.ts b/test/lib/index.ts
deleted file mode 100644
index 6ac7aa3fd..000000000
--- a/test/lib/index.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-import Magic from '../../src/lib/index.js';
-import assert from 'assert';
-
-describe('Example', function () {
- it('should work with integers', function () {
- assert.strictEqual(Magic.double(2), 4);
- });
-});
diff --git a/test/results/generate_01.ics b/test/results/generate_01.ics
new file mode 100755
index 000000000..19d0a4f9c
--- /dev/null
+++ b/test/results/generate_01.ics
@@ -0,0 +1,14 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//sebbo.net//ical-generator.tests//EN
+BEGIN:VEVENT
+UID:123
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART:20131004T223930Z
+DTEND:20131004T231500Z
+SUMMARY:Simple Event
+CREATED:20131004T233453Z
+LAST-MODIFIED:20131004T233453Z
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/results/generate_02.ics b/test/results/generate_02.ics
new file mode 100755
index 000000000..ccd953fa8
--- /dev/null
+++ b/test/results/generate_02.ics
@@ -0,0 +1,20 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//sebbo.net//ical-generator.tests//EN
+BEGIN:VEVENT
+UID:123
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART:20131004T223930Z
+DTEND:20131004T231500Z
+SUMMARY:Sample Event
+TRANSP:OPAQUE
+LOCATION:localhost
+DESCRIPTION:Lorem ipsum dolor sit amet\, consetetur sadipscing elitr\, sed
+ diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam era
+ t\, sed diam voluptua.\nbeep boop
+X-ALT-DESC;FMTTYPE=text/html:Lorem ipsum dolor sit amet\, consetetur sa
+ dipscing elitr\, sed diam nonumy eirmod tempor invidunt ut labore et dolor
+ e magna aliquyam erat\, sed diam voluptua.\nbeep boop
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/results/generate_03.ics b/test/results/generate_03.ics
new file mode 100755
index 000000000..90e9ab0b3
--- /dev/null
+++ b/test/results/generate_03.ics
@@ -0,0 +1,26 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//sebbo.net//ical-generator.tests//EN
+METHOD:ADD
+BEGIN:VEVENT
+UID:123
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART;VALUE=DATE:20131004
+DTEND;VALUE=DATE:20131006
+X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
+X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
+SUMMARY:Sample Event
+LOCATION:Apple Store Kurfürstendamm\nKurfürstendamm 26\, 10719 Berlin\,
+ Deutschland
+X-APPLE-STRUCTURED-LOCATION;VALUE=URI;X-ADDRESS=Kurfürstendamm 26\, 10719
+ Berlin\, Deutschland;X-APPLE-RADIUS=141.1751386318387;X-TITLE=Apple Store
+ Kurfürstendamm:geo:52.50363,13.32865
+GEO:52.50363;13.32865
+ORGANIZER;CN="Sebastian Pekarek":mailto:mail@sebbo.net
+CATEGORIES:WORK
+URL;VALUE=URI:http://sebbo.net/
+ATTACH:https://files.sebbo.net/calendar/attachments/foo
+STATUS:CONFIRMED
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/results/generate_04.ics b/test/results/generate_04.ics
new file mode 100755
index 000000000..5bd6e562b
--- /dev/null
+++ b/test/results/generate_04.ics
@@ -0,0 +1,51 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//sebbo.net//ical-generator.tests//EN
+BEGIN:VTIMEZONE
+TZID:Europe/Berlin
+TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin
+X-LIC-LOCATION:Europe/Berlin
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+TZNAME:CEST
+DTSTART:19700329T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+TZNAME:CET
+DTSTART:19701025T030000
+RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:1
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART:20131004T223930Z
+DTEND:20131006T231500Z
+RRULE:FREQ=MONTHLY
+EXDATE:20131006T231500Z
+SUMMARY:repeating by month
+END:VEVENT
+BEGIN:VEVENT
+UID:2
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART;TZID=Europe/Berlin:20131004T223930
+DTEND;TZID=Europe/Berlin:20131006T231500
+RRULE:FREQ=DAILY;COUNT=2
+SUMMARY:repeating by day\, twice
+END:VEVENT
+BEGIN:VEVENT
+UID:3
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART:20131004T223930Z
+DTEND:20131006T231500Z
+RRULE:FREQ=WEEKLY;INTERVAL=3;UNTIL=20140101T000000Z
+SUMMARY:repeating by 3 weeks\, until 2014
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/results/generate_05.ics b/test/results/generate_05.ics
new file mode 100755
index 000000000..c1b17b980
--- /dev/null
+++ b/test/results/generate_05.ics
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//sebbo.net//ical-generator.tests//EN
+BEGIN:VEVENT
+UID:1
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART:20131004T223930
+DTEND:20131006T231500
+SUMMARY:floating
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/results/generate_06.ics b/test/results/generate_06.ics
new file mode 100755
index 000000000..580b65229
--- /dev/null
+++ b/test/results/generate_06.ics
@@ -0,0 +1,33 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//sebbo.net//ical-generator.tests//EN
+METHOD:PUBLISH
+BEGIN:VEVENT
+UID:123
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART;VALUE=DATE:20131004
+X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
+X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
+SUMMARY:Sample Event
+ORGANIZER;CN="Sebastian Pekarek":mailto:mail@sebbo.net
+ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;DELEGATED-FROM="matt@examp
+ le.com";CN="John":MAILTO:john@example.com
+ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO="john@exampl
+ e.com";CN="Smith, Matt; (\"Sales\")":MAILTO:matt@example.com
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT10M
+REPEAT:2
+DURATION:PT1M
+DESCRIPTION:Sample Event
+END:VALARM
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT1H
+DESCRIPTION:I'm a reminder :)
+END:VALARM
+URL;VALUE=URI:http://sebbo.net/
+STATUS:CONFIRMED
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/results/generate_07.ics b/test/results/generate_07.ics
new file mode 100755
index 000000000..8bcbf70be
--- /dev/null
+++ b/test/results/generate_07.ics
@@ -0,0 +1,30 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//sebbo.net//ical-generator.tests//EN
+BEGIN:VEVENT
+UID:1
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART:20131004T223930Z
+DTEND:20131006T231500Z
+RRULE:FREQ=MONTHLY;BYMONTH=1,4,7,10
+SUMMARY:repeating by month
+END:VEVENT
+BEGIN:VEVENT
+UID:2
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART:20131004T223930Z
+RRULE:FREQ=DAILY;COUNT=2;BYDAY=MO,WE,FR
+SUMMARY:repeating on Mo/We/Fr\, twice
+END:VEVENT
+BEGIN:VEVENT
+UID:3
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART:20131004T223930Z
+DTEND:20131006T231500Z
+RRULE:FREQ=DAILY;INTERVAL=1;BYMONTHDAY=1,15
+SUMMARY:repeating on 1st and 15th
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/results/generate_08.ics b/test/results/generate_08.ics
new file mode 100755
index 000000000..5e73d7ab0
--- /dev/null
+++ b/test/results/generate_08.ics
@@ -0,0 +1,16 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//sebbo.net//ical-generator.tests//EN
+BEGIN:VEVENT
+UID:123
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART:20131004T223930Z
+DTEND:20131004T231500Z
+SUMMARY:Simple Event
+ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP
+ =TRUE:MAILTO:mail@example.com
+CREATED:20131004T233453Z
+LAST-MODIFIED:20131004T233453Z
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/results/generate_09.ics b/test/results/generate_09.ics
new file mode 100755
index 000000000..f1adf168e
--- /dev/null
+++ b/test/results/generate_09.ics
@@ -0,0 +1,17 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//sebbo.net//ical-generator.tests//EN
+METHOD:REQUEST
+BEGIN:VEVENT
+UID:123
+SEQUENCE:0
+DTSTAMP:20131004T233453Z
+DTSTART:20131004T223930Z
+DTEND:20131004T231500Z
+SUMMARY:Sample Event
+ORGANIZER;CN="Sebastian Pekarek";EMAIL=mail@sebbo.net:mailto:mail2@example
+ 2.com
+ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP
+ =TRUE:MAILTO:mail@example.com
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/tools.ts b/test/tools.ts
new file mode 100644
index 000000000..aef8e43e9
--- /dev/null
+++ b/test/tools.ts
@@ -0,0 +1,370 @@
+'use strict';
+
+import assert from 'assert';
+import moment from 'moment';
+import momentTz from 'moment-timezone';
+import {DateTime} from 'luxon';
+import dayjs from 'dayjs';
+import dayJsUTCPlugin from 'dayjs/plugin/utc.js';
+import dayJsTimezonePlugin from 'dayjs/plugin/timezone.js';
+import {
+ checkDate,
+ escape,
+ foldLines,
+ formatDate,
+ formatDateTZ,
+ toDate,
+ toDurationString
+} from '../src/tools.js';
+
+dayjs.extend(dayJsUTCPlugin);
+dayjs.extend(dayJsTimezonePlugin);
+
+describe('ICalTools', function () {
+ describe('formatDate()', function () {
+ describe('Date / String', function () {
+ it('timezone=0 dateonly=0 floating=0', function () {
+ assert.strictEqual(
+ formatDate(null, '2018-07-05T18:24:00.052Z', false, false),
+ '20180705T182400Z'
+ );
+ });
+ it('timezone=0 dateonly=0 floating=1', function () {
+ assert.strictEqual(
+ formatDate(null, '2018-07-05T18:24:00.052Z', false, true),
+ '20180705T182400'
+ );
+ });
+ it('timezone=0 dateonly=1 floating=0', function () {
+ assert.strictEqual(
+ formatDate(null, '2018-07-05T18:24:00.052Z', true, false),
+ '20180705'
+ );
+ });
+ it('timezone=0 dateonly=1 floating=1', function () {
+ assert.strictEqual(
+ formatDate(null, '2018-07-05T18:24:00.052Z', true, true),
+ '20180705'
+ );
+ });
+ it('timezone=1 dateonly=0 floating=0', function () {
+ assert.strictEqual(
+ formatDate('Europe/Berlin', '2018-07-05T18:24:00.052', false, false),
+ '20180705T182400'
+ );
+ });
+ it('timezone=1 dateonly=0 floating=1', function () {
+ assert.strictEqual(
+ formatDate('Europe/Berlin', '2018-07-05T18:24:00.052', false, true),
+ '20180705T182400'
+ );
+ });
+ it('timezone=1 dateonly=1 floating=0', function () {
+ assert.strictEqual(
+ formatDate('Europe/Berlin', '2018-07-05T18:24:00.052', true, false),
+ '20180705'
+ );
+ });
+ it('timezone=1 dateonly=1 floating=1', function () {
+ assert.strictEqual(
+ formatDate('Europe/Berlin', '2018-07-05T18:24:00.052', true, true),
+ '20180705'
+ );
+ });
+ it('should work with / prefixed global timezones', function () {
+ assert.strictEqual(
+ formatDate('/Europe/Berlin', '2018-07-05T18:24:00.052', false, false),
+ '20180705T182400'
+ );
+ });
+ });
+ describe('moment.js', function () {
+ it('should work without setting a timezone', function () {
+ assert.strictEqual(
+ formatDate(null, moment('2018-07-05T18:24:00.052Z'), false, false),
+ '20180705T182400Z'
+ );
+ });
+ it('should work with timezone in event / calendar (with moment-timezone)', function () {
+ assert.strictEqual(
+ formatDate('Canada/Saskatchewan', moment('2018-07-05T18:24:00.052Z'), false, false),
+ '20180705T122400'
+ );
+ });
+ it('should work with floating flag', function () {
+ assert.strictEqual(
+ formatDate(null, moment('2018-07-05T18:24:00.052'), false, true),
+ '20180705T182400'
+ );
+ });
+ });
+ describe('moment-timezone.js', function () {
+ it('should work without setting a timezone', function () {
+ assert.strictEqual(
+ formatDate(null, momentTz('2018-07-05T18:24:00.052Z'), false, false),
+ '20180705T182400Z'
+ );
+ });
+ it('should work with timezone in event / calendar (with moment-timezone)', function () {
+ assert.strictEqual(
+ formatDate('Canada/Saskatchewan', momentTz('2018-07-05T18:24:00.052Z'), false, false),
+ '20180705T122400'
+ );
+ });
+ it('should work with floating flag', function () {
+ assert.strictEqual(
+ formatDate(null, momentTz('2018-07-05T18:24:00.052'), false, true),
+ '20180705T182400'
+ );
+ });
+ });
+ describe('Luxon', function () {
+ it('should work without setting a timezone', function () {
+ assert.strictEqual(
+ formatDate(null, DateTime.fromISO('2018-07-05T18:24:00.052Z'), false, false),
+ '20180705T182400Z'
+ );
+ });
+ it('should work with timezone in event / calendar (with moment-timezone)', function () {
+ assert.strictEqual(
+ formatDate('Canada/Saskatchewan', DateTime.fromISO('2018-07-05T18:24:00.052Z'), false, false),
+ '20180705T122400'
+ );
+ });
+ it('should work with floating flag', function () {
+ assert.strictEqual(
+ formatDate(null, DateTime.fromISO('2018-07-05T18:24:00.052'), false, true),
+ '20180705T182400'
+ );
+ });
+ it('should work with dateonly flag', function () {
+ assert.strictEqual(
+ formatDate(null, DateTime.fromISO('2018-07-05T18:24:00.052'), true, false),
+ '20180705'
+ );
+ });
+ it('should work with dateonly flag, non floating, and date with timezone', function () {
+ assert.strictEqual(
+ formatDate(null, DateTime.fromISO('2024-03-17T00:00:00.000+01:00', {setZone: true}), true),
+ '20240317'
+ );
+ });
+ });
+ describe('Day.js', function () {
+ it('should work without setting a timezone', function () {
+ assert.strictEqual(
+ formatDate(null, dayjs('2018-07-05T18:24:00.052Z'), false, false),
+ '20180705T182400Z'
+ );
+ });
+ it('should work with timezone in event / calendar (with moment-timezone)', function () {
+ assert.strictEqual(
+ formatDate('Canada/Saskatchewan', dayjs('2018-07-05T18:24:00.052Z'), false, false),
+ '20180705T122400'
+ );
+ });
+ it('should work with floating flag', function () {
+ assert.strictEqual(
+ formatDate(null, dayjs('2018-07-05T18:24:00.052'), false, true),
+ '20180705T182400'
+ );
+ });
+ it('should work with dateonly flag', function () {
+ assert.strictEqual(
+ formatDate(null, dayjs('2018-07-05T18:24:00.052'), true, false),
+ '20180705'
+ );
+ });
+ });
+ });
+
+ describe('formatDateTZ()', function () {
+ it('should work with timezone', function () {
+ const ed = {timezone: 'Europe/Berlin'};
+ assert.strictEqual(
+ formatDateTZ('Europe/Berlin', 'DSTART', moment('2018-07-02T15:48:05.000Z'), ed),
+ 'DSTART;TZID=Europe/Berlin:20180702T174805'
+ );
+ });
+ it('should work without timezone', function () {
+ assert.strictEqual(
+ formatDateTZ(null, 'DSTART', '2018-07-02T15:48:05.000Z', {}),
+ 'DSTART:20180702T154805Z'
+ );
+ });
+ it('should work without eventdata parameter', function () {
+ assert.strictEqual(
+ formatDateTZ(null, 'DSTART', '2018-07-02T15:48:05.000Z'),
+ 'DSTART:20180702T154805Z'
+ );
+ });
+ });
+
+ describe('escape()', function () {
+ it('should escape \\', function () {
+ assert.strictEqual(
+ escape('Lorem \\ipsum', false),
+ 'Lorem \\\\ipsum'
+ );
+ });
+ it('should escape ;', function () {
+ assert.strictEqual(
+ escape('Lorem ;ipsum', false),
+ 'Lorem \\;ipsum'
+ );
+ });
+ it('should escape ,', function () {
+ assert.strictEqual(
+ escape('Lorem, ipsum', false),
+ 'Lorem\\, ipsum'
+ );
+ });
+ it('should escape \\r', function () {
+ assert.strictEqual(
+ escape('Lorem \ripsum', false),
+ 'Lorem \\nipsum'
+ );
+ });
+ it('should escape \\n', function () {
+ assert.strictEqual(
+ escape('Lorem \nipsum', false),
+ 'Lorem \\nipsum'
+ );
+ });
+ it('should escape \\r\\n', function () {
+ assert.strictEqual(
+ escape('Lorem \r\nipsum', false),
+ 'Lorem \\nipsum'
+ );
+ });
+ it('should escape " in text when inQuotes = true', function () {
+ assert.strictEqual(
+ escape('Lorem "ipsum', true),
+ 'Lorem \\"ipsum'
+ );
+ });
+ it('should not escape " in text when inQuotes = false', function () {
+ assert.strictEqual(
+ escape('Lorem "ipsum', false),
+ 'Lorem "ipsum'
+ );
+ });
+ });
+
+ describe('foldLines()', function () {
+ it('should basically work correctly', function () {
+ assert.strictEqual(
+ foldLines('12345678ikjhgztrde546rf7g8hjiomkjnhgqfcdxerdftgzuinjhgcfvtzvzvuwcbiweciujzvguhbghbbqwxowidoi21e8981'),
+ '12345678ikjhgztrde546rf7g8hjiomkjnhgqfcdxerdftgzuinjhgcfvtzvzvuwcbiweciujz\r\n vguhbghbbqwxowidoi21e8981'
+ );
+ });
+ it('should not split surrogate pairs', function () {
+ assert.strictEqual(
+ foldLines('👋🏼12345678ikjhgztrde546rf7g8hjiomkjnhgqfcdxerdftgzuinjhgcfvtzvzvuwcbiweciujvguhbghbbqwxowidoi21e8981'),
+ '👋🏼12345678ikjhgztrde546rf7g8hjiomkjnhgqfcdxerdftgzuinjhgcfvtzvzvuwcb\r\n iweciujvguhbghbbqwxowidoi21e8981'
+ );
+ });
+ });
+
+ describe('checkDate()', function () {
+ describe('Date', function () {
+ it('should work with valid Date', function () {
+ const date = new Date();
+ assert.equal(checkDate(date, 'foo'), date);
+ });
+ it('should throw error for invalid Date', function () {
+ const date = new Date('foo');
+ assert.throws(() => {
+ checkDate(date, 'foo');
+ }, /`foo` has to be a valid date!/);
+ });
+ });
+ describe('String', function () {
+ it('should work with valid String', function () {
+ const date = '2021-03-28T13:15:23.587Z';
+ assert.equal(checkDate(date, 'foo'), date);
+ });
+ it('should throw error for invalid String', function () {
+ const date = 'foo';
+ assert.throws(() => {
+ checkDate(date, 'foo');
+ }, /`foo` has to be a valid date!/);
+ });
+ });
+ describe('Luxon', function () {
+ it('should work with valid Luxon', function () {
+ const date = DateTime.now();
+ assert.equal(checkDate(date, 'foo'), date);
+ });
+ it('should throw error for invalid Luxon', function () {
+ const date = DateTime.fromISO('foo');
+ assert.throws(() => {
+ checkDate(date, 'foo');
+ }, /`foo` has to be a valid date!/);
+ });
+ });
+ describe('Moment', function () {
+ it('should work with valid Moment', function () {
+ const date = moment();
+ assert.equal(checkDate(date, 'foo'), date);
+ });
+ it('should throw error for invalid Moment', function () {
+ const date = moment('foo', 'MM/DD/YYYY', true);
+ assert.throws(() => {
+ checkDate(date, 'foo');
+ }, /`foo` has to be a valid date!/);
+ });
+ });
+ describe('Day.js', function () {
+ it('should work with valid Day.js', function () {
+ const date = dayjs();
+ assert.equal(checkDate(date, 'foo'), date);
+ });
+ it('should throw error for invalid Day.js', function () {
+ const date = dayjs('foo');
+ assert.throws(() => {
+ checkDate(date, 'foo');
+ }, /`foo` has to be a valid date!/);
+ });
+ });
+ });
+
+ describe('toDate()', function () {
+ it('should work with strings', function () {
+ const date = new Date();
+ assert.deepStrictEqual(toDate(date.toJSON()), date);
+ });
+ it('should work with native Date', function () {
+ const date = new Date();
+ assert.deepStrictEqual(toDate(date), date);
+ });
+ it('should work with moment object', function () {
+ const date = new Date();
+ assert.deepStrictEqual(toDate(moment(date)), date);
+ });
+ it('should work with moment-timezone object', function () {
+ const date = new Date();
+ assert.deepStrictEqual(toDate(momentTz(date)), date);
+ });
+ it('should work with Day.js object', function () {
+ const date = new Date();
+ assert.deepStrictEqual(toDate(dayjs(date)), date);
+ });
+ it('should work with luxon DateTime object', function () {
+ const date = new Date();
+ assert.deepStrictEqual(toDate(DateTime.fromJSDate(date)), date);
+ });
+ });
+
+ describe('toDurationString()', function () {
+ it('should work', async function () {
+ assert.strictEqual(toDurationString(0), 'PT0S');
+ assert.strictEqual(toDurationString(1), 'PT1S');
+ assert.strictEqual(toDurationString(60), 'PT1M');
+ assert.strictEqual(toDurationString(3600), 'PT1H');
+ assert.strictEqual(toDurationString(86400), 'P1D');
+
+ assert.strictEqual(toDurationString(-3600), '-PT1H');
+ });
+ });
+});
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/tsup.config.ts b/tsup.config.ts
index 5343aa217..33e4d45aa 100644
--- a/tsup.config.ts
+++ b/tsup.config.ts
@@ -3,9 +3,7 @@ import { defineConfig } from 'tsup';
export default defineConfig({
clean: true,
entry: [
- 'src/lib/index.ts',
- 'src/bin/cli.ts',
- 'src/bin/start.ts'
+ 'src/index.ts'
],
format: ['esm', 'cjs'],
dts: true,
diff --git a/typedoc.json b/typedoc.json
index f8625ec49..af67f146f 100644
--- a/typedoc.json
+++ b/typedoc.json
@@ -1,11 +1,11 @@
{
- "entryPoints": ["./src/lib/index.ts"],
+ "entryPoints": ["./src/index.ts"],
"exclude": [],
"excludeInternal": true,
"excludePrivate": true,
"excludeProtected": true,
"includeVersion": true,
- "name": "",
+ "name": "ical-generator",
"out": "./docs/reference",
"plugin": [],
"readme": "README.md",