diff --git a/README.md b/README.md index d3f52fd..c7be329 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ The `options` object has the following structure and defaults: ## Note about how zmanim are calculated This library uses [Luxon](https://moment.github.io/luxon) as a date/time library, since Javascript's `Date` object does not support setting timezones other than the system timezone. -All class methods that return a `DateTime` object will be in UTC. +All class methods that return a `Temporal.ZonedDateTime` object will be in UTC. # Breaking changes from KosherJava * `AstronomicalCalendar.getTemporalHour()` returns `null` instead of `Long.MIN_VALUE` if the calculations cannot be completed. diff --git a/package-lock.json b/package-lock.json index 03822b3..e9a5f6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "LGPL-3.0", "dependencies": { "big.js": "^6.1.1", - "luxon": "^1.26.0" + "temporal-polyfill": "^0.3.0" }, "devDependencies": { "@types/big.js": "^6.0.2", @@ -39,25 +39,35 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", - "dev": true + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", + "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/helper-validator-identifier": "^7.25.9", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/highlight/node_modules/ansi-styles": { @@ -65,6 +75,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -77,6 +88,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -91,6 +103,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -98,14 +111,26 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -115,6 +140,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -123,15 +149,16 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.1.tgz", - "integrity": "sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", "espree": "^7.3.0", - "globals": "^12.1.0", + "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", @@ -142,73 +169,48 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, - "dependencies": { - "ms": "2.1.2" - }, + "license": "MIT", "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 4" } }, - "node_modules/@eslint/eslintrc/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { - "type-fest": "^0.8.1" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.10.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.3", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "engines": { @@ -216,83 +218,100 @@ } }, "node_modules/@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { - "@nodelib/fs.scandir": "2.1.3", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" }, "engines": { "node": ">= 8" } }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/big.js": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/big.js/-/big.js-6.0.2.tgz", - "integrity": "sha512-7NdmOT3zjtghMofDwP1nAJCJWVjc/96V5msXRAZ4lPrvpGlajA95VQec7OXwA2wQaVmhjt+F5ko8pjvQU1tTFA==", - "dev": true + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@types/big.js/-/big.js-6.2.2.tgz", + "integrity": "sha512-e2cOW9YlVzFY2iScnGBBkplKsrn2CsObHQ2Hiw4V1sSyiGbgWL8IyqE3zFi1Pt5o1pdAtYkDAIsF3KKUPjdzaA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/chai": { - "version": "4.2.18", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.18.tgz", - "integrity": "sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ==", - "dev": true + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", - "dev": true + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" }, "node_modules/@types/luxon": { - "version": "1.26.5", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-1.26.5.tgz", - "integrity": "sha512-XeQxxRMyJi1znfzHw4CGDLyup/raj84SnjjkI2fDootZPGlB0yqtvlvEIAmzHDa5wiEI5JJevZOWxpcofsaV+A==", - "dev": true + "version": "1.27.1", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-1.27.1.tgz", + "integrity": "sha512-cPiXpOvPFDr2edMnOXlz3UBDApwUfR+cpizvxCy0n3vp9bz/qe8BWzHPIEFcy+ogUOyjKuCISgyq77ELZPmkkg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/mocha": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz", - "integrity": "sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==", - "dev": true + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", + "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "14.14.44", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.44.tgz", - "integrity": "sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA==", - "dev": true + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "dev": true, + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.23.0.tgz", - "integrity": "sha512-tGK1y3KIvdsQEEgq6xNn1DjiFJtl+wn8JJQiETtCbdQxw1vzjXyAaIkEmO2l6Nq24iy3uZBMFQjZ6ECf1QdgGw==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/experimental-utils": "4.23.0", - "@typescript-eslint/scope-manager": "4.23.0", - "debug": "^4.1.1", + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", - "lodash": "^4.17.15", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" @@ -311,74 +330,19 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.23.0.tgz", - "integrity": "sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.23.0", - "@typescript-eslint/types": "4.23.0", - "@typescript-eslint/typescript-estree": "4.23.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" @@ -392,15 +356,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.23.0.tgz", - "integrity": "sha512-wsvjksHBMOqySy/Pi2Q6UuIuHYbgAMwLczRl4YanEPKW5KVxI9ZzDYh3B5DtcZPQTGRWFJrfcbJ6L01Leybwug==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "4.23.0", - "@typescript-eslint/types": "4.23.0", - "@typescript-eslint/typescript-estree": "4.23.0", - "debug": "^4.1.1" + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" }, "engines": { "node": "^10.12.0 || >=12.0.0" @@ -418,37 +383,15 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@typescript-eslint/scope-manager": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.23.0.tgz", - "integrity": "sha512-ZZ21PCFxPhI3n0wuqEJK9omkw51wi2bmeKJvlRZPH5YFkcawKOuRMQMnI8mH6Vo0/DoHSeZJnHiIx84LmVQY+w==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.23.0", - "@typescript-eslint/visitor-keys": "4.23.0" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" @@ -459,10 +402,11 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", - "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", "dev": true, + "license": "MIT", "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, @@ -472,18 +416,19 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz", - "integrity": "sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "4.23.0", - "@typescript-eslint/visitor-keys": "4.23.0", - "debug": "^4.1.1", - "globby": "^11.0.1", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", "is-glob": "^4.0.1", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" @@ -498,69 +443,14 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.23.0.tgz", - "integrity": "sha512-5PNe5cmX9pSifit0H+nPoQBXdbNzi5tOEec+3riK+ku4e3er37pKxMKDH5Ct5Y4fhWxcD4spnlYjxi9vXbSpwg==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/types": "4.33.0", "eslint-visitor-keys": "^2.0.0" }, "engines": { @@ -571,26 +461,19 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -601,25 +484,29 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-code-frame": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/wast-printer": "1.9.0" } @@ -628,13 +515,15 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@webassemblyjs/helper-module-context": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0" } @@ -643,13 +532,15 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -662,6 +553,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -671,6 +563,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/long": "4.2.2" } @@ -679,13 +572,15 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -702,6 +597,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -715,6 +611,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -727,6 +624,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-api-error": "1.9.0", @@ -741,6 +639,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/floating-point-hex-parser": "1.9.0", @@ -755,6 +654,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/wast-parser": "1.9.0", @@ -765,19 +665,22 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -786,24 +689,30 @@ } }, "node_modules/acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ajv-errors": { @@ -811,33 +720,37 @@ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": ">=5.0.0" } }, "node_modules/ajv-keywords": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", - "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -847,6 +760,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -858,10 +772,11 @@ } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -874,19 +789,22 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } @@ -905,8 +823,9 @@ "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -916,6 +835,7 @@ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -923,8 +843,9 @@ "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -972,6 +893,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -979,8 +901,9 @@ "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -995,10 +918,32 @@ "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -1032,7 +977,6 @@ "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -1087,46 +1031,50 @@ } }, "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "minimalistic-assert": "^1.0.0" } }, "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true, + "license": "MIT" }, "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", "dev": true, + "license": "MIT", "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "object.assign": "^4.1.4", + "util": "^0.10.4" } }, "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" }, "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, + "license": "MIT", "dependencies": { - "inherits": "2.0.1" + "inherits": "2.0.3" } }, "node_modules/assertion-error": { @@ -1134,6 +1082,7 @@ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -1141,8 +1090,9 @@ "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1160,15 +1110,23 @@ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", "optional": true }, "node_modules/async-function": { @@ -1186,6 +1144,7 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, + "license": "(MIT OR Apache-2.0)", "bin": { "atob": "bin/atob.js" }, @@ -1232,16 +1191,18 @@ } }, "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, + "license": "MIT", "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -1258,8 +1219,9 @@ "node_modules/base/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -1267,44 +1229,6 @@ "node": ">=0.10.0" } }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1323,12 +1247,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/big.js": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.1.1.tgz", - "integrity": "sha512-1vObw81a8ylZO5ePrtMay0n018TcftpTA5HFKDaSuiUDBo8biRBtjIobw60OpwuvrGk+FsxKamqN4cnmj/eXdg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.2.tgz", + "integrity": "sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==", + "license": "MIT", "engines": { "node": "*" }, @@ -1338,12 +1264,16 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bindings": { @@ -1361,31 +1291,35 @@ "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1394,20 +1328,23 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true, + "license": "MIT" }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, + "license": "MIT", "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -1422,6 +1359,7 @@ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, + "license": "MIT", "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -1433,6 +1371,7 @@ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, + "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -1441,77 +1380,48 @@ } }, "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", "dev": true, + "license": "MIT", "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", "dev": true, + "license": "ISC", "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.5", + "hash-base": "~3.0", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" }, "engines": { - "node": ">= 6" + "node": ">= 0.12" } }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, + "license": "MIT", "dependencies": { "pako": "~1.0.5" } @@ -1521,6 +1431,7 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, + "license": "MIT", "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -1528,28 +1439,39 @@ } }, "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" }, "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true, + "license": "MIT" }, "node_modules/cacache": { "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "dev": true, + "license": "ISC", "dependencies": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -1572,7 +1494,9 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -1585,6 +1509,7 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, + "license": "MIT", "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -1655,41 +1580,49 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" } }, "node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1702,10 +1635,14 @@ } }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } @@ -1715,6 +1652,7 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, + "license": "MIT", "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", @@ -1732,28 +1670,34 @@ } }, "node_modules/chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", "dev": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, "node_modules/class-utils": { @@ -1761,6 +1705,7 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, + "license": "MIT", "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -1774,8 +1719,9 @@ "node_modules/class-utils/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -1783,11 +1729,26 @@ "node": ">=0.10.0" } }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -1797,8 +1758,9 @@ "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dev": true, + "license": "MIT", "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -1812,6 +1774,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1823,31 +1786,39 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", - "dev": true + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" }, "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" }, "node_modules/concat-stream": { "version": "1.6.2", @@ -1857,6 +1828,7 @@ "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -1865,10 +1837,11 @@ } }, "node_modules/confusing-browser-globals": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", - "dev": true + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true, + "license": "MIT" }, "node_modules/console-browserify": { "version": "1.2.0", @@ -1879,54 +1852,33 @@ "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "node_modules/contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, "node_modules/copy-concurrently": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "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" - }, - "engines": { - "node": "*" + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, "node_modules/copy-concurrently/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -1937,39 +1889,44 @@ "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" }, "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" } }, "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true, + "license": "MIT" }, "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, + "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -1983,6 +1940,7 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, + "license": "MIT", "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -1996,13 +1954,15 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2013,32 +1973,38 @@ } }, "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", "dev": true, + "license": "MIT", "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" }, "engines": { - "node": "*" + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "dev": true, + "license": "MIT" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -2103,49 +2069,65 @@ } }, "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dev": true, + "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.12" + "node": ">=6" } }, "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" }, "node_modules/define-data-property": { "version": "1.1.4", @@ -2188,6 +2170,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -2196,49 +2179,12 @@ "node": ">=0.10.0" } }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -2247,8 +2193,9 @@ "node_modules/detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2258,6 +2205,7 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -2267,6 +2215,7 @@ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -2274,16 +2223,18 @@ } }, "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true, + "license": "MIT" }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -2296,6 +2247,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -2308,6 +2260,7 @@ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4", "npm": ">=1.2" @@ -2333,6 +2286,7 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -2341,10 +2295,11 @@ } }, "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -2356,37 +2311,36 @@ } }, "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/elliptic/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true, + "license": "MIT" }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, + "license": "MIT", "dependencies": { "once": "^1.4.0" } @@ -2406,22 +2360,25 @@ } }, "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-colors": "^4.1.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8.6" } }, "node_modules/errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, + "license": "MIT", "dependencies": { "prr": "~1.0.1" }, @@ -2429,15 +2386,6 @@ "errno": "cli.js" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/es-abstract": { "version": "1.23.9", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", @@ -2614,46 +2562,56 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.26.0.tgz", - "integrity": "sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.1", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", + "glob-parent": "^5.1.2", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", @@ -2662,7 +2620,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.21", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -2671,7 +2629,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^6.0.4", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -2690,6 +2648,7 @@ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz", "integrity": "sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-config-airbnb-base": "^14.2.1", "object.assign": "^4.1.2", @@ -2711,6 +2670,7 @@ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", "dev": true, + "license": "MIT", "dependencies": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", @@ -2718,251 +2678,139 @@ }, "engines": { "node": ">= 6" - }, - "peerDependencies": { - "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0", - "eslint-plugin-import": "^2.22.1" - } - }, - "node_modules/eslint-config-airbnb-typescript": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-12.3.1.tgz", - "integrity": "sha512-ql/Pe6/hppYuRp4m3iPaHJqkBB7dgeEmGPQ6X0UNmrQOfTF+dXw29/ZjU2kQ6RDoLxaxOA+Xqv07Vbef6oVTWw==", - "dev": true, - "dependencies": { - "@typescript-eslint/parser": "^4.4.1", - "eslint-config-airbnb": "^18.2.0", - "eslint-config-airbnb-base": "^14.2.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "dependencies": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", - "dev": true, - "dependencies": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0", + "eslint-plugin-import": "^2.22.1" } }, - "node_modules/eslint-plugin-import/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "node_modules/eslint-config-airbnb-typescript": { + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-12.3.1.tgz", + "integrity": "sha512-ql/Pe6/hppYuRp4m3iPaHJqkBB7dgeEmGPQ6X0UNmrQOfTF+dXw29/ZjU2kQ6RDoLxaxOA+Xqv07Vbef6oVTWw==", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" + "@typescript-eslint/parser": "^4.4.1", + "eslint-config-airbnb": "^18.2.0", + "eslint-config-airbnb-base": "^14.2.0" } }, - "node_modules/eslint-plugin-import/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/eslint-plugin-import/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" + "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^1.1.0" + "debug": "^3.2.7" }, "engines": { "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/eslint-plugin-import/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "engines": { - "node": ">=4" + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, + "license": "MIT", "dependencies": { - "pify": "^2.0.0" + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/eslint-plugin-import/node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" + "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-jsx-a11y": { @@ -2996,28 +2844,6 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-plugin-react": { "version": "7.37.4", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", @@ -3080,31 +2906,6 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-react/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", @@ -3140,6 +2941,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -3148,106 +2950,87 @@ "node": ">=8.0.0" } }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=4" + "node": ">=4.0" } }, - "node_modules/eslint/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=6.0" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { + "node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, - "node_modules/eslint/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/eslint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": ">=10" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/eslint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } }, "node_modules/espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -3262,6 +3045,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=4" } @@ -3271,6 +3055,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -3280,10 +3065,11 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -3291,20 +3077,12 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -3312,29 +3090,22 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, "node_modules/esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -3344,6 +3115,7 @@ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } @@ -3353,6 +3125,7 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, + "license": "MIT", "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -3361,8 +3134,9 @@ "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -3376,11 +3150,22 @@ "node": ">=0.10.0" } }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, "node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -3391,20 +3176,53 @@ "node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dev": true, + "license": "MIT", "dependencies": { "homedir-polyfill": "^1.0.1" }, @@ -3415,8 +3233,9 @@ "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, + "license": "MIT", "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -3425,23 +3244,12 @@ "node": ">=0.10.0" } }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, + "license": "MIT", "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -3459,8 +3267,9 @@ "node_modules/extglob/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -3471,8 +3280,9 @@ "node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -3480,169 +3290,95 @@ "node": ">=0.10.0" } }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-glob/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/fast-glob/node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" + "micromatch": "^4.0.8" }, "engines": { - "node": ">=8.0" + "node": ">=8.6.0" } }, "node_modules/fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", - "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", - "dev": true + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "deprecated": "This module is no longer supported.", + "dev": true, + "license": "ISC" }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -3659,10 +3395,11 @@ "optional": true }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -3675,6 +3412,7 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -3685,15 +3423,20 @@ } }, "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^3.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/findup-sync": { @@ -3701,6 +3444,7 @@ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, + "license": "MIT", "dependencies": { "detect-file": "^1.0.0", "is-glob": "^4.0.0", @@ -3716,6 +3460,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -3735,8 +3480,9 @@ "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -3747,8 +3493,9 @@ "node_modules/findup-sync/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -3762,8 +3509,9 @@ "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -3771,11 +3519,22 @@ "node": ">=0.10.0" } }, + "node_modules/findup-sync/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/findup-sync/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -3786,8 +3545,9 @@ "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -3800,6 +3560,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -3822,8 +3583,9 @@ "node_modules/findup-sync/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -3837,17 +3599,20 @@ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -3855,16 +3620,18 @@ } }, "node_modules/flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -3889,8 +3656,9 @@ "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3898,8 +3666,9 @@ "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, + "license": "MIT", "dependencies": { "map-cache": "^0.2.2" }, @@ -3910,8 +3679,9 @@ "node_modules/from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -3920,8 +3690,10 @@ "node_modules/fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "deprecated": "This package is no longer supported.", "dev": true, + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", @@ -3932,15 +3704,17 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3983,8 +3757,9 @@ "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true, + "license": "MIT" }, "node_modules/functions-have-names": { "version": "1.2.3", @@ -4001,15 +3776,17 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -4074,17 +3851,20 @@ "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4105,6 +3885,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -4117,6 +3898,7 @@ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, + "license": "MIT", "dependencies": { "global-prefix": "^3.0.0" }, @@ -4124,11 +3906,12 @@ "node": ">=6" } }, - "node_modules/global-modules/node_modules/global-prefix": { + "node_modules/global-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -4138,39 +3921,12 @@ "node": ">=6" } }, - "node_modules/global-modules/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/global-prefix/node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -4179,10 +3935,11 @@ } }, "node_modules/globals": { - "version": "13.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz", - "integrity": "sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -4193,18 +3950,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/globalthis": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", @@ -4223,16 +3968,17 @@ } }, "node_modules/globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { @@ -4242,15 +3988,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -4265,32 +4002,22 @@ } }, "node_modules/graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" }, "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.x" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", @@ -4309,6 +4036,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -4374,8 +4102,9 @@ "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, + "license": "MIT", "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -4388,8 +4117,9 @@ "node_modules/has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -4401,8 +4131,9 @@ "node_modules/has-values/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -4413,8 +4144,9 @@ "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -4425,8 +4157,9 @@ "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -4435,64 +4168,25 @@ } }, "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "safe-buffer": "^5.2.1" }, "engines": { - "node": ">= 6" + "node": ">= 0.10" } }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -4516,6 +4210,7 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "bin": { "he": "bin/he" } @@ -4523,8 +4218,9 @@ "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, + "license": "MIT", "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -4536,6 +4232,7 @@ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, + "license": "MIT", "dependencies": { "parse-passwd": "^1.0.0" }, @@ -4543,17 +4240,12 @@ "node": ">=0.10.0" } }, - "node_modules/hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true, + "license": "MIT" }, "node_modules/ieee754": { "version": "1.2.1", @@ -4573,28 +4265,32 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/iferr": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true, + "license": "MIT" }, "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -4606,11 +4302,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -4619,29 +4333,34 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internal-slot": { "version": "1.1.0", @@ -4663,32 +4382,22 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dev": true, + "license": "MIT", "dependencies": { - "is-buffer": "^1.1.5" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, "node_modules/is-array-buffer": { @@ -4709,12 +4418,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, "node_modules/is-async-function": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", @@ -4756,6 +4459,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -4784,7 +4488,8 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-callable": { "version": "1.2.7", @@ -4805,7 +4510,6 @@ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "hasown": "^2.0.2" }, @@ -4817,27 +4521,16 @@ } }, "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, + "license": "MIT", "dependencies": { - "is-buffer": "^1.1.5" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-data-view": { @@ -4876,33 +4569,28 @@ } }, "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, + "license": "MIT", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { "node": ">=0.10.0" } @@ -4910,8 +4598,9 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4937,6 +4626,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -4961,10 +4651,11 @@ } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -4990,6 +4681,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -5016,6 +4708,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -5025,6 +4718,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -5182,6 +4876,7 @@ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5189,29 +4884,33 @@ "node_modules/is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5239,13 +4938,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -5254,32 +4955,40 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" }, "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -5287,12 +4996,6 @@ "node": ">=6" } }, - "node_modules/json5/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -5310,11 +5013,22 @@ "node": ">=4.0" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5346,6 +5060,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -5354,47 +5069,22 @@ "node": ">= 0.8.0" } }, - "node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.3.0 <5.0.0 || >=5.10" } }, "node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -5409,46 +5099,47 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0" }, @@ -5470,28 +5161,32 @@ "loose-envify": "cli.js" } }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, - "node_modules/luxon": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.26.0.tgz", - "integrity": "sha512-+V5QIQ5f6CDXQpWNICELwjwuHdqeJM1UenlZWx5ujcRMc9venvluCjFb4t5NYLhb6IhkbMVOxzVuOqkgMxee2A==", - "engines": { - "node": "*" - } - }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -5500,26 +5195,29 @@ "node": ">=6" } }, - "node_modules/make-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=6" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5527,8 +5225,9 @@ "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dev": true, + "license": "MIT", "dependencies": { "object-visit": "^1.0.0" }, @@ -5551,6 +5250,7 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -5562,6 +5262,7 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", "dev": true, + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -5575,40 +5276,31 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -5618,28 +5310,32 @@ } }, "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true, + "license": "MIT" }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true, + "license": "MIT" }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5648,16 +5344,21 @@ } }, "node_modules/minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -5679,6 +5380,7 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, + "license": "MIT", "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -5687,42 +5389,25 @@ "node": ">=0.10.0" } }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { - "minimist": "0.0.8" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, - "node_modules/mkdirp/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, "node_modules/mocha": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", "dev": true, + "license": "MIT", "dependencies": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", @@ -5762,17 +5447,29 @@ "url": "https://opencollective.com/mochajs" } }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/mocha/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/mocha/node_modules/debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -5789,61 +5486,15 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "MIT" }, "node_modules/mocha/node_modules/js-yaml": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -5851,73 +5502,17 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/mocha/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, + "license": "ISC", "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" + "brace-expansion": "^1.1.7" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" + "node": "*" } }, "node_modules/mocha/node_modules/supports-color": { @@ -5925,6 +5520,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5938,8 +5534,10 @@ "node_modules/move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "deprecated": "This package is no longer supported.", "dev": true, + "license": "ISC", "dependencies": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", @@ -5949,28 +5547,13 @@ "run-queue": "^1.0.3" } }, - "node_modules/move-concurrently/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "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" - }, - "engines": { - "node": "*" - } - }, "node_modules/move-concurrently/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -5979,10 +5562,11 @@ } }, "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/nan": { "version": "2.22.2", @@ -5997,6 +5581,7 @@ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", "dev": true, + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -6009,6 +5594,7 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -6029,26 +5615,30 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, + "license": "MIT", "dependencies": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -6078,35 +5668,16 @@ "node_modules/node-libs-browser/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/resolve": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", - "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - } + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6114,8 +5685,10 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -6123,8 +5696,9 @@ "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dev": true, + "license": "MIT", "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -6137,20 +5711,36 @@ "node_modules/object-copy/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object-copy/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -6176,6 +5766,7 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -6183,8 +5774,9 @@ "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.0" }, @@ -6235,7 +5827,6 @@ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -6249,11 +5840,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -6283,24 +5890,26 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { "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.3" + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -6309,8 +5918,9 @@ "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true, + "license": "MIT" }, "node_modules/own-keys": { "version": "1.0.1", @@ -6331,27 +5941,35 @@ } }, "node_modules/p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^2.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-try": { @@ -6359,6 +5977,7 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -6367,15 +5986,17 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true + "dev": true, + "license": "(MIT AND Zlib)" }, "node_modules/parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "dev": true, + "license": "MIT", "dependencies": { - "cyclist": "~0.2.2", + "cyclist": "^1.0.1", "inherits": "^2.0.3", "readable-stream": "^2.1.5" } @@ -6385,6 +6006,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -6393,23 +6015,29 @@ } }, "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", "dev": true, + "license": "ISC", "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6417,8 +6045,9 @@ "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6427,29 +6056,33 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6459,6 +6092,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6475,6 +6109,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6484,6 +6119,7 @@ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -6493,6 +6129,7 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, + "license": "MIT", "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -6504,11 +6141,19 @@ "node": ">=0.12" } }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -6517,12 +6162,13 @@ } }, "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/pkg-dir": { @@ -6530,6 +6176,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -6537,11 +6184,78 @@ "node": ">=6" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6561,6 +6275,7 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -6568,23 +6283,26 @@ "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -6592,8 +6310,9 @@ "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" }, "node_modules/prop-types": { "version": "15.8.1", @@ -6611,14 +6330,16 @@ "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT" }, "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -6629,16 +6350,18 @@ } }, "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true, + "license": "MIT" }, "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -6649,6 +6372,7 @@ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, + "license": "MIT", "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -6660,44 +6384,74 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, "engines": { - "node": ">=0.4.x" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "dev": true, "engines": { "node": ">=0.4.x" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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" + } + ], + "license": "MIT" + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -6707,6 +6461,7 @@ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, + "license": "MIT", "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -6721,10 +6476,11 @@ "peer": true }, "node_modules/readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -6735,11 +6491,26 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, "node_modules/readdirp": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -6775,6 +6546,7 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -6805,10 +6577,11 @@ } }, "node_modules/regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -6819,8 +6592,9 @@ "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", "dev": true, + "license": "ISC", "optional": true }, "node_modules/repeat-element": { @@ -6828,6 +6602,7 @@ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6835,8 +6610,9 @@ "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } @@ -6844,8 +6620,9 @@ "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6855,6 +6632,7 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6863,25 +6641,59 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "engines": { + "node": ">=4" } }, "node_modules/resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -6895,6 +6707,7 @@ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, + "license": "MIT", "dependencies": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -6904,11 +6717,42 @@ "node": ">=0.10.0" } }, + "node_modules/resolve-dir/node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -6916,24 +6760,27 @@ "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -6943,7 +6790,9 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -6959,15 +6808,16 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, "node_modules/run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -6982,13 +6832,18 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } }, "node_modules/run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", "dev": true, + "license": "ISC", "dependencies": { "aproba": "^1.1.1" } @@ -7013,19 +6868,27 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "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" + } + ], "license": "MIT" }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -7043,18 +6906,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-push-apply/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, "node_modules/safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, + "license": "MIT", "dependencies": { "ret": "~0.1.10" } @@ -7077,17 +6934,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, "node_modules/schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -7098,25 +6950,34 @@ } }, "node_modules/semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, + "license": "ISC", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/serialize-javascript": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", - "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", - "dev": true + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" }, "node_modules/set-function-length": { "version": "1.2.2", @@ -7172,6 +7033,7 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -7185,8 +7047,9 @@ "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -7194,17 +7057,29 @@ "node": ">=0.10.0" } }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, + "license": "(MIT AND BSD-3-Clause)", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -7218,6 +7093,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -7230,6 +7106,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7315,6 +7192,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7324,6 +7202,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -7341,6 +7220,7 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, + "license": "MIT", "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", @@ -7360,6 +7240,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, + "license": "MIT", "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -7372,8 +7253,9 @@ "node_modules/snapdragon-node/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -7381,49 +7263,12 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.2.0" }, @@ -7434,8 +7279,9 @@ "node_modules/snapdragon-util/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -7443,11 +7289,22 @@ "node": ">=0.10.0" } }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, "node_modules/snapdragon/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -7458,8 +7315,9 @@ "node_modules/snapdragon/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -7467,26 +7325,60 @@ "node": ">=0.10.0" } }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, "node_modules/snapdragon/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true, + "license": "MIT" }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -7497,6 +7389,7 @@ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, + "license": "MIT", "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -7506,10 +7399,11 @@ } }, "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -7520,45 +7414,15 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", - "dev": true + "license": "MIT" }, "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^3.0.0" }, @@ -7569,14 +7433,16 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dev": true, + "license": "ISC", "dependencies": { "figgy-pudding": "^3.5.1" } @@ -7584,8 +7450,9 @@ "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, + "license": "MIT", "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -7597,8 +7464,9 @@ "node_modules/static-extend/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -7606,11 +7474,26 @@ "node": ">=0.10.0" } }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -7621,6 +7504,7 @@ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -7631,6 +7515,7 @@ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, + "license": "MIT", "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -7640,34 +7525,51 @@ } }, "node_modules/stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true, + "license": "MIT" }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/string.prototype.includes": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", @@ -7785,12 +7687,13 @@ } }, "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -7799,8 +7702,9 @@ "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -7810,6 +7714,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -7822,6 +7727,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7835,7 +7741,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 0.4" }, @@ -7844,64 +7749,77 @@ } }, "node_modules/table": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.0.tgz", - "integrity": "sha512-SAM+5p6V99gYiiy2gT5ArdzgM1dLDed0nkrWmG6Fry/bUS/m9x83BwpJUOf1Qj/x2qJd+thL6IkIx7qPGRxqBw==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=10.0.0" } }, "node_modules/table/node_modules/ajv": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.3.0.tgz", - "integrity": "sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/table/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "node_modules/table/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/temporal-polyfill": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/temporal-polyfill/-/temporal-polyfill-0.3.0.tgz", + "integrity": "sha512-qNsTkX9K8hi+FHDfHmf22e/OGuXmfBm9RqNismxBrnSmZVJKegQ+HYYXT+R7Ha8F/YSm2Y34vmzD4cxMu2u95g==", + "license": "MIT", + "dependencies": { + "temporal-spec": "0.3.0" + } + }, + "node_modules/temporal-spec": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/temporal-spec/-/temporal-spec-0.3.0.tgz", + "integrity": "sha512-n+noVpIqz4hYgFSMOSiINNOUOMFtV5cZQNCmmszA6GiVFVRt3G7AqVyhXjhCSmowvQn+NsGn+jMDMKJYHd3bSQ==", + "license": "ISC" + }, "node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -7915,10 +7833,11 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", "dev": true, + "license": "MIT", "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -7942,6 +7861,7 @@ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -7949,14 +7869,16 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -7967,6 +7889,7 @@ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "dev": true, + "license": "MIT", "dependencies": { "setimmediate": "^1.0.4" }, @@ -7977,14 +7900,16 @@ "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true, + "license": "MIT" }, "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -7995,8 +7920,9 @@ "node_modules/to-object-path/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -8009,6 +7935,7 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, + "license": "MIT", "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -8024,6 +7951,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -8032,10 +7960,11 @@ } }, "node_modules/ts-loader": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.2.0.tgz", - "integrity": "sha512-ebXBFrNyMSmbWgjnb3WBloUBK+VSx1xckaXsMXxlZRDqce/OPdYBVN5efB0W3V0defq0Gcy4YuzvPGqRgjj85A==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.4.0.tgz", + "integrity": "sha512-6nFY3IZ2//mrPc+ImY3hNWx1vCHyEhl6V+wLmL4CZcm6g1CqX7UKrkc6y0i4FwcfOhxyMPCfaEvh20f4r9GNpw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^4.0.0", @@ -8051,44 +7980,12 @@ "webpack": "*" } }, - "node_modules/ts-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/ts-node": { "version": "9.1.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", "dev": true, + "license": "MIT", "dependencies": { "arg": "^4.1.0", "create-require": "^1.1.0", @@ -8115,27 +8012,30 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", + "json5": "^1.0.2", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -8144,16 +8044,18 @@ } }, "node_modules/tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" }, "node_modules/tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -8167,14 +8069,16 @@ "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true, + "license": "MIT" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -8183,21 +8087,26 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typed-array-buffer": { @@ -8281,14 +8190,16 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" }, "node_modules/typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8298,14 +8209,11 @@ } }, "node_modules/uglify-js": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", - "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, - "dependencies": { - "commander": "~2.20.0", - "source-map": "~0.6.1" - }, + "license": "BSD-2-Clause", "bin": { "uglifyjs": "bin/uglifyjs" }, @@ -8313,20 +8221,12 @@ "node": ">=0.8.0" } }, - "node_modules/uglify-js/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/uglifyjs-webpack-plugin": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.2.0.tgz", "integrity": "sha512-mHSkufBmBuJ+KHQhv5H0MXijtsoA1lynJt1lXOaotja8/I0pR4L9oGaPIZw+bQBOFittXZg9OC1sXSGO9D9ZYg==", "dev": true, + "license": "MIT", "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -8345,72 +8245,12 @@ "webpack": "^4.0.0" } }, - "node_modules/uglifyjs-webpack-plugin/node_modules/bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", - "dev": true - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/cacache": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", - "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/cacache/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "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" - }, - "engines": { - "node": "*" - } - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/uglifyjs-webpack-plugin/node_modules/serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "BSD-3-Clause" }, "node_modules/unbox-primitive": { "version": "1.1.0", @@ -8436,6 +8276,7 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, + "license": "MIT", "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -8446,20 +8287,32 @@ "node": ">=0.10.0" } }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, + "license": "ISC", "dependencies": { "unique-slug": "^2.0.0" } }, "node_modules/unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" } @@ -8467,8 +8320,9 @@ "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, + "license": "MIT", "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -8480,8 +8334,9 @@ "node_modules/unset-value/node_modules/has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", "dev": true, + "license": "MIT", "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -8494,8 +8349,9 @@ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dev": true, + "license": "MIT", "dependencies": { "isarray": "1.0.0" }, @@ -8506,17 +8362,26 @@ "node_modules/unset-value/node_modules/has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=4", @@ -8524,10 +8389,11 @@ } }, "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -8535,31 +8401,38 @@ "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", "dev": true, + "license": "MIT", "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8569,6 +8442,7 @@ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "2.0.3" } @@ -8576,36 +8450,37 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } + "license": "MIT" }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/watchpack": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" @@ -8620,6 +8495,7 @@ "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "chokidar": "^2.1.8" @@ -8630,6 +8506,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, + "license": "ISC", "optional": true, "dependencies": { "micromatch": "^3.1.4", @@ -8639,8 +8516,9 @@ "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "remove-trailing-separator": "^1.0.1" @@ -8654,6 +8532,7 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=0.10.0" @@ -8664,6 +8543,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "arr-flatten": "^1.1.0", @@ -8684,8 +8564,9 @@ "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "is-extendable": "^0.1.0" @@ -8698,8 +8579,8 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "anymatch": "^2.0.0", @@ -8721,8 +8602,9 @@ "node_modules/watchpack-chokidar2/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "extend-shallow": "^2.0.1", @@ -8737,8 +8619,9 @@ "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "is-extendable": "^0.1.0" @@ -8751,9 +8634,10 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -8769,8 +8653,9 @@ "node_modules/watchpack-chokidar2/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, + "license": "ISC", "optional": true, "dependencies": { "is-glob": "^3.1.0", @@ -8780,8 +8665,9 @@ "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "is-extglob": "^2.1.0" @@ -8793,8 +8679,9 @@ "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "binary-extensions": "^1.0.0" @@ -8803,11 +8690,23 @@ "node": ">=0.10.0" } }, + "node_modules/watchpack-chokidar2/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/watchpack-chokidar2/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "kind-of": "^3.0.2" @@ -8819,8 +8718,9 @@ "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "is-buffer": "^1.1.5" @@ -8834,6 +8734,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "arr-diff": "^4.0.0", @@ -8859,6 +8760,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "graceful-fs": "^4.1.11", @@ -8872,8 +8774,9 @@ "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "is-number": "^3.0.0", @@ -8884,10 +8787,11 @@ } }, "node_modules/webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", "dev": true, + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -8937,6 +8841,7 @@ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^2.4.2", "cross-spawn": "^6.0.5", @@ -8961,10 +8866,11 @@ } }, "node_modules/webpack-cli/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -8974,6 +8880,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -8986,15 +8893,27 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, + "node_modules/webpack-cli/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/webpack-cli/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -9009,6 +8928,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -9021,6 +8941,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -9032,6 +8953,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -9039,14 +8961,16 @@ "node_modules/webpack-cli/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" }, "node_modules/webpack-cli/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "dev": true, + "license": "MIT", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -9058,51 +8982,72 @@ "node": ">=4.8" } }, + "node_modules/webpack-cli/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webpack-cli/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/webpack-cli/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "node_modules/webpack-cli/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.8.0" } }, - "node_modules/webpack-cli/node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "node_modules/webpack-cli/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, + "license": "MIT", "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "locate-path": "^3.0.0" }, "engines": { "node": ">=6" } }, + "node_modules/webpack-cli/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/webpack-cli/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/webpack-cli/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -9111,10 +9056,11 @@ } }, "node_modules/webpack-cli/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -9124,41 +9070,85 @@ "node": ">=4.0.0" } }, - "node_modules/webpack-cli/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "node_modules/webpack-cli/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webpack-cli/node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "node_modules/webpack-cli/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, + "license": "MIT", "dependencies": { - "resolve-from": "^3.0.0" + "p-limit": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/webpack-cli/node_modules/resolve-from": { + "node_modules/webpack-cli/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-cli/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/webpack-cli/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/webpack-cli/node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^1.0.0" }, @@ -9169,8 +9159,9 @@ "node_modules/webpack-cli/node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9180,6 +9171,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -9194,6 +9186,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -9206,6 +9199,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -9218,6 +9212,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -9230,6 +9225,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -9244,6 +9240,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -9262,6 +9259,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -9272,25 +9270,18 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, + "license": "MIT", "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" } }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack/node_modules/acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -9298,36 +9289,12 @@ "node": ">=0.4.0" } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/webpack/node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -9337,6 +9304,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -9356,8 +9324,9 @@ "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -9370,6 +9339,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -9378,17 +9348,22 @@ "node": ">=4.0.0" } }, - "node_modules/webpack/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, "node_modules/webpack/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -9402,8 +9377,9 @@ "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -9411,11 +9387,22 @@ "node": ">=0.10.0" } }, + "node_modules/webpack/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webpack/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -9426,8 +9413,9 @@ "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -9436,10 +9424,11 @@ } }, "node_modules/webpack/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -9448,10 +9437,11 @@ } }, "node_modules/webpack/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -9464,8 +9454,9 @@ "node_modules/webpack/node_modules/memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", "dev": true, + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -9476,6 +9467,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -9495,29 +9487,12 @@ "node": ">=0.10.0" } }, - "node_modules/webpack/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/webpack/node_modules/mkdirp/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, "node_modules/webpack/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -9531,6 +9506,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -9589,13 +9565,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-builtin-type/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, "node_modules/which-collection": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", @@ -9616,10 +9585,11 @@ } }, "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" }, "node_modules/which-typed-array": { "version": "1.1.19", @@ -9648,15 +9618,17 @@ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^1.0.2 || 2" } }, "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -9664,8 +9636,9 @@ "node_modules/wide-align/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -9675,6 +9648,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, + "license": "MIT", "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -9686,8 +9660,9 @@ "node_modules/wide-align/node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^3.0.0" }, @@ -9696,10 +9671,11 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9709,6 +9685,7 @@ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, + "license": "MIT", "dependencies": { "errno": "~0.1.7" } @@ -9717,13 +9694,15 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -9739,35 +9718,40 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" }, "node_modules/xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" } }, "node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" }, "node_modules/yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -9786,6 +9770,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -9795,6 +9780,7 @@ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -9805,35 +9791,12 @@ "node": ">=10" } }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/yargs/node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -9843,6 +9806,7 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -9852,6 +9816,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index 0d11576..2ed087a 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ ], "dependencies": { "big.js": "^6.1.1", - "luxon": "^1.26.0" + "temporal-polyfill": "^0.3.0" }, "devDependencies": { "@types/big.js": "^6.0.2", diff --git a/src/AstronomicalCalendar.ts b/src/AstronomicalCalendar.ts index 94dfb39..10c56c1 100644 --- a/src/AstronomicalCalendar.ts +++ b/src/AstronomicalCalendar.ts @@ -1,5 +1,5 @@ import { Big } from 'big.js'; -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { Long_MIN_VALUE, TimeZone, ValueOf } from './polyfills/Utils'; import { GeoLocation } from './util/GeoLocation'; @@ -78,7 +78,7 @@ export class AstronomicalCalendar { /** * The Java Calendar encapsulated by this class to track the current date used by the class */ - private date!: DateTime; + private date!: Temporal.PlainDate; /** * the {@link GeoLocation} used for calculations. @@ -106,7 +106,7 @@ export class AstronomicalCalendar { * @see #getSeaLevelSunrise() * @see AstronomicalCalendar#getUTCSunrise */ - public getSunrise(): DateTime | null { + public getSunrise(): Temporal.ZonedDateTime | null { const sunrise: number = this.getUTCSunrise(AstronomicalCalendar.GEOMETRIC_ZENITH); if (Number.isNaN(sunrise)) return null; return this.getDateFromTime(sunrise, AstronomicalCalendar.SolarEvent.SUNRISE); @@ -125,7 +125,7 @@ export class AstronomicalCalendar { * @see AstronomicalCalendar#getUTCSeaLevelSunrise * @see #getSeaLevelSunset() */ - public getSeaLevelSunrise(): DateTime | null { + public getSeaLevelSunrise(): Temporal.ZonedDateTime | null { const sunrise: number = this.getUTCSeaLevelSunrise(AstronomicalCalendar.GEOMETRIC_ZENITH); if (Number.isNaN(sunrise)) return null; return this.getDateFromTime(sunrise, AstronomicalCalendar.SolarEvent.SUNRISE); @@ -139,7 +139,7 @@ export class AstronomicalCalendar { * can't be computed, null will be returned. See detailed explanation on top of the page. * @see #CIVIL_ZENITH */ - public getBeginCivilTwilight(): DateTime | null { + public getBeginCivilTwilight(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(AstronomicalCalendar.CIVIL_ZENITH); } @@ -152,7 +152,7 @@ export class AstronomicalCalendar { * calculation can't be computed null will be returned. See detailed explanation on top of the page. * @see #NAUTICAL_ZENITH */ - public getBeginNauticalTwilight(): DateTime | null { + public getBeginNauticalTwilight(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(AstronomicalCalendar.NAUTICAL_ZENITH); } @@ -165,7 +165,7 @@ export class AstronomicalCalendar { * calculation can't be computed, null will be returned. See detailed explanation on top of the page. * @see #ASTRONOMICAL_ZENITH */ - public getBeginAstronomicalTwilight(): DateTime | null { + public getBeginAstronomicalTwilight(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(AstronomicalCalendar.ASTRONOMICAL_ZENITH); } @@ -188,7 +188,7 @@ export class AstronomicalCalendar { * @see #getSeaLevelSunset() * @see AstronomicalCalendar#getUTCSunset */ - public getSunset(): DateTime | null { + public getSunset(): Temporal.ZonedDateTime | null { const sunset: number = this.getUTCSunset(AstronomicalCalendar.GEOMETRIC_ZENITH); if (Number.isNaN(sunset)) return null; return this.getDateFromTime(sunset, AstronomicalCalendar.SolarEvent.SUNSET); @@ -207,7 +207,7 @@ export class AstronomicalCalendar { * @see AstronomicalCalendar#getUTCSeaLevelSunset * @see #getSunset() */ - public getSeaLevelSunset(): DateTime | null { + public getSeaLevelSunset(): Temporal.ZonedDateTime | null { const sunset: number = this.getUTCSeaLevelSunset(AstronomicalCalendar.GEOMETRIC_ZENITH); if (Number.isNaN(sunset)) return null; return this.getDateFromTime(sunset, AstronomicalCalendar.SolarEvent.SUNSET); @@ -221,7 +221,7 @@ export class AstronomicalCalendar { * the calculation can't be computed, null will be returned. See detailed explanation on top of the page. * @see #CIVIL_ZENITH */ - public getEndCivilTwilight(): DateTime | null { + public getEndCivilTwilight(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(AstronomicalCalendar.CIVIL_ZENITH); } @@ -233,7 +233,7 @@ export class AstronomicalCalendar { * page. * @see #NAUTICAL_ZENITH */ - public getEndNauticalTwilight(): DateTime | null { + public getEndNauticalTwilight(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(AstronomicalCalendar.NAUTICAL_ZENITH); } @@ -245,7 +245,7 @@ export class AstronomicalCalendar { * of the page. * @see #ASTRONOMICAL_ZENITH */ - public getEndAstronomicalTwilight(): DateTime | null { + public getEndAstronomicalTwilight(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(AstronomicalCalendar.ASTRONOMICAL_ZENITH); } @@ -261,12 +261,12 @@ export class AstronomicalCalendar { * the offset in milliseconds to add to the time. * @return the {@link java.util.Date} with the offset in milliseconds added to it */ - public static getTimeOffset(time: DateTime | null, offset: number): DateTime | null { + public static getTimeOffset(time: Temporal.ZonedDateTime | null, offset: number): Temporal.ZonedDateTime | null { if (time === null || offset === Long_MIN_VALUE || Number.isNaN(offset)) { return null; } - return time.plus({ milliseconds: offset }); + return time.add({ milliseconds: Math.trunc(offset) }); } /** @@ -284,7 +284,7 @@ export class AstronomicalCalendar { * not rise, and one where it does not set, a null will be returned. See detailed explanation on top of the * page. */ - public getSunriseOffsetByDegrees(offsetZenith: number): DateTime | null { + public getSunriseOffsetByDegrees(offsetZenith: number): Temporal.ZonedDateTime | null { const dawn: number = this.getUTCSunrise(offsetZenith); if (Number.isNaN(dawn)) return null; return this.getDateFromTime(dawn, AstronomicalCalendar.SolarEvent.SUNRISE); @@ -304,7 +304,7 @@ export class AstronomicalCalendar { * rise, and one where it does not set, a null will be returned. See detailed explanation on top of the * page. */ - public getSunsetOffsetByDegrees(offsetZenith: number): DateTime | null { + public getSunsetOffsetByDegrees(offsetZenith: number): Temporal.ZonedDateTime | null { const sunset: number = this.getUTCSunset(offsetZenith); if (Number.isNaN(sunset)) return null; return this.getDateFromTime(sunset, AstronomicalCalendar.SolarEvent.SUNSET); @@ -333,7 +333,7 @@ export class AstronomicalCalendar { * @see #ComplexZmanimCalendar(GeoLocation) */ constructor(geoLocation: GeoLocation = new GeoLocation()) { - this.setDate(DateTime.fromObject({ zone: geoLocation.getTimeZone() })); + this.setDate(Temporal.Now.plainDateISO()); this.setGeoLocation(geoLocation); // duplicate call this.setAstronomicalCalculator(new NOAACalculator()); } @@ -445,12 +445,12 @@ export class AstronomicalCalendar { * * @see #getTemporalHour() */ - public getTemporalHour(startOfDay: DateTime | null = this.getSeaLevelSunrise(), - endOfDay: DateTime | null = this.getSeaLevelSunset()): number { + public getTemporalHour(startOfDay: Temporal.ZonedDateTime | null = this.getSeaLevelSunrise(), + endOfDay: Temporal.ZonedDateTime | null = this.getSeaLevelSunset()): number { if (startOfDay === null || endOfDay === null) { return Long_MIN_VALUE; } - return (endOfDay.valueOf() - startOfDay.valueOf()) / 12; + return (endOfDay.epochMilliseconds - startOfDay.epochMilliseconds) / 12; } /** @@ -495,16 +495,16 @@ export class AstronomicalCalendar { * @see com.kosherjava.zmanim.util.NOAACalculator#getUTCNoon(Calendar, GeoLocation) * @see com.kosherjava.zmanim.util.SunTimesCalculator#getUTCNoon(Calendar, GeoLocation) */ - public getSunTransit(): DateTime | null; - public getSunTransit(startOfDay: DateTime | null, endOfDay: DateTime | null): DateTime | null; - public getSunTransit(startOfDay?: DateTime | null, endOfDay?: DateTime | null): DateTime | null { + public getSunTransit(): Temporal.ZonedDateTime | null; + public getSunTransit(startOfDay: Temporal.ZonedDateTime | null, endOfDay: Temporal.ZonedDateTime | null): Temporal.ZonedDateTime | null; + public getSunTransit(startOfDay?: Temporal.ZonedDateTime | null, endOfDay?: Temporal.ZonedDateTime | null): Temporal.ZonedDateTime | null { if (startOfDay === undefined && endOfDay === undefined) { const noon = this.getAstronomicalCalculator().getUTCNoon(this.getAdjustedDate(), this.getGeoLocation()); return this.getDateFromTime(noon, AstronomicalCalendar.SolarEvent.NOON); } const temporalHour: number = this.getTemporalHour(startOfDay, endOfDay); - return AstronomicalCalendar.getTimeOffset(startOfDay as DateTime | null, temporalHour * 6); + return AstronomicalCalendar.getTimeOffset(startOfDay as Temporal.ZonedDateTime | null, temporalHour * 6); } /** @@ -535,7 +535,7 @@ export class AstronomicalCalendar { * @see com.kosherjava.zmanim.util.NOAACalculator#getUTCNoon(Calendar, GeoLocation) * @see com.kosherjava.zmanim.util.SunTimesCalculator#getUTCNoon(Calendar, GeoLocation) */ - public getSunLowerTransit(): DateTime | null { + public getSunLowerTransit(): Temporal.ZonedDateTime | null { return this.getSolarMidnight(); } @@ -564,7 +564,7 @@ export class AstronomicalCalendar { * @see com.kosherjava.zmanim.util.NOAACalculator#getUTCNoon(Calendar, GeoLocation) * @see com.kosherjava.zmanim.util.SunTimesCalculator#getUTCNoon(Calendar, GeoLocation) */ - public getSolarMidnight(): DateTime | null { + public getSolarMidnight(): Temporal.ZonedDateTime | null { const noon: number = this.getAstronomicalCalculator().getUTCMidnight(this.getAdjustedDate(), this.getGeoLocation()); return this.getDateFromTime(noon, AstronomicalCalendar.SolarEvent.MIDNIGHT); } @@ -592,14 +592,14 @@ export class AstronomicalCalendar { * @param solarEvent - the type of {@link SolarEvent} * @return The Date - object representation of the time double */ - protected getDateFromTime(time: number, solarEvent: ValueOf): DateTime | null { + protected getDateFromTime(time: number, solarEvent: ValueOf): Temporal.ZonedDateTime | null { if (Number.isNaN(time)) { return null; } let calculatedTime: number = time; - const adjustedDate: DateTime = this.getAdjustedDate(); - let cal = DateTime.utc(adjustedDate.year, adjustedDate.month, adjustedDate.day); + const adjustedDate: Temporal.PlainDate = this.getAdjustedDate(); + let cal = adjustedDate; const hours: number = Math.trunc(calculatedTime); // retain only the hours calculatedTime -= hours; @@ -612,19 +612,23 @@ export class AstronomicalCalendar { // actually not the target date, but the day prior or after const localTimeHours: number = Math.trunc(this.getGeoLocation().getLongitude() / 15); if (solarEvent === AstronomicalCalendar.SolarEvent.SUNRISE && localTimeHours + hours > 18) { - cal = cal.minus({ days: 1 }); + cal = cal.subtract({ days: 1 }); } else if (solarEvent === AstronomicalCalendar.SolarEvent.SUNSET && localTimeHours + hours < 6) { - cal = cal.plus({ days: 1 }); + cal = cal.add({ days: 1 }); } else if (solarEvent === AstronomicalCalendar.SolarEvent.MIDNIGHT && localTimeHours + hours < 12) { - cal = cal.plus({ days: 1 }); + cal = cal.add({ days: 1 }); } - return cal.set({ - hour: hours, - minute: minutes, - second: seconds, - millisecond: Math.trunc(calculatedTime * 1000), - }); + return cal.toZonedDateTime({ + timeZone: 'UTC', + plainTime: new Temporal.PlainTime( + hours, + minutes, + seconds, + Math.trunc(calculatedTime * 1000), + ), + }) + .withTimeZone(this.geoLocation.getTimeZone()); } /** @@ -641,15 +645,15 @@ export class AstronomicalCalendar { public getSunriseSolarDipFromOffset(minutes: number): number | null { if (Number.isNaN(minutes)) return null; - let offsetByDegrees: DateTime | null = this.getSeaLevelSunrise(); - const offsetByTime: DateTime | null = AstronomicalCalendar.getTimeOffset(this.getSeaLevelSunrise(), -(minutes * AstronomicalCalendar.MINUTE_MILLIS)); + let offsetByDegrees: Temporal.ZonedDateTime | null = this.getSeaLevelSunrise(); + const offsetByTime: Temporal.ZonedDateTime | null = AstronomicalCalendar.getTimeOffset(this.getSeaLevelSunrise(), -(minutes * AstronomicalCalendar.MINUTE_MILLIS)); let degrees: Big = new Big(0); const incrementor: Big = new Big('0.0001'); // If `minutes` is not `NaN` and `offsetByDegrees` is not null, `offsetByTime` should not be null - while (offsetByDegrees === null || ((minutes < 0 && offsetByDegrees < offsetByTime!) - || (minutes > 0 && offsetByDegrees > offsetByTime!))) { + while (offsetByDegrees === null || ((minutes < 0 && Temporal.ZonedDateTime.compare(offsetByDegrees, offsetByTime!) < 0) + || (minutes > 0 && Temporal.ZonedDateTime.compare(offsetByDegrees, offsetByTime!) > 0))) { if (minutes > 0) { degrees = degrees.add(incrementor); } else { @@ -676,15 +680,15 @@ export class AstronomicalCalendar { public getSunsetSolarDipFromOffset(minutes: number): number | null { if (Number.isNaN(minutes)) return null; - let offsetByDegrees: DateTime | null = this.getSeaLevelSunset(); - const offsetByTime: DateTime | null = AstronomicalCalendar.getTimeOffset(this.getSeaLevelSunset(), minutes * AstronomicalCalendar.MINUTE_MILLIS); + let offsetByDegrees: Temporal.ZonedDateTime | null = this.getSeaLevelSunset(); + const offsetByTime: Temporal.ZonedDateTime | null = AstronomicalCalendar.getTimeOffset(this.getSeaLevelSunset(), minutes * AstronomicalCalendar.MINUTE_MILLIS); let degrees: Big = new Big(0); const incrementor: Big = new Big('0.001'); // If `minutes` is not `NaN` and `offsetByDegrees` is not null, `offsetByTime` should not be null - while (offsetByDegrees == null || ((minutes > 0 && offsetByDegrees < offsetByTime!) - || (minutes < 0 && offsetByDegrees > offsetByTime!))) { + while (offsetByDegrees === null || ((minutes > 0 && Temporal.ZonedDateTime.compare(offsetByDegrees, offsetByTime!) < 0) + || (minutes < 0 && Temporal.ZonedDateTime.compare(offsetByDegrees, offsetByTime!) > 0))) { if (minutes > 0) { degrees = degrees.add(incrementor); } else { @@ -714,7 +718,7 @@ export class AstronomicalCalendar { * (noon) will return 11:56:50am. * @see GeoLocation#getLocalMeanTimeOffset() */ - public getLocalMeanTime(hours: number): DateTime | null { + public getLocalMeanTime(hours: number): Temporal.ZonedDateTime | null { if (hours < 0 || hours >= 24) { throw new IllegalArgumentException('Hours must between 0 and 23.9999...'); } @@ -729,10 +733,10 @@ export class AstronomicalCalendar { * @see GeoLocation#getAntimeridianAdjustment() * @return the adjusted Calendar */ - private getAdjustedDate(): DateTime { + private getAdjustedDate(): Temporal.PlainDate { const offset: -1 | 0 | 1 = this.getGeoLocation().getAntimeridianAdjustment(); if (offset === 0) return this.getDate(); - return this.getDate().plus({ days: offset }); + return this.getDate().add({ days: offset }); } /** @@ -795,7 +799,7 @@ export class AstronomicalCalendar { */ public setGeoLocation(geoLocation: GeoLocation): void { this.geoLocation = geoLocation; - this.date = this.date.setZone(geoLocation.getTimeZone()); + // this.date = this.date.setZone(geoLocation.getTimeZone()); } /** @@ -828,7 +832,7 @@ export class AstronomicalCalendar { * * @return Returns the calendar. */ - public getDate(): DateTime { + public getDate(): Temporal.PlainDate { return this.date; } @@ -837,15 +841,17 @@ export class AstronomicalCalendar { * @param date * The calendar to set. */ - public setDate(date: DateTime | Date | string | number): void { - if (DateTime.isDateTime(date)) { + public setDate(date: Temporal.PlainDate | Date | string | number): void { + if (date instanceof Temporal.PlainDate) { this.date = date; } else if (date instanceof Date) { - this.date = DateTime.fromJSDate(date); + const instant = Temporal.Instant.fromEpochMilliseconds(date.getTime()); + this.date = instant.toZonedDateTimeISO(this.geoLocation.getTimeZone()).toPlainDate(); } else if (typeof date === 'string') { - this.date = DateTime.fromISO(date); + this.date = Temporal.PlainDate.from(date); } else if (typeof date === 'number') { - this.date = DateTime.fromMillis(date); + const instant = Temporal.Instant.fromEpochMilliseconds(date); + this.date = instant.toZonedDateTimeISO(this.geoLocation.getTimeZone()).toPlainDate(); } } diff --git a/src/ComplexZmanimCalendar.ts b/src/ComplexZmanimCalendar.ts index 36ec678..a459076 100644 --- a/src/ComplexZmanimCalendar.ts +++ b/src/ComplexZmanimCalendar.ts @@ -1,9 +1,13 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { Calendar, Long_MIN_VALUE } from './polyfills/Utils'; import { ZmanimCalendar } from './ZmanimCalendar'; import { JewishCalendar } from './hebrewcalendar/JewishCalendar'; +function zdtMax(a: Temporal.ZonedDateTime, b: Temporal.ZonedDateTime): Temporal.ZonedDateTime { + return a.epochMilliseconds > b.epochMilliseconds ? a : b; +} + /** *

This class extends ZmanimCalendar and provides many more zmanim than available in the ZmanimCalendar. The basis * for most zmanim in this class are from the sefer Yisroel @@ -778,7 +782,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getPlagHamincha26Degrees() * @see #getPlagHamincha120Minutes() */ - public getPlagHamincha120MinutesZmanis(): DateTime | null { + public getPlagHamincha120MinutesZmanis(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos120Zmanis(), this.getTzais120Zmanis(), true); } @@ -802,7 +806,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis120Minutes() * @see #getPlagHamincha26Degrees() */ - public getPlagHamincha120Minutes(): DateTime | null { + public getPlagHamincha120Minutes(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos120(), this.getTzais120(), true); } @@ -838,7 +842,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getPlagHamincha60Minutes() * @see #getShaahZmanis60Minutes() */ - public getAlos60(): DateTime | null { + public getAlos60(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunrise(), -60 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -858,7 +862,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #getShaahZmanisGra() */ - public getAlos72Zmanis(): DateTime | null { + public getAlos72Zmanis(): Temporal.ZonedDateTime | null { return this.getZmanisBasedOffset(-1.2); } @@ -877,7 +881,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * a null will be returned. See detailed explanation on top of the {@link AstronomicalCalendar} * documentation. */ - public getAlos96(): DateTime | null { + public getAlos96(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunrise(), -96 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -897,7 +901,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #getShaahZmanisGra() */ - public getAlos90Zmanis(): DateTime | null { + public getAlos90Zmanis(): Temporal.ZonedDateTime | null { return this.getZmanisBasedOffset(-1.5); } @@ -917,7 +921,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #getShaahZmanisGra() */ - public getAlos96Zmanis(): DateTime | null { + public getAlos96Zmanis(): Temporal.ZonedDateTime | null { return this.getZmanisBasedOffset(-1.6); } @@ -935,7 +939,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * a null will be returned. See detailed explanation on top of the {@link AstronomicalCalendar} * documentation. */ - public getAlos90(): DateTime | null { + public getAlos90(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunrise(), -90 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -963,7 +967,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getTzais120() * @see #getAlos26Degrees() */ - public getAlos120(): DateTime | null { + public getAlos120(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunrise(), -120 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -992,7 +996,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos120() * @see #getAlos26Degrees() */ - public getAlos120Zmanis(): DateTime | null { + public getAlos120Zmanis(): Temporal.ZonedDateTime | null { return this.getZmanisBasedOffset(-2); } @@ -1020,7 +1024,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getTzais120() * @see #getTzais26Degrees() */ - public getAlos26Degrees(): DateTime | null { + public getAlos26Degrees(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_26_DEGREES); } @@ -1034,7 +1038,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * See detailed explanation on top of the {@link AstronomicalCalendar} documentation. * @see #ASTRONOMICAL_ZENITH */ - public getAlos18Degrees(): DateTime | null { + public getAlos18Degrees(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ASTRONOMICAL_ZENITH); } @@ -1053,7 +1057,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * See detailed explanation on top of the {@link AstronomicalCalendar} documentation. * @see #ASTRONOMICAL_ZENITH */ - public getAlos19Degrees(): DateTime | null { + public getAlos19Degrees(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_19_DEGREES); } @@ -1072,7 +1076,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #ZENITH_19_POINT_8 * @see #getAlos90() */ - public getAlos19Point8Degrees(): DateTime | null { + public getAlos19Point8Degrees(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_19_POINT_8); } @@ -1091,7 +1095,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #ZENITH_16_POINT_1 * @see #getAlos72() */ - public getAlos16Point1Degrees(): DateTime | null { + public getAlos16Point1Degrees(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_16_POINT_1); } @@ -1110,7 +1114,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * detailed explanation on top of the {@link AstronomicalCalendar} documentation. * @see #ZENITH_11_POINT_5 */ - public getMisheyakir11Point5Degrees(): DateTime | null { + public getMisheyakir11Point5Degrees(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_11_POINT_5); } @@ -1128,7 +1132,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * {@link AstronomicalCalendar} documentation. * @see #ZENITH_11_DEGREES */ - public getMisheyakir11Degrees(): DateTime | null { + public getMisheyakir11Degrees(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_11_DEGREES); } @@ -1146,7 +1150,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * See detailed explanation on top of the {@link AstronomicalCalendar} documentation. * @see #ZENITH_10_POINT_2 */ - public getMisheyakir10Point2Degrees(): DateTime | null { + public getMisheyakir10Point2Degrees(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_10_POINT_2); } @@ -1179,7 +1183,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #ZENITH_7_POINT_65 * @see #getMisheyakir9Point5Degrees() */ - public getMisheyakir7Point65Degrees(): DateTime | null { + public getMisheyakir7Point65Degrees(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_7_POINT_65); } @@ -1207,7 +1211,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #ZENITH_9_POINT_5 * @see #getMisheyakir7Point65Degrees() */ - public getMisheyakir9Point5Degrees(): DateTime | null { + public getMisheyakir9Point5Degrees(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_9_POINT_5); } @@ -1227,7 +1231,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis19Point8Degrees() * @see #getAlos19Point8Degrees() */ - public getSofZmanShmaMGA19Point8Degrees(): DateTime | null { + public getSofZmanShmaMGA19Point8Degrees(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos19Point8Degrees(), this.getTzais19Point8Degrees(), true); } @@ -1247,7 +1251,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis16Point1Degrees() * @see #getAlos16Point1Degrees() */ - public getSofZmanShmaMGA16Point1Degrees(): DateTime | null { + public getSofZmanShmaMGA16Point1Degrees(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos16Point1Degrees(), this.getTzais16Point1Degrees(), true); } @@ -1267,7 +1271,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis18Degrees() * @see #getAlos18Degrees() */ - public getSofZmanShmaMGA18Degrees(): DateTime | null { + public getSofZmanShmaMGA18Degrees(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos18Degrees(), this.getTzais18Degrees(), true); } @@ -1290,7 +1294,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos72() * @see #getSofZmanShmaMGA() */ - public getSofZmanShmaMGA72Minutes(): DateTime | null { + public getSofZmanShmaMGA72Minutes(): Temporal.ZonedDateTime | null { return this.getSofZmanShmaMGA(); } @@ -1313,7 +1317,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos72Zmanis() * @see #isUseAstronomicalChatzosForOtherZmanim() */ - public getSofZmanShmaMGA72MinutesZmanis(): DateTime | null { + public getSofZmanShmaMGA72MinutesZmanis(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos72Zmanis(), this.getTzais72Zmanis(), true); } @@ -1334,7 +1338,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos90() * @see #isUseAstronomicalChatzosForOtherZmanim() */ - public getSofZmanShmaMGA90Minutes(): DateTime | null { + public getSofZmanShmaMGA90Minutes(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos90(), this.getTzais90(), true); } @@ -1356,7 +1360,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos90Zmanis() * @see #isUseAstronomicalChatzosForOtherZmanim() */ - public getSofZmanShmaMGA90MinutesZmanis(): DateTime | null { + public getSofZmanShmaMGA90MinutesZmanis(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos90Zmanis(), this.getTzais90Zmanis(), true); } @@ -1377,7 +1381,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos96() * @see #isUseAstronomicalChatzosForOtherZmanim() */ - public getSofZmanShmaMGA96Minutes(): DateTime | null { + public getSofZmanShmaMGA96Minutes(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos96(), this.getTzais96(), true); } @@ -1399,7 +1403,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos96Zmanis() * @see #isUseAstronomicalChatzosForOtherZmanim() */ - public getSofZmanShmaMGA96MinutesZmanis(): DateTime | null { + public getSofZmanShmaMGA96MinutesZmanis(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos96Zmanis(), this.getTzais96Zmanis(), true); } @@ -1430,7 +1434,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getSofZmanTfila2HoursBeforeChatzos() * @see #isUseAstronomicalChatzos() */ - public getSofZmanShma3HoursBeforeChatzos(): DateTime | null { + public getSofZmanShma3HoursBeforeChatzos(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getChatzos(), -180 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -1452,7 +1456,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos120() * @see #isUseAstronomicalChatzosForOtherZmanim() */ - public getSofZmanShmaMGA120Minutes(): DateTime | null { + public getSofZmanShmaMGA120Minutes(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos120(), this.getTzais120(), true); } @@ -1478,7 +1482,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos16Point1Degrees() * @see #getSeaLevelSunset() */ - public getSofZmanShmaAlos16Point1ToSunset(): DateTime | null { + public getSofZmanShmaAlos16Point1ToSunset(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos16Point1Degrees(), this.getElevationAdjustedSunset()); } @@ -1501,7 +1505,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos16Point1Degrees() * @see #getTzaisGeonim7Point083Degrees() */ - public getSofZmanShmaAlos16Point1ToTzaisGeonim7Point083Degrees(): DateTime | null { + public getSofZmanShmaAlos16Point1ToTzaisGeonim7Point083Degrees(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos16Point1Degrees(), this.getTzaisGeonim7Point083Degrees()); } @@ -1521,12 +1525,12 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * the Yisrael Vehazmanim was based on a misunderstanding and should not be used. This deprecated method * will be removed pending confirmation from Rabbi Harfenes. */ - public getSofZmanShmaKolEliyahu(): DateTime | null { - const chatzos: DateTime | null = this.getFixedLocalChatzos(); + public getSofZmanShmaKolEliyahu(): Temporal.ZonedDateTime | null { + const chatzos: Temporal.ZonedDateTime | null = this.getFixedLocalChatzos(); if (chatzos === null || this.getSunrise() === null) { return null; } - const diff: number = (chatzos.valueOf() - this.getElevationAdjustedSunrise()!.valueOf()) / 2; + const diff: number = (chatzos.epochMilliseconds - this.getElevationAdjustedSunrise()!.epochMilliseconds) / 2; return ComplexZmanimCalendar.getTimeOffset(chatzos, -diff); } @@ -1548,7 +1552,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos19Point8Degrees() * @see #isUseAstronomicalChatzosForOtherZmanim() */ - public getSofZmanTfilaMGA19Point8Degrees(): DateTime | null { + public getSofZmanTfilaMGA19Point8Degrees(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos19Point8Degrees(), this.getTzais19Point8Degrees(), true); } @@ -1569,7 +1573,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis16Point1Degrees() * @see #getAlos16Point1Degrees() */ - public getSofZmanTfilaMGA16Point1Degrees(): DateTime | null { + public getSofZmanTfilaMGA16Point1Degrees(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos16Point1Degrees(), this.getTzais16Point1Degrees(), true); } @@ -1590,7 +1594,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis18Degrees() * @see #getAlos18Degrees() */ - public getSofZmanTfilaMGA18Degrees(): DateTime | null { + public getSofZmanTfilaMGA18Degrees(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos18Degrees(), this.getTzais18Degrees(), true); } @@ -1612,7 +1616,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos72() * @see #getSofZmanShmaMGA() */ - public getSofZmanTfilaMGA72Minutes(): DateTime | null { + public getSofZmanTfilaMGA72Minutes(): Temporal.ZonedDateTime | null { return this.getSofZmanTfilaMGA(); } @@ -1632,7 +1636,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis72MinutesZmanis() * @see #getAlos72Zmanis() */ - public getSofZmanTfilaMGA72MinutesZmanis(): DateTime | null { + public getSofZmanTfilaMGA72MinutesZmanis(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos72Zmanis(), this.getTzais72Zmanis(), true); } @@ -1652,7 +1656,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis90Minutes() * @see #getAlos90() */ - public getSofZmanTfilaMGA90Minutes(): DateTime | null { + public getSofZmanTfilaMGA90Minutes(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos90(), this.getTzais90(), true); } @@ -1673,7 +1677,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis90MinutesZmanis() * @see #getAlos90Zmanis() */ - public getSofZmanTfilaMGA90MinutesZmanis(): DateTime | null { + public getSofZmanTfilaMGA90MinutesZmanis(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos90Zmanis(), this.getTzais90Zmanis(), true); } @@ -1693,7 +1697,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis96Minutes() * @see #getAlos96() */ - public getSofZmanTfilaMGA96Minutes(): DateTime | null { + public getSofZmanTfilaMGA96Minutes(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos96(), this.getTzais96(), true); } @@ -1714,7 +1718,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis90MinutesZmanis() * @see #getAlos90Zmanis() */ - public getSofZmanTfilaMGA96MinutesZmanis(): DateTime | null { + public getSofZmanTfilaMGA96MinutesZmanis(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos96Zmanis(), this.getTzais96Zmanis(), true); } @@ -1735,7 +1739,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis120Minutes() * @see #getAlos120() */ - public getSofZmanTfilaMGA120Minutes(): DateTime | null { + public getSofZmanTfilaMGA120Minutes(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos120(), this.getTzais120(), true); } @@ -1752,7 +1756,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see ZmanimCalendar#getChatzos() * @see #getSofZmanShma3HoursBeforeChatzos() */ - public getSofZmanTfila2HoursBeforeChatzos(): DateTime | null { + public getSofZmanTfila2HoursBeforeChatzos(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getChatzos(), -120 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -1779,7 +1783,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #isUseAstronomicalChatzos() * @see #isUseAstronomicalChatzosForOtherZmanim() */ - public getMinchaGedola30Minutes(): DateTime | null { + public getMinchaGedola30Minutes(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getChatzos(), ComplexZmanimCalendar.MINUTE_MILLIS * 30); } @@ -1804,7 +1808,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getMinchaGedola72Minutes(): DateTime | null { + public getMinchaGedola72Minutes(): Temporal.ZonedDateTime | null { if (this.isUseAstronomicalChatzosForOtherZmanim()) { return this.getHalfDayBasedZman(this.getChatzos(), this.getTzais72(), 0.5); } @@ -1828,7 +1832,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * the sun may not reach low enough below the horizon for this calculation, a null will be returned. * See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getMinchaGedola16Point1Degrees(): DateTime | null { + public getMinchaGedola16Point1Degrees(): Temporal.ZonedDateTime | null { if (this.isUseAstronomicalChatzosForOtherZmanim()) { return this.getHalfDayBasedZman(this.getChatzos(), this.getTzais16Point1Degrees(), 0.5); } @@ -1857,15 +1861,13 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanisAlos16Point1ToTzais3Point7() * @see #getMinchaGedolaGreaterThan30() */ - public getMinchaGedolaAhavatShalom(): DateTime | null { + public getMinchaGedolaAhavatShalom(): Temporal.ZonedDateTime | null { if (this.getChatzos() === null || this.getMinchaGedola30Minutes() === null || this.getShaahZmanisAlos16Point1ToTzais3Point7() === Long_MIN_VALUE) { return null; } - return this.getMinchaGedola30Minutes()! > ComplexZmanimCalendar.getTimeOffset(this.getChatzos(), this.getShaahZmanisAlos16Point1ToTzais3Point7() / 2)! - ? this.getMinchaGedola30Minutes() - : ComplexZmanimCalendar.getTimeOffset(this.getChatzos(), this.getShaahZmanisAlos16Point1ToTzais3Point7() / 2); + return zdtMax(this.getMinchaGedola30Minutes()!, ComplexZmanimCalendar.getTimeOffset(this.getChatzos(), this.getShaahZmanisAlos16Point1ToTzais3Point7() / 2)!); } /** @@ -1884,12 +1886,12 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getMinchaGedola30Minutes() * @see #isUseAstronomicalChatzos() */ - public getMinchaGedolaGreaterThan30(): DateTime | null { + public getMinchaGedolaGreaterThan30(): Temporal.ZonedDateTime | null { if (this.getMinchaGedola30Minutes() === null || this.getMinchaGedola() === null) { return null; } - return DateTime.max(this.getMinchaGedola30Minutes()!, this.getMinchaGedola()!); + return zdtMax(this.getMinchaGedola30Minutes()!, this.getMinchaGedola()!); } /** @@ -1909,7 +1911,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * where the sun may not reach low enough below the horizon for this calculation, a null will be * returned. See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getMinchaKetana16Point1Degrees(): DateTime | null { + public getMinchaKetana16Point1Degrees(): Temporal.ZonedDateTime | null { return this.getMinchaKetana(this.getAlos16Point1Degrees(), this.getTzais16Point1Degrees(), true); } @@ -1932,7 +1934,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getMinchaGedolaAhavatShalom() * @see #getPlagAhavatShalom() */ - public getMinchaKetanaAhavatShalom(): DateTime | null { + public getMinchaKetanaAhavatShalom(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getTzaisGeonim3Point8Degrees(), -this.getShaahZmanisAlos16Point1ToTzais3Point8() * 2.5); } @@ -1952,7 +1954,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getMinchaKetana72Minutes(): DateTime | null { + public getMinchaKetana72Minutes(): Temporal.ZonedDateTime | null { return this.getMinchaKetana(this.getAlos72(), this.getTzais72(), true); } @@ -1970,7 +1972,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos60() * @see #getTzais60() */ - public getPlagHamincha60Minutes(): DateTime | null { + public getPlagHamincha60Minutes(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos60(), this.getTzais60(), true); } @@ -1993,7 +1995,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * * @see #getShaahZmanis72Minutes() */ - public getPlagHamincha72Minutes(): DateTime | null { + public getPlagHamincha72Minutes(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos72(), this.getTzais72(), true); } @@ -2016,7 +2018,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * * @see #getShaahZmanis90Minutes() */ - public getPlagHamincha90Minutes(): DateTime | null { + public getPlagHamincha90Minutes(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos90(), this.getTzais90(), true); } @@ -2038,7 +2040,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * {@link AstronomicalCalendar} documentation. * @see #getShaahZmanis96Minutes() */ - public getPlagHamincha96Minutes(): DateTime | null { + public getPlagHamincha96Minutes(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos96(), this.getTzais96(), true); } @@ -2058,7 +2060,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getPlagHamincha96MinutesZmanis(): DateTime | null { + public getPlagHamincha96MinutesZmanis(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos96Zmanis(), this.getTzais96Zmanis(), true); } @@ -2078,7 +2080,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getPlagHamincha90MinutesZmanis(): DateTime | null { + public getPlagHamincha90MinutesZmanis(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos90Zmanis(), this.getTzais90Zmanis(), true); } @@ -2098,7 +2100,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getPlagHamincha72MinutesZmanis(): DateTime | null { + public getPlagHamincha72MinutesZmanis(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos72Zmanis(), this.getTzais72Zmanis(), true); } @@ -2122,7 +2124,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * * @see #getShaahZmanis16Point1Degrees() */ - public getPlagHamincha16Point1Degrees(): DateTime | null { + public getPlagHamincha16Point1Degrees(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos16Point1Degrees(), this.getTzais16Point1Degrees(), true); } @@ -2146,7 +2148,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * * @see #getShaahZmanis19Point8Degrees() */ - public getPlagHamincha19Point8Degrees(): DateTime | null { + public getPlagHamincha19Point8Degrees(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos19Point8Degrees(), this.getTzais19Point8Degrees(), true); } @@ -2171,7 +2173,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis26Degrees() * @see #getPlagHamincha120Minutes() */ - public getPlagHamincha26Degrees(): DateTime | null { + public getPlagHamincha26Degrees(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos26Degrees(), this.getTzais26Degrees(), true); } @@ -2195,7 +2197,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * * @see #getShaahZmanis18Degrees() */ - public getPlagHamincha18Degrees(): DateTime | null { + public getPlagHamincha18Degrees(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos18Degrees(), this.getTzais18Degrees(), true); } @@ -2218,7 +2220,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos16Point1Degrees() * @see #getSeaLevelSunset() */ - public getPlagAlosToSunset(): DateTime | null { + public getPlagAlosToSunset(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos16Point1Degrees(), this.getElevationAdjustedSunset()); } @@ -2240,7 +2242,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos16Point1Degrees() * @see #getTzaisGeonim7Point083Degrees() */ - public getPlagAlos16Point1ToTzaisGeonim7Point083Degrees(): DateTime | null { + public getPlagAlos16Point1ToTzaisGeonim7Point083Degrees(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos16Point1Degrees(), this.getTzaisGeonim7Point083Degrees()); } @@ -2261,7 +2263,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getMinchaGedolaAhavatShalom() * @see #getMinchaKetanaAhavatShalom() */ - public getPlagAhavatShalom(): DateTime | null { + public getPlagAhavatShalom(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getTzaisGeonim3Point8Degrees(), -this.getShaahZmanisAlos16Point1ToTzais3Point8() * 1.25); } @@ -2289,7 +2291,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #ZENITH_13_POINT_24 * @see #getBainHashmashosRT58Point5Minutes() */ - public getBainHashmashosRT13Point24Degrees(): DateTime | null { + public getBainHashmashosRT13Point24Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_13_POINT_24); } @@ -2297,7 +2299,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * Misspelled method name that should be {@link #getBainHashmashosRT13Point24Degrees()}. * @return the properly spelled version. */ - public getBainHasmashosRT13Point24Degrees(): DateTime | null { + public getBainHasmashosRT13Point24Degrees(): Temporal.ZonedDateTime | null { return this.getBainHashmashosRT13Point24Degrees(); } @@ -2313,7 +2315,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * {@link AstronomicalCalendar} documentation. * */ - public getBainHashmashosRT58Point5Minutes(): DateTime | null { + public getBainHashmashosRT58Point5Minutes(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), 58.5 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -2322,7 +2324,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the properly spelled version. * @deprecated */ - public getBainHasmashosRT58Point5Minutes(): DateTime | null { + public getBainHasmashosRT58Point5Minutes(): Temporal.ZonedDateTime | null { return this.getBainHashmashosRT58Point5Minutes(); } @@ -2338,7 +2340,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * {@link AstronomicalCalendar} documentation. * @see #getTzaisGeonim7Point083Degrees() */ - public getBainHashmashosRT13Point5MinutesBefore7Point083Degrees(): DateTime | null { + public getBainHashmashosRT13Point5MinutesBefore7Point083Degrees(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_7_POINT_083), -13.5 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -2347,7 +2349,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the properly spelled version. * @deprecated */ - public getBainHasmashosRT13Point5MinutesBefore7Point083Degrees(): DateTime | null { + public getBainHasmashosRT13Point5MinutesBefore7Point083Degrees(): Temporal.ZonedDateTime | null { return this.getBainHashmashosRT13Point5MinutesBefore7Point083Degrees(); } @@ -2363,14 +2365,14 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * calculation, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getBainHashmashosRT2Stars(): DateTime | null { - const alos19Point8: DateTime | null = this.getAlos19Point8Degrees(); - const sunrise: DateTime | null = this.getElevationAdjustedSunrise(); + public getBainHashmashosRT2Stars(): Temporal.ZonedDateTime | null { + const alos19Point8: Temporal.ZonedDateTime | null = this.getAlos19Point8Degrees(); + const sunrise: Temporal.ZonedDateTime | null = this.getElevationAdjustedSunrise(); if (alos19Point8 === null || sunrise === null) { return null; } - return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), (sunrise.valueOf() - alos19Point8.valueOf()) * (5 / 18)); + return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), (sunrise.epochMilliseconds - alos19Point8.epochMilliseconds) * (5 / 18)); } /** @@ -2378,7 +2380,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the properly spelled version. * @deprecated */ - public getBainHasmashosRT2Stars(): DateTime | null { + public getBainHasmashosRT2Stars(): Temporal.ZonedDateTime | null { return this.getBainHashmashosRT2Stars(); } @@ -2395,7 +2397,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * {@link AstronomicalCalendar} documentation. * @see #getBainHashmashosYereim3Point05Degrees() */ - public getBainHashmashosYereim18Minutes(): DateTime | null { + public getBainHashmashosYereim18Minutes(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), -18 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -2404,7 +2406,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the properly spelled version. * @deprecated */ - public getBainHasmashosYereim18Minutes(): DateTime | null { + public getBainHasmashosYereim18Minutes(): Temporal.ZonedDateTime | null { return this.getBainHashmashosYereim18Minutes(); } @@ -2438,7 +2440,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getBainHashmashosYereim2Point8Degrees() * @see #getBainHashmashosYereim2Point1Degrees() */ - public getBainHashmashosYereim3Point05Degrees(): DateTime | null { + public getBainHashmashosYereim3Point05Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_MINUS_3_POINT_05); } @@ -2447,7 +2449,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the properly spelled version. * @deprecated */ - public getBainHasmashosYereim3Point05Degrees(): DateTime | null { + public getBainHasmashosYereim3Point05Degrees(): Temporal.ZonedDateTime | null { return this.getBainHashmashosYereim3Point05Degrees(); } @@ -2466,7 +2468,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * * @see #getBainHashmashosYereim2Point8Degrees() */ - public getBainHashmashosYereim16Point875Minutes(): DateTime | null { + public getBainHashmashosYereim16Point875Minutes(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), -16.875 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -2475,7 +2477,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the properly spelled version. * @deprecated */ - public getBainHasmashosYereim16Point875Minutes(): DateTime | null { + public getBainHasmashosYereim16Point875Minutes(): Temporal.ZonedDateTime | null { return this.getBainHashmashosYereim16Point875Minutes(); } @@ -2500,7 +2502,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getBainHashmashosYereim3Point05Degrees() * @see #getBainHashmashosYereim2Point1Degrees() */ - public getBainHashmashosYereim2Point8Degrees(): DateTime | null { + public getBainHashmashosYereim2Point8Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_MINUS_2_POINT_8); } @@ -2509,7 +2511,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the properly spelled version. * @deprecated */ - public getBainHasmashosYereim2Point8Degrees(): DateTime | null { + public getBainHasmashosYereim2Point8Degrees(): Temporal.ZonedDateTime | null { return this.getBainHashmashosYereim2Point8Degrees(); } @@ -2527,7 +2529,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * * @see #getBainHashmashosYereim2Point1Degrees() */ - public getBainHashmashosYereim13Point5Minutes(): DateTime | null { + public getBainHashmashosYereim13Point5Minutes(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), -13.5 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -2536,7 +2538,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the properly spelled version. * @deprecated */ - public getBainHasmashosYereim13Point5Minutes(): DateTime | null { + public getBainHasmashosYereim13Point5Minutes(): Temporal.ZonedDateTime | null { return this.getBainHashmashosYereim13Point5Minutes(); } @@ -2561,7 +2563,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getBainHashmashosYereim2Point8Degrees() * @see #getBainHashmashosYereim3Point05Degrees() */ - public getBainHashmashosYereim2Point1Degrees(): DateTime | null { + public getBainHashmashosYereim2Point1Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_MINUS_2_POINT_1); } @@ -2570,7 +2572,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the properly spelled version. * @deprecated */ - public getBainHasmashosYereim2Point1Degrees(): DateTime | null { + public getBainHasmashosYereim2Point1Degrees(): Temporal.ZonedDateTime | null { return this.getBainHashmashosYereim2Point1Degrees(); } @@ -2581,7 +2583,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the Date representing the time when the sun is 3.7° below sea level. * @see #ZENITH_3_POINT_7 */ - public getTzaisGeonim3Point7Degrees(): DateTime | null { + public getTzaisGeonim3Point7Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_3_POINT_7); } @@ -2592,7 +2594,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the Date representing the time when the sun is 3.8° below sea level. * @see #ZENITH_3_POINT_8 */ - public getTzaisGeonim3Point8Degrees(): DateTime | null { + public getTzaisGeonim3Point8Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_3_POINT_8); } @@ -2607,7 +2609,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #ZENITH_5_POINT_95 */ - public getTzaisGeonim5Point95Degrees(): DateTime | null { + public getTzaisGeonim5Point95Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_5_POINT_95); } @@ -2627,7 +2629,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * equinox / equilux in Jerusalem. * @see #ZENITH_3_POINT_65 */ - public getTzaisGeonim3Point65Degrees(): DateTime | null { + public getTzaisGeonim3Point65Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_3_POINT_65); } @@ -2648,7 +2650,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * equinox / equilux in Jerusalem. * @see #ZENITH_3_POINT_676 */ - public getTzaisGeonim3Point676Degrees(): DateTime | null { + public getTzaisGeonim3Point676Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_3_POINT_676); } @@ -2665,7 +2667,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #ZENITH_4_POINT_61 */ - public getTzaisGeonim4Point61Degrees(): DateTime | null { + public getTzaisGeonim4Point61Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_4_POINT_61); } @@ -2682,7 +2684,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #ZENITH_4_POINT_37 */ - public getTzaisGeonim4Point37Degrees(): DateTime | null { + public getTzaisGeonim4Point37Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_4_POINT_37); } @@ -2701,7 +2703,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #ZENITH_5_POINT_88 */ - public getTzaisGeonim5Point88Degrees(): DateTime | null { + public getTzaisGeonim5Point88Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_5_POINT_88); } @@ -2719,7 +2721,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #ZENITH_4_POINT_8 */ - public getTzaisGeonim4Point8Degrees(): DateTime | null { + public getTzaisGeonim4Point8Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_4_POINT_8); } @@ -2739,7 +2741,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * {@link AstronomicalCalendar} documentation. * @see #ZENITH_6_POINT_45 */ - public getTzaisGeonim6Point45Degrees(): DateTime | null { + public getTzaisGeonim6Point45Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_6_POINT_45); } @@ -2768,7 +2770,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * {@link AstronomicalCalendar} documentation. * @see #ZENITH_7_POINT_083 */ - public getTzaisGeonim7Point083Degrees(): DateTime | null { + public getTzaisGeonim7Point083Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_7_POINT_083); } @@ -2797,7 +2799,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * {@link AstronomicalCalendar} documentation. * @see #ZENITH_7_POINT_67 */ - public getTzaisGeonim7Point67Degrees(): DateTime | null { + public getTzaisGeonim7Point67Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_7_POINT_67); } @@ -2812,7 +2814,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #ZENITH_8_POINT_5 */ - public getTzaisGeonim8Point5Degrees(): DateTime | null { + public getTzaisGeonim8Point5Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_8_POINT_5); } @@ -2827,7 +2829,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * null will be returned. See detailed explanation on top of the {@link AstronomicalCalendar} * documentation. */ - public getTzaisGeonim9Point3Degrees(): DateTime | null { + public getTzaisGeonim9Point3Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_9_POINT_3); } @@ -2850,7 +2852,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * * @see #getTzais60() */ - public getTzaisGeonim9Point75Degrees(): DateTime | null { + public getTzaisGeonim9Point75Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_9_POINT_75); } @@ -2872,7 +2874,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getPlagHamincha60Minutes() * @see #getShaahZmanis60Minutes() */ - public getTzais60(): DateTime | null { + public getTzais60(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), 60 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -2892,7 +2894,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAteretTorahSunsetOffset() * @see #setAteretTorahSunsetOffset(double) */ - public getTzaisAteretTorah(): DateTime | null { + public getTzaisAteretTorah(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), this.getAteretTorahSunsetOffset() * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -2943,7 +2945,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #setAteretTorahSunsetOffset(double) * @see #getShaahZmanisAteretTorah() */ - public getSofZmanShmaAteretTorah(): DateTime | null { + public getSofZmanShmaAteretTorah(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos72Zmanis(), this.getTzaisAteretTorah()); } @@ -2966,7 +2968,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanisAteretTorah() * @see #setAteretTorahSunsetOffset(double) */ - public getSofZmanTfilaAteretTorah(): DateTime | null { + public getSofZmanTfilaAteretTorah(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos72Zmanis(), this.getTzaisAteretTorah()); } @@ -2978,7 +2980,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * the sun does not rise, and one where it does not set, a null will be returned. See detailed * explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getSofZmanTfilahAteretTorah(): DateTime | null { + public getSofZmanTfilahAteretTorah(): Temporal.ZonedDateTime | null { return this.getSofZmanTfilaAteretTorah(); } @@ -3006,7 +3008,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getMinchaGedolaAteretTorah(): DateTime | null { + public getMinchaGedolaAteretTorah(): Temporal.ZonedDateTime | null { return this.getMinchaGedola(this.getAlos72Zmanis(), this.getTzaisAteretTorah()); } @@ -3033,7 +3035,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getMinchaKetanaAteretTorah(): DateTime | null { + public getMinchaKetanaAteretTorah(): Temporal.ZonedDateTime | null { return this.getMinchaKetana(this.getAlos72Zmanis(), this.getTzaisAteretTorah()); } @@ -3055,7 +3057,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #setAteretTorahSunsetOffset(double) * @see #getAteretTorahSunsetOffset() */ - public getPlagHaminchaAteretTorah(): DateTime | null { + public getPlagHaminchaAteretTorah(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getAlos72Zmanis(), this.getTzaisAteretTorah()); } @@ -3075,7 +3077,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #getAlos72Zmanis() */ - public getTzais72Zmanis(): DateTime | null { + public getTzais72Zmanis(): Temporal.ZonedDateTime | null { return this.getZmanisBasedOffset(1.2); } @@ -3092,7 +3094,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * tell if it is sunrise or sunset based. See detailed explanation on top of the {@link AstronomicalCalendar} * documentation. */ - private getZmanisBasedOffset(hours: number): DateTime | null { + private getZmanisBasedOffset(hours: number): Temporal.ZonedDateTime | null { const shaahZmanis: number = this.getShaahZmanisGra(); if (shaahZmanis === Long_MIN_VALUE || hours === 0) { return null; @@ -3114,7 +3116,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #getAlos90Zmanis() */ - public getTzais90Zmanis(): DateTime | null { + public getTzais90Zmanis(): Temporal.ZonedDateTime | null { return this.getZmanisBasedOffset(1.5); } @@ -3128,7 +3130,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #getAlos96Zmanis() */ - public getTzais96Zmanis(): DateTime | null { + public getTzais96Zmanis(): Temporal.ZonedDateTime | null { return this.getZmanisBasedOffset(1.6); } @@ -3148,7 +3150,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getTzais19Point8Degrees() * @see #getAlos90() */ - public getTzais90(): DateTime | null { + public getTzais90(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), 90 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -3174,7 +3176,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getTzais26Degrees() * @see #getAlos120() */ - public getTzais120(): DateTime | null { + public getTzais120(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), 120 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -3197,7 +3199,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getTzais120() * @see #getTzais26Degrees() */ - public getTzais120Zmanis(): DateTime | null { + public getTzais120Zmanis(): Temporal.ZonedDateTime | null { return this.getZmanisBasedOffset(2); } @@ -3221,7 +3223,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getTzais72() * @see #getAlos16Point1Degrees() for more information on this calculation. */ - public getTzais16Point1Degrees(): DateTime | null { + public getTzais16Point1Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_16_POINT_1); } @@ -3243,7 +3245,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getTzais120() * @see #getAlos26Degrees() */ - public getTzais26Degrees(): DateTime | null { + public getTzais26Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_26_DEGREES); } @@ -3256,7 +3258,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * detailed explanation on top of the {@link AstronomicalCalendar} documentation. * @see #getAlos18Degrees() */ - public getTzais18Degrees(): DateTime | null { + public getTzais18Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ASTRONOMICAL_ZENITH); } @@ -3270,7 +3272,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getTzais90() * @see #getAlos19Point8Degrees() */ - public getTzais19Point8Degrees(): DateTime | null { + public getTzais19Point8Degrees(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_19_POINT_8); } @@ -3284,7 +3286,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * documentation. * @see #getAlos96() */ - public getTzais96(): DateTime | null { + public getTzais96(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), 96 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -3306,7 +3308,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the Date representing the local chatzos * @see GeoLocation#getLocalMeanTimeOffset() */ - public getFixedLocalChatzos(): DateTime | null { + public getFixedLocalChatzos(): Temporal.ZonedDateTime | null { return this.getLocalMeanTime(12); } @@ -3336,7 +3338,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * #getSofZmanShma3HoursBeforeChatzos()} should be used to calculate sof zman Tfila using 3 fixed * clock hours. This will likely be removed in a future version. */ - public getSofZmanShmaFixedLocal(): DateTime | null { + public getSofZmanShmaFixedLocal(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getFixedLocalChatzos(), -180 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -3362,7 +3364,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * #getSofZmanTfila2HoursBeforeChatzos()} should be used to calculate sof zman Tfila using using 2 fixed * clock hours. This will likely be removed in a future version. */ - public getSofZmanTfilaFixedLocal(): DateTime | null { + public getSofZmanTfilaFixedLocal(): Temporal.ZonedDateTime | null { return ComplexZmanimCalendar.getTimeOffset(this.getFixedLocalChatzos(), -120 * ComplexZmanimCalendar.MINUTE_MILLIS); } @@ -3386,13 +3388,14 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @return the molad based time. If the zman does not occur during the current date, null will be * returned. */ - private getMoladBasedTime(moladBasedTime: DateTime, alos: DateTime | null, tzais: DateTime | null, techila: boolean): DateTime | null { - const lastMidnight: DateTime = this.getMidnightLastNight(); - const midnightTonight: DateTime = this.getMidnightTonight(); + private getMoladBasedTime(moladBasedTime: Temporal.ZonedDateTime, alos: Temporal.ZonedDateTime | null, tzais: Temporal.ZonedDateTime | null, techila: boolean): Temporal.ZonedDateTime | null { + const lastMidnight: Temporal.ZonedDateTime = this.getMidnightLastNight(); + const midnightTonight: Temporal.ZonedDateTime = this.getMidnightTonight(); - if (!((moladBasedTime < lastMidnight) || (moladBasedTime > midnightTonight))) { + if (!((Temporal.ZonedDateTime.compare(moladBasedTime, lastMidnight) < 0) + || (Temporal.ZonedDateTime.compare(moladBasedTime, midnightTonight) > 0))) { if (alos !== null || tzais !== null) { - return techila && !(moladBasedTime < tzais! || moladBasedTime > alos!) + return techila && !(Temporal.ZonedDateTime.compare(moladBasedTime, tzais!) < 0 || Temporal.ZonedDateTime.compare(moladBasedTime, alos!) > 0) ? tzais : alos; } @@ -3424,7 +3427,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getSofZmanKidushLevana15Days() * @see JewishCalendar#getSofZmanKidushLevanaBetweenMoldos() */ - public getSofZmanKidushLevanaBetweenMoldos(alos: DateTime | null = null, tzais: DateTime | null = null): DateTime | null { + public getSofZmanKidushLevanaBetweenMoldos(alos: Temporal.ZonedDateTime | null = null, tzais: Temporal.ZonedDateTime | null = null): Temporal.ZonedDateTime | null { const jewishCalendar: JewishCalendar = new JewishCalendar(this.getDate()); // Do not calculate for impossible dates, but account for extreme cases. In the extreme case of Rapa Iti in French @@ -3481,7 +3484,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see JewishCalendar#getSofZmanKidushLevana15Days() * */ - public getSofZmanKidushLevana15Days(alos: DateTime | null = null, tzais: DateTime | null = null): DateTime | null { + public getSofZmanKidushLevana15Days(alos: Temporal.ZonedDateTime | null = null, tzais: Temporal.ZonedDateTime | null = null): Temporal.ZonedDateTime | null { const jewishCalendar: JewishCalendar = new JewishCalendar(this.getDate()); // Do not calculate for impossible dates, but account for extreme cases. In the extreme case of Rapa Iti in @@ -3542,7 +3545,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getTchilasZmanKidushLevana7Days(Date, Date) * @see JewishCalendar#getTchilasZmanKidushLevana3Days() */ - public getTchilasZmanKidushLevana3Days(alos: DateTime | null = null, tzais: DateTime | null = null): DateTime | null { + public getTchilasZmanKidushLevana3Days(alos: Temporal.ZonedDateTime | null = null, tzais: Temporal.ZonedDateTime | null = null): Temporal.ZonedDateTime | null { const jewishCalendar: JewishCalendar = new JewishCalendar(); jewishCalendar.setGregorianDate(this.getDate().year, this.getDate().month - 1, this.getDate().day); @@ -3555,7 +3558,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { return null; } - let zman: DateTime | null = this.getMoladBasedTime(jewishCalendar.getTchilasZmanKidushLevana3Days(), alos, tzais, true); + let zman: Temporal.ZonedDateTime | null = this.getMoladBasedTime(jewishCalendar.getTchilasZmanKidushLevana3Days(), alos, tzais, true); // Get the following month's zman kiddush Levana for the extreme case of Rapa Iti in French Polynesia on Dec 2027 when // kiddush Levana can be said on Rosh Chodesh (the evening of the 30th). See Rabbi Dovid Heber's Shaarei Zmanim chapter 4 (page 32) @@ -3608,7 +3611,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getTchilasZmanKidushLevana7Days(Date, Date) * @see JewishCalendar#getMoladAsDate() */ - public getZmanMolad(): DateTime | null { + public getZmanMolad(): Temporal.ZonedDateTime | null { const jewishCalendar: JewishCalendar = new JewishCalendar(); jewishCalendar.setGregorianDate(this.getDate().year, this.getDate().month - 1, this.getDate().day); @@ -3619,7 +3622,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { return null; } - let molad: DateTime | null = this.getMoladBasedTime(jewishCalendar.getMoladAsDate(), null, null, true); + let molad: Temporal.ZonedDateTime | null = this.getMoladBasedTime(jewishCalendar.getMoladAsDate(), null, null, true); // deal with molad that happens on the end of the previous month if (molad === null && jewishCalendar.getJewishDayOfMonth() > 26) { @@ -3634,13 +3637,10 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getMoladBasedTime(Date, Date, Date, boolean) * @return previous midnight */ - private getMidnightLastNight(): DateTime { + private getMidnightLastNight(): Temporal.ZonedDateTime { // reset hour, minutes, seconds and millis - return this.getDate().set({ - hour: 0, - minute: 0, - second: 0, - millisecond: 0, + return this.getDate().toZonedDateTime({ + timeZone: this.getGeoLocation().getTimeZone(), }); } @@ -3649,15 +3649,12 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getMoladBasedTime(Date, Date, Date, boolean) * @return following midnight */ - private getMidnightTonight(): DateTime { + private getMidnightTonight(): Temporal.ZonedDateTime { return this.getDate() - .plus({ days: 1 }) - .set({ - hour: 0, - minute: 0, - second: 0, - millisecond: 0, - }); + .add({ days: 1 }) + .toZonedDateTime({ + timeZone: this.getGeoLocation().getTimeZone(), + }); } /** @@ -3671,7 +3668,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see JewishCalendar#getTchilasZmanKidushLevana7Days() * @see #getTchilasZmanKidushLevana3Days() */ - public getTchilasZmanKidushLevana7Days(alos: DateTime | null = null, tzais: DateTime | null = null): DateTime | null { + public getTchilasZmanKidushLevana7Days(alos: Temporal.ZonedDateTime | null = null, tzais: Temporal.ZonedDateTime | null = null): Temporal.ZonedDateTime | null { const jewishCalendar: JewishCalendar = new JewishCalendar(this.getDate()); // Optimize to not calculate for impossible dates, but account for extreme cases. Tchilas zman kiddush Levana 7 days for @@ -3721,10 +3718,10 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * See detailed explanation on top of the {@link AstronomicalCalendar} documentation. * @todo enable the calendar check for erev pesach and return null in all other cases. */ - public getSofZmanAchilasChametzGRA(): DateTime | null { + public getSofZmanAchilasChametzGRA(): Temporal.ZonedDateTime | null { /* const jewishCalendar: JewishCalendar = new JewishCalendar(); - const now: DateTime = DateTime.local(); + const now: Temporal.ZonedDateTime = Temporal.Now.zonedDateTimeISO(); jewishCalendar.setGregorianDate(now.year, now.month, now.day); if (jewishCalendar.getJewishMonth() === JewishCalendar.NISSAN && jewishCalendar.getJewishDayOfMonth() === 14) { return this.getSofZmanTfilaGRA(); @@ -3754,10 +3751,10 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos72() * @see #getSofZmanTfilaMGA72Minutes() */ - public getSofZmanAchilasChametzMGA72Minutes(): DateTime | null { + public getSofZmanAchilasChametzMGA72Minutes(): Temporal.ZonedDateTime | null { /* const jewishCalendar: JewishCalendar = new JewishCalendar(); - const now: DateTime = DateTime.local(); + const now: Temporal.ZonedDateTime = Temporal.Now.zonedDateTimeISO(); jewishCalendar.setGregorianDate(now.year, now.month, now.day); if (jewishCalendar.getJewishMonth() === JewishCalendar.NISSAN && jewishCalendar.getJewishDayOfMonth() === 14) { return this.getSofZmanTfilaMGA72Minutes(); @@ -3787,7 +3784,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos72Zmanis() * @see #getSofZmanTfilaMGA72MinutesZmanis() */ - public getSofZmanAchilasChametzMGA72MinutesZmanis(): DateTime | null { + public getSofZmanAchilasChametzMGA72MinutesZmanis(): Temporal.ZonedDateTime | null { const jewishCalendar = new JewishCalendar(); jewishCalendar.setGregorianDate(this.getDate().year, this.getDate().month - 1, this.getDate().day); @@ -3816,10 +3813,10 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getAlos16Point1Degrees() * @see #getSofZmanTfilaMGA16Point1Degrees() */ - public getSofZmanAchilasChametzMGA16Point1Degrees(): DateTime | null { + public getSofZmanAchilasChametzMGA16Point1Degrees(): Temporal.ZonedDateTime | null { /* const jewishCalendar: JewishCalendar = new JewishCalendar(); - const now: DateTime = DateTime.local(); + const now: Temporal.ZonedDateTime = Temporal.Now.zonedDateTimeISO(); jewishCalendar.setGregorianDate(now.year, now.month, now.day); if (jewishCalendar.getJewishMonth() === JewishCalendar.NISSAN && jewishCalendar.getJewishDayOfMonth() === 14) { return this.getSofZmanTfilaMGA16Point1Degrees(); @@ -3844,10 +3841,10 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * one day a year where the sun does not rise, and one where it does not set, a null will be * returned. See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getSofZmanBiurChametzGRA(): DateTime | null { + public getSofZmanBiurChametzGRA(): Temporal.ZonedDateTime | null { /* const jewishCalendar: JewishCalendar = new JewishCalendar(); - const now: DateTime = DateTime.local(); + const now: Temporal.ZonedDateTime = Temporal.Now.zonedDateTimeISO(); jewishCalendar.setGregorianDate(now.year, now.month, now.day); if (jewishCalendar.getJewishMonth() === JewishCalendar.NISSAN && jewishCalendar.getJewishDayOfMonth() === 14) { return ComplexZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunrise(), this.getShaahZmanisGra() * 5); @@ -3875,10 +3872,10 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanisMGA() * @see #getAlos72() */ - public getSofZmanBiurChametzMGA72Minutes(): DateTime | null { + public getSofZmanBiurChametzMGA72Minutes(): Temporal.ZonedDateTime | null { /* const jewishCalendar: JewishCalendar = new JewishCalendar(); - const now: DateTime = DateTime.local(); + const now: Temporal.ZonedDateTime = Temporal.Now.zonedDateTimeISO(); jewishCalendar.setGregorianDate(now.year, now.month, now.day); if (jewishCalendar.getJewishMonth() === JewishCalendar.NISSAN && jewishCalendar.getJewishDayOfMonth() === 14) { return ComplexZmanimCalendar.getTimeOffset(this.getAlos72(), this.getShaahZmanisMGA() * 5); @@ -3906,7 +3903,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis72MinutesZmanis() * @see #getAlos72Zmanis() */ - public getSofZmanBiurChametzMGA72MinutesZmanis(): DateTime | null { + public getSofZmanBiurChametzMGA72MinutesZmanis(): Temporal.ZonedDateTime | null { const jewishCalendar = new JewishCalendar(); jewishCalendar.setGregorianDate(this.getDate().year, this.getDate().month - 1, this.getDate().day); @@ -3936,10 +3933,10 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getShaahZmanis16Point1Degrees() * @see #getAlos16Point1Degrees() */ - public getSofZmanBiurChametzMGA16Point1Degrees(): DateTime | null { + public getSofZmanBiurChametzMGA16Point1Degrees(): Temporal.ZonedDateTime | null { /* const jewishCalendar: JewishCalendar = new JewishCalendar(); - const now: DateTime = DateTime.local(); + const now: Temporal.ZonedDateTime = Temporal.Now.zonedDateTimeISO(); jewishCalendar.setGregorianDate(now.year, now.month, now.day); if (jewishCalendar.getJewishMonth() === JewishCalendar.NISSAN && jewishCalendar.getJewishDayOfMonth() === 14) { return ComplexZmanimCalendar.getTimeOffset(this.getAlos16Point1Degrees(), this.getShaahZmanis16Point1Degrees() * 5); @@ -3984,7 +3981,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getSunsetBaalHatanya() * @see #ZENITH_1_POINT_583 */ - private getSunriseBaalHatanya(): DateTime | null { + private getSunriseBaalHatanya(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_1_POINT_583); } @@ -4015,7 +4012,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getSunriseBaalHatanya() * @see #ZENITH_1_POINT_583 */ - private getSunsetBaalHatanya(): DateTime | null { + private getSunsetBaalHatanya(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_1_POINT_583); } @@ -4060,7 +4057,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * low enough below the horizon for this calculation, a null will be returned. See detailed * explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getAlosBaalHatanya(): DateTime | null { + public getAlosBaalHatanya(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ComplexZmanimCalendar.ZENITH_16_POINT_9); } @@ -4078,7 +4075,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * not rise, and one where it does not set, a null will be returned. See detailed explanation on * top of the {@link AstronomicalCalendar} documentation. */ - public getSofZmanShmaBaalHatanya(): DateTime | null { + public getSofZmanShmaBaalHatanya(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getSunriseBaalHatanya(), this.getSunsetBaalHatanya(), true); } @@ -4095,7 +4092,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getSofZmanTfilaBaalHatanya(): DateTime | null { + public getSofZmanTfilaBaalHatanya(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getSunriseBaalHatanya(), this.getSunsetBaalHatanya(), true); } @@ -4113,10 +4110,10 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * day a year where the sun does not rise, and one where it does not set, a null will be returned. * See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getSofZmanAchilasChametzBaalHatanya(): DateTime | null { + public getSofZmanAchilasChametzBaalHatanya(): Temporal.ZonedDateTime | null { /* const jewishCalendar: JewishCalendar = new JewishCalendar(); - const now: DateTime = DateTime.local(); + const now: Temporal.ZonedDateTime = Temporal.Now.zonedDateTimeISO(); jewishCalendar.setGregorianDate(now.year, now.month, now.day); if (jewishCalendar.getJewishMonth() === JewishCalendar.NISSAN && jewishCalendar.getJewishDayOfMonth() === 14) { return this.getSofZmanTfilaBaalHatanya(); @@ -4139,10 +4136,10 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * least one day a year where the sun does not rise, and one where it does not set, a null will be * returned. See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getSofZmanBiurChametzBaalHatanya(): DateTime | null { + public getSofZmanBiurChametzBaalHatanya(): Temporal.ZonedDateTime | null { /* const jewishCalendar: JewishCalendar = new JewishCalendar(); - const now: DateTime = DateTime.local(); + const now: Temporal.ZonedDateTime = Temporal.Now.zonedDateTimeISO(); jewishCalendar.setGregorianDate(now.year, now.month, now.day); if (jewishCalendar.getJewishMonth() === JewishCalendar.NISSAN && jewishCalendar.getJewishDayOfMonth() === 14) { return ComplexZmanimCalendar.getTimeOffset(this.getSunriseBaalHatanya(), this.getShaahZmanisBaalHatanya() * 5); @@ -4175,7 +4172,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * and one where it does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getMinchaGedolaBaalHatanya(): DateTime | null { + public getMinchaGedolaBaalHatanya(): Temporal.ZonedDateTime | null { return this.getMinchaGedola(this.getSunriseBaalHatanya(), this.getSunsetBaalHatanya(), true); } @@ -4193,12 +4190,12 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * where the sun does not rise, and one where it does not set, a null will be returned. See detailed * explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getMinchaGedolaBaalHatanyaGreaterThan30(): DateTime | null { + public getMinchaGedolaBaalHatanyaGreaterThan30(): Temporal.ZonedDateTime | null { if (this.getMinchaGedola30Minutes() === null || this.getMinchaGedolaBaalHatanya() === null) { return null; } - return DateTime.max(this.getMinchaGedola30Minutes()!, this.getMinchaGedolaBaalHatanya()!); + return zdtMax(this.getMinchaGedola30Minutes()!, this.getMinchaGedolaBaalHatanya()!); } /** @@ -4218,7 +4215,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getMinchaKetanaBaalHatanya(): DateTime | null { + public getMinchaKetanaBaalHatanya(): Temporal.ZonedDateTime | null { return this.getMinchaKetana(this.getSunriseBaalHatanya(), this.getSunsetBaalHatanya(), true); } @@ -4234,7 +4231,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getPlagHaminchaBaalHatanya(): DateTime | null { + public getPlagHaminchaBaalHatanya(): Temporal.ZonedDateTime | null { return this.getPlagHamincha(this.getSunriseBaalHatanya(), this.getSunsetBaalHatanya(), true); } @@ -4249,7 +4246,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * explanation on top of the {@link AstronomicalCalendar} documentation. * @see #ZENITH_6_DEGREES */ - public getTzaisBaalHatanya(): DateTime | null { + public getTzaisBaalHatanya(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ComplexZmanimCalendar.ZENITH_6_DEGREES); } @@ -4279,7 +4276,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * * @see ComplexZmanimCalendar#getFixedLocalChatzos() */ - public getFixedLocalChatzosBasedZmanim(startOfHalfDay: DateTime | null, endOfHalfDay: DateTime | null, hours: number): DateTime | null { + public getFixedLocalChatzosBasedZmanim(startOfHalfDay: Temporal.ZonedDateTime | null, endOfHalfDay: Temporal.ZonedDateTime | null, hours: number): Temporal.ZonedDateTime | null { return this.getHalfDayBasedZman(startOfHalfDay, endOfHalfDay, hours); } @@ -4299,7 +4296,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getFixedLocalChatzos() * @see ZmanimCalendar#getHalfDayBasedZman(Date, Date, double) */ - public getSofZmanShmaMGA18DegreesToFixedLocalChatzos(): DateTime | null { + public getSofZmanShmaMGA18DegreesToFixedLocalChatzos(): Temporal.ZonedDateTime | null { return this.getHalfDayBasedZman(this.getAlos18Degrees(), this.getFixedLocalChatzos(), 3); } @@ -4319,7 +4316,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getFixedLocalChatzos() * @see #getHalfDayBasedZman(Date, Date, double) */ - public getSofZmanShmaMGA16Point1DegreesToFixedLocalChatzos(): DateTime | null { + public getSofZmanShmaMGA16Point1DegreesToFixedLocalChatzos(): Temporal.ZonedDateTime | null { return this.getHalfDayBasedZman(this.getAlos16Point1Degrees(), this.getFixedLocalChatzos(), 3); } @@ -4340,7 +4337,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getFixedLocalChatzos() * @see #getHalfDayBasedZman(Date, Date, double) */ - public getSofZmanShmaMGA90MinutesToFixedLocalChatzos(): DateTime | null { + public getSofZmanShmaMGA90MinutesToFixedLocalChatzos(): Temporal.ZonedDateTime | null { return this.getHalfDayBasedZman(this.getAlos90(), this.getFixedLocalChatzos(), 3); } @@ -4361,7 +4358,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getFixedLocalChatzos() * @see #getHalfDayBasedZman(Date, Date, double) */ - public getSofZmanShmaMGA72MinutesToFixedLocalChatzos(): DateTime | null { + public getSofZmanShmaMGA72MinutesToFixedLocalChatzos(): Temporal.ZonedDateTime | null { return this.getHalfDayBasedZman(this.getAlos72(), this.getFixedLocalChatzos(), 3); } @@ -4381,7 +4378,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getFixedLocalChatzos() * @see #getHalfDayBasedZman(Date, Date, double) */ - public getSofZmanShmaGRASunriseToFixedLocalChatzos(): DateTime | null { + public getSofZmanShmaGRASunriseToFixedLocalChatzos(): Temporal.ZonedDateTime | null { return this.getHalfDayBasedZman(this.getElevationAdjustedSunrise(), this.getFixedLocalChatzos(), 3); } @@ -4401,7 +4398,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getFixedLocalChatzos() * @see #getHalfDayBasedZman(Date, Date, double) */ - public getSofZmanTfilaGRASunriseToFixedLocalChatzos(): DateTime | null { + public getSofZmanTfilaGRASunriseToFixedLocalChatzos(): Temporal.ZonedDateTime | null { return this.getHalfDayBasedZman(this.getElevationAdjustedSunrise(), this.getFixedLocalChatzos(), 4); } @@ -4420,7 +4417,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getFixedLocalChatzos() * @see #getMinchaKetanaGRAFixedLocalChatzosToSunset */ - public getMinchaGedolaGRAFixedLocalChatzos30Minutes(): DateTime | null { + public getMinchaGedolaGRAFixedLocalChatzos30Minutes(): Temporal.ZonedDateTime | null { return ZmanimCalendar.getTimeOffset(this.getFixedLocalChatzos(), ZmanimCalendar.MINUTE_MILLIS * 30); } @@ -4441,7 +4438,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getMinchaGedolaGRAFixedLocalChatzos30Minutes * @see ZmanimCalendar#getHalfDayBasedZman(Date, Date, double) */ - public getMinchaKetanaGRAFixedLocalChatzosToSunset(): DateTime | null { + public getMinchaKetanaGRAFixedLocalChatzosToSunset(): Temporal.ZonedDateTime | null { return this.getHalfDayBasedZman(this.getFixedLocalChatzos(), this.getElevationAdjustedSunset(), 3.5); } @@ -4462,7 +4459,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * @see #getMinchaGedolaGRAFixedLocalChatzos30Minutes * @see ZmanimCalendar#getHalfDayBasedZman(Date, Date, double) */ - public getPlagHaminchaGRAFixedLocalChatzosToSunset(): DateTime | null { + public getPlagHaminchaGRAFixedLocalChatzosToSunset(): Temporal.ZonedDateTime | null { return this.getHalfDayBasedZman(this.getFixedLocalChatzos(), this.getElevationAdjustedSunset(), 4.75); } @@ -4476,7 +4473,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * a null will be returned. See detailed explanation on top of the {@link AstronomicalCalendar} * documentation. */ - public getTzais50(): DateTime | null { + public getTzais50(): Temporal.ZonedDateTime | null { return ZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), 50 * ZmanimCalendar.MINUTE_MILLIS); } @@ -4498,7 +4495,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * where the sun may not reach low enough below the horizon for this calculation, a null will be * returned. See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getSamuchLeMinchaKetanaGRA(): DateTime | null { + public getSamuchLeMinchaKetanaGRA(): Temporal.ZonedDateTime | null { return this.getSamuchLeMinchaKetana(this.getElevationAdjustedSunrise(), this.getElevationAdjustedSunset(), true); } @@ -4517,7 +4514,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * where the sun may not reach low enough below the horizon for this calculation, a null will be returned. * See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getSamuchLeMinchaKetana16Point1Degrees(): DateTime | null { + public getSamuchLeMinchaKetana16Point1Degrees(): Temporal.ZonedDateTime | null { return this.getSamuchLeMinchaKetana(this.getAlos16Point1Degrees(), this.getTzais16Point1Degrees(), true); } @@ -4535,7 +4532,7 @@ export class ComplexZmanimCalendar extends ZmanimCalendar { * where the sun may not reach low enough below the horizon for this calculation, a null will be returned. * See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getSamuchLeMinchaKetana72Minutes(): DateTime | null { + public getSamuchLeMinchaKetana72Minutes(): Temporal.ZonedDateTime | null { return this.getSamuchLeMinchaKetana(this.getAlos72(), this.getTzais72(), true); } diff --git a/src/ZmanimCalendar.ts b/src/ZmanimCalendar.ts index 0ed3605..a54e05a 100644 --- a/src/ZmanimCalendar.ts +++ b/src/ZmanimCalendar.ts @@ -1,4 +1,4 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { AstronomicalCalendar } from './AstronomicalCalendar'; import { JewishCalendar } from './hebrewcalendar/JewishCalendar'; @@ -249,7 +249,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * {@link AstronomicalCalendar#getSunrise()} if it is true. * @see com.kosherjava.zmanim.AstronomicalCalendar#getSunrise() */ - protected getElevationAdjustedSunrise(): DateTime | null { + protected getElevationAdjustedSunrise(): Temporal.ZonedDateTime | null { if (this.isUseElevation()) { return super.getSunrise(); } @@ -265,7 +265,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * {@link AstronomicalCalendar#getSunset()} if it is true. * @see AstronomicalCalendar#getSunset() */ - protected getElevationAdjustedSunset(): DateTime | null { + protected getElevationAdjustedSunset(): Temporal.ZonedDateTime | null { if (this.isUseElevation()) { return super.getSunset(); } @@ -287,7 +287,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * @see #ZENITH_8_POINT_5 * ComplexZmanimCalendar#getTzaisGeonim8Point5Degrees() that returns an identical time to this generic tzais */ - public getTzais(): DateTime | null { + public getTzais(): Temporal.ZonedDateTime | null { return this.getSunsetOffsetByDegrees(ZmanimCalendar.ZENITH_8_POINT_5); } @@ -309,7 +309,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * low enough below the horizon for this calculation, a null will be returned. See detailed * explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getAlosHashachar(): DateTime | null { + public getAlosHashachar(): Temporal.ZonedDateTime | null { return this.getSunriseOffsetByDegrees(ZmanimCalendar.ZENITH_16_POINT_1); } @@ -327,7 +327,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * a null will be returned. See detailed explanation on top of the {@link AstronomicalCalendar} * documentation. */ - public getAlos72(): DateTime | null { + public getAlos72(): Temporal.ZonedDateTime | null { return ZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunrise(), -72 * ZmanimCalendar.MINUTE_MILLIS); } @@ -355,12 +355,12 @@ export class ZmanimCalendar extends AstronomicalCalendar { * support astronomical calculations (that will never report a null) a null will be returned. * See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getChatzos(): DateTime | null { + public getChatzos(): Temporal.ZonedDateTime | null { if (this.useAstronomicalChatzos) { return this.getSunTransit(); // can be null of the calculator does not support astronomical chatzos } - const halfDayChatzos: DateTime | null = this.getChatzosAsHalfDay(); + const halfDayChatzos: Temporal.ZonedDateTime | null = this.getChatzosAsHalfDay(); return halfDayChatzos === null ? this.getSunTransit() // can be null if the calculator does not support astronomical chatzos : halfDayChatzos; @@ -395,7 +395,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * it does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getChatzosAsHalfDay(): DateTime | null { + public getChatzosAsHalfDay(): Temporal.ZonedDateTime | null { return this.getSunTransit(this.getSeaLevelSunrise(), this.getSeaLevelSunset()); } @@ -430,7 +430,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * a year where the sun does not rise, and one where it does not set, a null will be returned. See * detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getSofZmanShma(startOfDay: DateTime | null, endOfDay: DateTime | null, synchronous?: boolean): DateTime | null { + public getSofZmanShma(startOfDay: Temporal.ZonedDateTime | null, endOfDay: Temporal.ZonedDateTime | null, synchronous?: boolean): Temporal.ZonedDateTime | null { if (this.isUseAstronomicalChatzosForOtherZmanim() && synchronous) { return this.getHalfDayBasedZman(startOfDay, this.getChatzos(), 3); } @@ -478,7 +478,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * and one where it does not set, a null will be returned. See the detailed explanation on top * of the {@link AstronomicalCalendar} documentation. */ - public getSofZmanShmaGRA(): DateTime | null { + public getSofZmanShmaGRA(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getElevationAdjustedSunrise(), this.getElevationAdjustedSunset(), true); } @@ -499,7 +499,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * @see ComplexZmanimCalendar#getAlos72() * @see ComplexZmanimCalendar#getSofZmanShmaMGA72Minutes() */ - public getSofZmanShmaMGA(): DateTime | null { + public getSofZmanShmaMGA(): Temporal.ZonedDateTime | null { return this.getSofZmanShma(this.getAlos72(), this.getTzais72(), true); } @@ -519,7 +519,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * and one where it does not set, a null will be returned See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getTzais72(): DateTime | null { + public getTzais72(): Temporal.ZonedDateTime | null { return ZmanimCalendar.getTimeOffset(this.getElevationAdjustedSunset(), 72 * ZmanimCalendar.MINUTE_MILLIS); } @@ -538,7 +538,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * @see #getCandleLightingOffset() * @see #setCandleLightingOffset(double) */ - public getCandleLighting(): DateTime | null { + public getCandleLighting(): Temporal.ZonedDateTime | null { return ZmanimCalendar.getTimeOffset(this.getSeaLevelSunset(), -this.getCandleLightingOffset() * ZmanimCalendar.MINUTE_MILLIS); } @@ -574,7 +574,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * one day a year where the sun does not rise, and one where it does not set, a null will be * returned. See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getSofZmanTfila(startOfDay: DateTime | null, endOfDay: DateTime | null, synchronous?: boolean): DateTime | null { + public getSofZmanTfila(startOfDay: Temporal.ZonedDateTime | null, endOfDay: Temporal.ZonedDateTime | null, synchronous?: boolean): Temporal.ZonedDateTime | null { if (this.isUseAstronomicalChatzosForOtherZmanim() && synchronous) { return this.getHalfDayBasedZman(startOfDay, this.getChatzos(), 4); } @@ -621,7 +621,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getSofZmanTfilaGRA(): DateTime | null { + public getSofZmanTfilaGRA(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getElevationAdjustedSunrise(), this.getElevationAdjustedSunset(), true); } @@ -641,7 +641,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * @see #getShaahZmanisMGA() * @see #getAlos72() */ - public getSofZmanTfilaMGA(): DateTime | null { + public getSofZmanTfilaMGA(): Temporal.ZonedDateTime | null { return this.getSofZmanTfila(this.getAlos72(), this.getTzais72(), true); } @@ -685,9 +685,9 @@ export class ZmanimCalendar extends AstronomicalCalendar { * @see #isUseAstronomicalChatzos() * @see #isUseAstronomicalChatzosForOtherZmanim() */ - public getMinchaGedola(): DateTime | null; - public getMinchaGedola(startOfDay: DateTime | null, endOfDay: DateTime | null, synchronous?: boolean): DateTime | null; - public getMinchaGedola(startOfDay?: DateTime | null, endOfDay?: DateTime | null, synchronous?: boolean): DateTime | null { + public getMinchaGedola(): Temporal.ZonedDateTime | null; + public getMinchaGedola(startOfDay: Temporal.ZonedDateTime | null, endOfDay: Temporal.ZonedDateTime | null, synchronous?: boolean): Temporal.ZonedDateTime | null; + public getMinchaGedola(startOfDay?: Temporal.ZonedDateTime | null, endOfDay?: Temporal.ZonedDateTime | null, synchronous?: boolean): Temporal.ZonedDateTime | null { if (startOfDay === undefined && endOfDay === undefined) { // eslint-disable-next-line no-param-reassign startOfDay = this.getElevationAdjustedSunrise(); @@ -698,10 +698,10 @@ export class ZmanimCalendar extends AstronomicalCalendar { } if (this.isUseAstronomicalChatzosForOtherZmanim() && synchronous) { - return this.getHalfDayBasedZman(this.getChatzos(), endOfDay as DateTime | null, 0.5); + return this.getHalfDayBasedZman(this.getChatzos(), endOfDay as Temporal.ZonedDateTime | null, 0.5); } - return this.getShaahZmanisBasedZman(startOfDay as DateTime | null, endOfDay as DateTime | null, 6.5); + return this.getShaahZmanisBasedZman(startOfDay as Temporal.ZonedDateTime | null, endOfDay as Temporal.ZonedDateTime | null, 6.5); } /** @@ -790,7 +790,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * @see ComplexZmanimCalendar#getSamuchLeMinchaKetana16Point1Degrees() * @see ComplexZmanimCalendar#getSamuchLeMinchaKetana72Minutes() */ - public getSamuchLeMinchaKetana(startOfDay: DateTime | null, endOfDay: DateTime | null, synchronous?: boolean): DateTime | null { + public getSamuchLeMinchaKetana(startOfDay: Temporal.ZonedDateTime | null, endOfDay: Temporal.ZonedDateTime | null, synchronous?: boolean): Temporal.ZonedDateTime | null { if (this.isUseAstronomicalChatzosForOtherZmanim() && synchronous) { return this.getHalfDayBasedZman(this.getChatzos(), endOfDay, 3); } @@ -853,7 +853,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * at least one day a year where the sun does not rise, and one where it does not set, a null will * be returned. See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getMinchaKetana(startOfDay: DateTime | null, endOfDay: DateTime | null, synchronous?: boolean): DateTime | null { + public getMinchaKetana(startOfDay: Temporal.ZonedDateTime | null, endOfDay: Temporal.ZonedDateTime | null, synchronous?: boolean): Temporal.ZonedDateTime | null { if (startOfDay === undefined && endOfDay === undefined) { // eslint-disable-next-line no-param-reassign startOfDay = this.getElevationAdjustedSunrise(); @@ -949,7 +949,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * at least one day a year where the sun does not rise, and one where it does not set, a null * will be returned. See detailed explanation on top of the {@link AstronomicalCalendar} documentation. */ - public getPlagHamincha(startOfDay: DateTime | null, endOfDay: DateTime | null, synchronous?: boolean): DateTime | null { + public getPlagHamincha(startOfDay: Temporal.ZonedDateTime | null, endOfDay: Temporal.ZonedDateTime | null, synchronous?: boolean): Temporal.ZonedDateTime | null { if (startOfDay === undefined && endOfDay === undefined) { // eslint-disable-next-line no-param-reassign startOfDay = this.getElevationAdjustedSunrise(); @@ -1124,7 +1124,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * @see JewishCalendar#hasCandleLighting() * @see JewishCalendar#setInIsrael(boolean) */ - public isAssurBemlacha(currentTime: DateTime, tzais: DateTime, inIsrael: boolean): boolean { + public isAssurBemlacha(currentTime: Temporal.ZonedDateTime, tzais: Temporal.ZonedDateTime, inIsrael: boolean): boolean { const jewishCalendar: JewishCalendar = new JewishCalendar(); const date = this.getDate(); jewishCalendar.setGregorianDate(date.year, date.month - 1, date.day); @@ -1133,12 +1133,13 @@ export class ZmanimCalendar extends AstronomicalCalendar { // erev shabbos, YT or YT sheni and after shkiah const sunset = this.getElevationAdjustedSunset(); if (!sunset) throw new NullPointerException(); - if (jewishCalendar.hasCandleLighting() && currentTime >= sunset) { + if (jewishCalendar.hasCandleLighting() && Temporal.ZonedDateTime.compare(currentTime, sunset) >= 0) { return true; } // is shabbos or YT and it is before tzais - return jewishCalendar.isAssurBemelacha() && currentTime <= tzais; + return jewishCalendar.isAssurBemelacha() + && Temporal.ZonedDateTime.compare(currentTime, tzais) <= 0; } /** @@ -1164,8 +1165,8 @@ export class ZmanimCalendar extends AstronomicalCalendar { * where it does not set, a null will be returned. See detailed explanation on top of the * {@link AstronomicalCalendar} documentation. */ - public getShaahZmanisBasedZman(startOfDay: DateTime | null, endOfDay: DateTime | null, - hours: number): DateTime | null { + public getShaahZmanisBasedZman(startOfDay: Temporal.ZonedDateTime | null, endOfDay: Temporal.ZonedDateTime | null, + hours: number): Temporal.ZonedDateTime | null { const shaahZmanis: number = this.getTemporalHour(startOfDay, endOfDay); return ZmanimCalendar.getTimeOffset(startOfDay, shaahZmanis * hours); } @@ -1189,10 +1190,10 @@ export class ZmanimCalendar extends AstronomicalCalendar { * explanation on top of the page. */ public getPercentOfShaahZmanisFromDegrees(degrees: number, sunset: boolean): number { - const seaLevelSunrise: DateTime | null = this.getSeaLevelSunrise(); - const seaLevelSunset: DateTime | null = this.getSeaLevelSunset(); + const seaLevelSunrise: Temporal.ZonedDateTime | null = this.getSeaLevelSunrise(); + const seaLevelSunset: Temporal.ZonedDateTime | null = this.getSeaLevelSunset(); - let twilight: DateTime | null = null; + let twilight: Temporal.ZonedDateTime | null = null; if (sunset) { twilight = this.getSunsetOffsetByDegrees(ZmanimCalendar.GEOMETRIC_ZENITH + degrees); } else { @@ -1203,13 +1204,13 @@ export class ZmanimCalendar extends AstronomicalCalendar { return Double_MIN_VALUE; } - const shaahZmanis: number = (seaLevelSunset!.valueOf() - seaLevelSunrise!.valueOf()) / 12.0; + const shaahZmanis: number = (seaLevelSunset!.epochMilliseconds - seaLevelSunrise!.epochMilliseconds) / 12.0; let riseSetToTwilight: number; if (sunset) { - riseSetToTwilight = twilight!.valueOf() - seaLevelSunset!.valueOf(); + riseSetToTwilight = twilight!.epochMilliseconds - seaLevelSunset!.epochMilliseconds; } else { - riseSetToTwilight = seaLevelSunrise!.valueOf() - twilight!.valueOf(); + riseSetToTwilight = seaLevelSunrise!.epochMilliseconds - twilight!.epochMilliseconds; } return riseSetToTwilight / shaahZmanis; @@ -1245,7 +1246,7 @@ export class ZmanimCalendar extends AstronomicalCalendar { * * @see ComplexZmanimCalendar#getFixedLocalChatzos() */ - public getHalfDayBasedZman(startOfHalfDay: DateTime | null, endOfHalfDay: DateTime | null, hours: number): DateTime | null { + public getHalfDayBasedZman(startOfHalfDay: Temporal.ZonedDateTime | null, endOfHalfDay: Temporal.ZonedDateTime | null, hours: number): Temporal.ZonedDateTime | null { if (startOfHalfDay === null || endOfHalfDay === null) return null; const shaahZmanis: number = this.getHalfDayBasedShaahZmanis(startOfHalfDay, endOfHalfDay); @@ -1272,8 +1273,8 @@ export class ZmanimCalendar extends AstronomicalCalendar { * @see #isUseAstronomicalChatzosForOtherZmanim() * @todo Consider adjusting various shaah zmanis times to use this. */ - public getHalfDayBasedShaahZmanis(startOfHalfDay: DateTime | null, endOfHalfDay: DateTime | null): number { + public getHalfDayBasedShaahZmanis(startOfHalfDay: Temporal.ZonedDateTime | null, endOfHalfDay: Temporal.ZonedDateTime | null): number { if (startOfHalfDay === null || endOfHalfDay === null) return Long_MIN_VALUE; - return (endOfHalfDay.valueOf() - startOfHalfDay.valueOf()) / 6; + return (endOfHalfDay.epochMilliseconds - startOfHalfDay.epochMilliseconds) / 6; } } diff --git a/src/hebrewcalendar/HebrewDateFormatter.ts b/src/hebrewcalendar/HebrewDateFormatter.ts index ab39a3e..a0db4ab 100644 --- a/src/hebrewcalendar/HebrewDateFormatter.ts +++ b/src/hebrewcalendar/HebrewDateFormatter.ts @@ -1,4 +1,4 @@ -import { DateTimeFormatOptions } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { Daf } from './Daf'; import { JewishDate } from './JewishDate'; @@ -56,7 +56,7 @@ export class HebrewDateFormatter { /** * The internal DateFormat.  See {@link #isLongWeekFormat()} and {@link #setLongWeekFormat(boolean)}. */ - private weekFormat: DateTimeFormatOptions | null = { weekday: 'long' }; + private weekFormat: Intl.DateTimeFormatOptions | null = { weekday: 'long' }; /** * List of transliterated parshiyos using the default Ashkenazi pronounciation.  The formatParsha method uses this @@ -639,8 +639,8 @@ export class HebrewDateFormatter { const dateTime = jewishDate.getDate(); return this.weekFormat - ? dateTime.toLocaleString(this.weekFormat) - : dateTime.toISO(); + ? dateTime.toLocaleString('en-US', this.weekFormat) + : dateTime.toString(); } /** @@ -911,7 +911,8 @@ export class HebrewDateFormatter { * @see #isHebrewFormat() * */ - public formatHebrewNumber(num: number): string { + public formatHebrewNumber(num0: number): string { + let num: number = num0; if (num !== Math.trunc(num)) throw new IllegalArgumentException('number must be an integer.'); if (num < 0) { diff --git a/src/hebrewcalendar/JewishCalendar.ts b/src/hebrewcalendar/JewishCalendar.ts index 9f19cdf..aada463 100644 --- a/src/hebrewcalendar/JewishCalendar.ts +++ b/src/hebrewcalendar/JewishCalendar.ts @@ -1,4 +1,4 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { GeoLocation } from '../util/GeoLocation'; import { Daf } from './Daf'; @@ -359,11 +359,11 @@ export class JewishCalendar extends JewishDate { */ constructor(jewishYear: number, jewishMonth: number, jewishDayOfMonth: number, inIsrael?: boolean) constructor(date: Date) - constructor(date: DateTime) + constructor(date: Temporal.PlainDate) constructor() - constructor(jewishYearOrDateTimeOrDate?: number | Date | DateTime, jewishMonth?: number, jewishDayOfMonth?: number, inIsrael?: boolean) { + constructor(jewishYearOrDateTime?: number | Date | Temporal.PlainDate, jewishMonth?: number, jewishDayOfMonth?: number, inIsrael?: boolean) { // @ts-ignore - super(jewishYearOrDateTimeOrDate, jewishMonth, jewishDayOfMonth); + super(jewishYearOrDateTime, jewishMonth, jewishDayOfMonth); if (inIsrael) this.setInIsrael(inIsrael); } @@ -1347,7 +1347,7 @@ export class JewishCalendar extends JewishDate { * * @return the Date representing the moment of the molad in Yerushalayim standard time (GMT + 2) */ - public getMoladAsDate(): DateTime { + public getMoladAsDate(): Temporal.ZonedDateTime { const molad: JewishDate = this.getMolad(); const locationName: string = 'Jerusalem, Israel'; @@ -1364,7 +1364,7 @@ export class JewishCalendar extends JewishDate { // subtract local time difference of 20.94 minutes (20 minutes and 56.496 seconds) to get to Standard time const milliseconds: number = Math.trunc(1000 * (moladSeconds - Math.trunc(moladSeconds))); - return DateTime.fromObject({ + return Temporal.ZonedDateTime.from({ year: molad.getGregorianYear(), month: molad.getGregorianMonth() + 1, day: molad.getGregorianDayOfMonth(), @@ -1372,9 +1372,9 @@ export class JewishCalendar extends JewishDate { minute: molad.getMoladMinutes(), second: Math.trunc(moladSeconds), millisecond: milliseconds, - zone: geo.getTimeZone(), + timeZone: geo.getTimeZone(), }) - .minus({ milliseconds: Math.trunc(geo.getLocalMeanTimeOffset()) }); + .subtract({ milliseconds: Math.trunc(geo.getLocalMeanTimeOffset()) }); } /** @@ -1387,10 +1387,10 @@ export class JewishCalendar extends JewishDate { * @see ComplexZmanimCalendar#getTchilasZmanKidushLevana3Days() * @see ComplexZmanimCalendar#getTchilasZmanKidushLevana3Days(Date, Date) */ - public getTchilasZmanKidushLevana3Days(): DateTime { - const molad: DateTime = this.getMoladAsDate(); + public getTchilasZmanKidushLevana3Days(): Temporal.ZonedDateTime { + const molad: Temporal.ZonedDateTime = this.getMoladAsDate(); - return molad.plus({ hours: 72 }); + return molad.add({ hours: 72 }); } /** @@ -1405,10 +1405,10 @@ export class JewishCalendar extends JewishDate { * @see ComplexZmanimCalendar#getTchilasZmanKidushLevana7Days() * @see ComplexZmanimCalendar#getTchilasZmanKidushLevana7Days(Date, Date) */ - public getTchilasZmanKidushLevana7Days(): DateTime { - const molad: DateTime = this.getMoladAsDate(); + public getTchilasZmanKidushLevana7Days(): Temporal.ZonedDateTime { + const molad: Temporal.ZonedDateTime = this.getMoladAsDate(); - return molad.plus({ hours: 168 }); + return molad.add({ hours: 168 }); } /** @@ -1425,13 +1425,13 @@ export class JewishCalendar extends JewishDate { * @see ComplexZmanimCalendar#getSofZmanKidushLevanaBetweenMoldos() * @see ComplexZmanimCalendar#getSofZmanKidushLevanaBetweenMoldos(Date, Date) */ - public getSofZmanKidushLevanaBetweenMoldos(): DateTime { - const molad: DateTime = this.getMoladAsDate(); + public getSofZmanKidushLevanaBetweenMoldos(): Temporal.ZonedDateTime { + const molad: Temporal.ZonedDateTime = this.getMoladAsDate(); // add half the time between molad and molad (half of 29 days, 12 hours and 793 chalakim (44 minutes, 3.3 // seconds), or 14 days, 18 hours, 22 minutes and 666 milliseconds). Add it as hours, not days, to avoid // DST/ST crossover issues. - return molad.plus({ + return molad.add({ hours: (24 * 14) + 18, minutes: 22, seconds: 1, @@ -1456,11 +1456,11 @@ export class JewishCalendar extends JewishDate { * @see ComplexZmanimCalendar#getSofZmanKidushLevana15Days() * @see ComplexZmanimCalendar#getSofZmanKidushLevana15Days(Date, Date) */ - public getSofZmanKidushLevana15Days(): DateTime { - const molad: DateTime = this.getMoladAsDate(); + public getSofZmanKidushLevana15Days(): Temporal.ZonedDateTime { + const molad: Temporal.ZonedDateTime = this.getMoladAsDate(); // 15 days after the molad. Add it as hours, not days, to avoid DST/ST crossover issues. - return molad.plus({ hours: 24 * 15 }); + return molad.add({ hours: 24 * 15 }); } /** diff --git a/src/hebrewcalendar/JewishDate.ts b/src/hebrewcalendar/JewishDate.ts index 59822c1..e429f22 100644 --- a/src/hebrewcalendar/JewishDate.ts +++ b/src/hebrewcalendar/JewishDate.ts @@ -1,4 +1,4 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { Calendar, IntegerUtils } from '../polyfills/Utils'; import { IllegalArgumentException } from '../polyfills/errors'; @@ -939,17 +939,18 @@ export class JewishDate { constructor(jewishYear: number, jewishMonth: number, jewishDayOfMonth: number) constructor(molad: number) constructor(date: Date) - constructor(date: DateTime) + constructor(date: Temporal.PlainDate) constructor() - constructor(jewishYearOrDateTimeOrDateOrMolad?: number | Date | DateTime, jewishMonth?: number, jewishDayOfMonth?: number) { + constructor(jewishYearOrDateTimeOrDateOrMolad?: number | Date | Temporal.PlainDate, jewishMonth?: number, jewishDayOfMonth?: number) { if (!jewishYearOrDateTimeOrDateOrMolad) { this.resetDate(); } else if (jewishMonth) { this.setJewishDate(jewishYearOrDateTimeOrDateOrMolad as number, jewishMonth, jewishDayOfMonth!); } else if (jewishYearOrDateTimeOrDateOrMolad instanceof Date) { - this.setDate(DateTime.fromJSDate(jewishYearOrDateTimeOrDateOrMolad as Date)); - } else if (DateTime.isDateTime(jewishYearOrDateTimeOrDateOrMolad)) { - this.setDate(jewishYearOrDateTimeOrDateOrMolad as DateTime); + const instant = Temporal.Instant.fromEpochMilliseconds(jewishYearOrDateTimeOrDateOrMolad.getTime()); + this.setDate(instant.toZonedDateTimeISO('UTC').toPlainDate()); + } else if (jewishYearOrDateTimeOrDateOrMolad instanceof Temporal.PlainDate) { + this.setDate(jewishYearOrDateTimeOrDateOrMolad as Temporal.PlainDate); } else if (typeof jewishYearOrDateTimeOrDateOrMolad === 'number') { const molad = jewishYearOrDateTimeOrDateOrMolad as number; this.absDateToDate(JewishDate.moladToAbsDate(molad)); @@ -1028,7 +1029,7 @@ export class JewishDate { * @throws IllegalArgumentException * if the {@link Calendar#ERA} is {@link GregorianCalendar#BC} */ - public setDate(date: DateTime): void { + public setDate(date: Temporal.PlainDate): void { if (date.year < 1) { throw new IllegalArgumentException(`Dates with a BC era are not supported. The year ${date.year} is invalid.`); } @@ -1183,8 +1184,8 @@ export class JewishDate { * * @return The {@link java.util.Calendar} */ - public getDate(): DateTime { - return DateTime.fromObject({ + public getDate(): Temporal.PlainDate { + return Temporal.PlainDate.from({ year: this.gregorianYear, month: this.gregorianMonth, day: this.gregorianDayOfMonth, @@ -1195,7 +1196,7 @@ export class JewishDate { * Resets this date to the current system date. */ public resetDate(): void { - this.setDate(DateTime.local()); + this.setDate(Temporal.Now.plainDateISO()); } /** diff --git a/src/hebrewcalendar/YerushalmiYomiCalculator.ts b/src/hebrewcalendar/YerushalmiYomiCalculator.ts index d0c5785..4d20f0b 100644 --- a/src/hebrewcalendar/YerushalmiYomiCalculator.ts +++ b/src/hebrewcalendar/YerushalmiYomiCalculator.ts @@ -1,4 +1,4 @@ -import { DateTime, Interval } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { Calendar } from '../polyfills/Utils'; import { Daf } from './Daf'; @@ -16,7 +16,7 @@ export class YerushalmiYomiCalculator { /** * The start date of the first Daf Yomi Yerushalmi cycle of February 2, 1980 / 15 Shevat, 5740. */ - private static readonly DAF_YOMI_START_DAY: DateTime = DateTime.fromObject({ + private static readonly DAF_YOMI_START_DAY: Temporal.PlainDate = Temporal.PlainDate.from({ year: 1980, month: Calendar.FEBRUARY + 1, day: 2, @@ -53,9 +53,9 @@ export class YerushalmiYomiCalculator { * if the date is prior to the February 2, 1980, the start of the first Daf Yomi Yerushalmi cycle */ public static getDafYomiYerushalmi(jewishCalendar: JewishCalendar): Daf | null { - let nextCycle: DateTime = YerushalmiYomiCalculator.DAF_YOMI_START_DAY; - let prevCycle: DateTime = YerushalmiYomiCalculator.DAF_YOMI_START_DAY; - const requested: DateTime = jewishCalendar.getDate(); + let nextCycle: Temporal.PlainDate = YerushalmiYomiCalculator.DAF_YOMI_START_DAY; + let prevCycle: Temporal.PlainDate = YerushalmiYomiCalculator.DAF_YOMI_START_DAY; + const requested: Temporal.PlainDate = jewishCalendar.getDate(); let masechta: number = 0; let dafYomi: Daf; @@ -64,7 +64,7 @@ export class YerushalmiYomiCalculator { return null; } - if (requested < YerushalmiYomiCalculator.DAF_YOMI_START_DAY) { + if (Temporal.PlainDate.compare(requested, YerushalmiYomiCalculator.DAF_YOMI_START_DAY) < 0) { throw new IllegalArgumentException(`${requested} is prior to organized Daf Yomi Yerushalmi cycles that started on ${YerushalmiYomiCalculator.DAF_YOMI_START_DAY}`); } @@ -72,17 +72,17 @@ export class YerushalmiYomiCalculator { // nextCycle = YerushalmiYomiCalculator.DAF_YOMI_START_DAY; // Go cycle by cycle, until we get the next cycle - while (requested > nextCycle) { + while (Temporal.PlainDate.compare(requested, nextCycle) > 0) { prevCycle = nextCycle; // Adds the number of whole shas dafs, and then the number of days that not have daf. - nextCycle = nextCycle.plus({ days: YerushalmiYomiCalculator.WHOLE_SHAS_DAFS }); + nextCycle = nextCycle.add({ days: YerushalmiYomiCalculator.WHOLE_SHAS_DAFS }); // This needs to be a separate step - nextCycle = nextCycle.plus({ days: YerushalmiYomiCalculator.getNumOfSpecialDays(prevCycle, nextCycle) }); + nextCycle = nextCycle.add({ days: YerushalmiYomiCalculator.getNumOfSpecialDays(prevCycle, nextCycle) }); } // Get the number of days from cycle start until request. - const dafNo: number = requested.diff(prevCycle, ['days']).days; + const dafNo: number = requested.since(prevCycle).days; // Get the number of special days to subtract const specialDays: number = YerushalmiYomiCalculator.getNumOfSpecialDays(prevCycle, requested); @@ -110,7 +110,7 @@ export class YerushalmiYomiCalculator { * @param end - end date to calculate at * @return the number of special days between the start and end dates */ - private static getNumOfSpecialDays(start: DateTime, end: DateTime): number { + private static getNumOfSpecialDays(start: Temporal.PlainDate, end: Temporal.PlainDate): number { // Find the start and end Jewish years const jewishStartYear: number = new JewishCalendar(start).getJewishYear(); const jewishEndYear: number = new JewishCalendar(end).getJewishYear(); @@ -127,9 +127,14 @@ export class YerushalmiYomiCalculator { yomKippur.setJewishYear(i); tishaBeav.setJewishYear(i); - const interval = Interval.fromDateTimes(start, end); - if (interval.contains(yomKippur.getDate())) specialDays++; - if (interval.contains(tishaBeav.getDate())) specialDays++; + const yk = yomKippur.getDate(); + if (Temporal.PlainDate.compare(yk, start) >= 0 && Temporal.PlainDate.compare(yk, end) <= 0) { + specialDays++; + } + const av9 = tishaBeav.getDate(); + if (Temporal.PlainDate.compare(av9, start) >= 0 && Temporal.PlainDate.compare(av9, end) <= 0) { + specialDays++; + } } return specialDays; diff --git a/src/hebrewcalendar/YomiCalculator.ts b/src/hebrewcalendar/YomiCalculator.ts index 3db647f..a388591 100644 --- a/src/hebrewcalendar/YomiCalculator.ts +++ b/src/hebrewcalendar/YomiCalculator.ts @@ -1,4 +1,4 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { Calendar } from '../polyfills/Utils'; import { Daf } from './Daf'; @@ -17,7 +17,7 @@ export class YomiCalculator { /** * The start date of the first Daf Yomi Bavli cycle of September 11, 1923 / Rosh Hashana 5684. */ - private static readonly dafYomiStartDate: DateTime = DateTime.fromObject({ + private static readonly dafYomiStartDate: Temporal.PlainDate = Temporal.PlainDate.from({ year: 1923, month: Calendar.SEPTEMBER + 1, day: 11, @@ -30,7 +30,7 @@ export class YomiCalculator { * The date that the pagination for the Daf Yomi Maseches Shekalim changed to use the commonly used Vilna * Shas pagination from the no longer commonly available Zhitomir / Slavuta Shas used by Rabbi Meir Shapiro. */ - private static readonly shekalimChangeDate: DateTime = DateTime.fromObject({ year: 1975, month: Calendar.JUNE + 1, day: 24 }); + private static readonly shekalimChangeDate: Temporal.PlainDate = Temporal.PlainDate.from({ year: 1975, month: Calendar.JUNE + 1, day: 24 }); /** The Julian date that the cycle for Shekalim changed. * @see #getDafYomiBavli(JewishCalendar) for details. @@ -78,17 +78,18 @@ export class YomiCalculator { const blattPerMasechta: number[] = [64, 157, 105, 121, 22, 88, 56, 40, 35, 31, 32, 29, 27, 122, 112, 91, 66, 49, 90, 82, 119, 119, 176, 113, 24, 49, 76, 14, 120, 110, 142, 61, 34, 34, 28, 22, 4, 9, 5, 73]; - const date: DateTime = calendar.getDate(); + const date: Temporal.PlainDate = calendar.getDate(); let dafYomi: Daf; const julianDay: number = this.getJulianDay(date); let cycleNo: number; let dafNo: number; - if (date < YomiCalculator.dafYomiStartDate) { + if (Temporal.PlainDate.compare(date, YomiCalculator.dafYomiStartDate) < 0) { // TODO: should we return a null or throw an IllegalArgumentException? throw new IllegalArgumentException(`${calendar} is prior to organized Daf Yomi Bavli cycles that started on ${YomiCalculator.dafYomiStartDate}`); } - if ((date > YomiCalculator.shekalimChangeDate) || date.equals(YomiCalculator.shekalimChangeDate)) { + if ((Temporal.PlainDate.compare(date, YomiCalculator.shekalimChangeDate) > 0) || + date.equals(YomiCalculator.shekalimChangeDate)) { cycleNo = 8 + ((julianDay - YomiCalculator.shekalimJulianChangeDay) / 2711); dafNo = ((julianDay - YomiCalculator.shekalimJulianChangeDay) % 2711); } else { @@ -134,7 +135,7 @@ export class YomiCalculator { * The Java Date * @return the Julian day number corresponding to the date */ - private static getJulianDay(date: DateTime): number { + private static getJulianDay(date: Temporal.PlainDate): number { let { year, month } = date; const { day } = date; diff --git a/src/kosher-zmanim.ts b/src/kosher-zmanim.ts index 9441db0..0b2266e 100644 --- a/src/kosher-zmanim.ts +++ b/src/kosher-zmanim.ts @@ -1,5 +1,4 @@ -import * as _Luxon from 'luxon'; - +import { Temporal } from 'temporal-polyfill'; import { GeoLocation } from './util/GeoLocation'; import { ZmanimCalendar } from './ZmanimCalendar'; import { ComplexZmanimCalendar } from './ComplexZmanimCalendar'; @@ -12,7 +11,7 @@ export function getZmanimJson(options: Options): JsonOutput { const zmanimCalendar: ZmanimCalendar = options.complexZmanim ? new ComplexZmanimCalendar(geoLocation) : new ZmanimCalendar(geoLocation); - zmanimCalendar.setDate(options.date || _Luxon.DateTime.local()); + zmanimCalendar.setDate(options.date || Temporal.Now.plainDateISO()); return ZmanimFormatter.toJSON(zmanimCalendar); } @@ -20,7 +19,7 @@ export interface Options { /** * @default The current local date. The time is ignored. */ - date?: Date | string | number | _Luxon.DateTime; + date?: Date | string | number | Temporal.PlainDate; /** * IANA timezone ID */ @@ -60,8 +59,3 @@ export * from './hebrewcalendar/YerushalmiYomiCalculator'; export * from './hebrewcalendar/HebrewDateFormatter'; export * from './util/ZmanimFormatter'; - -export const Luxon = _Luxon; - -// Exported explicitly as a convenience. -export const DateTime = _Luxon.DateTime; diff --git a/src/polyfills/Utils.ts b/src/polyfills/Utils.ts index fc02203..646d78c 100644 --- a/src/polyfills/Utils.ts +++ b/src/polyfills/Utils.ts @@ -1,4 +1,4 @@ -import { DateTime, Info } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; export namespace Utils { // https://stackoverflow.com/a/40577337/8037425 @@ -31,35 +31,26 @@ export namespace TimeZone { * @return the amount of raw offset time in milliseconds to add to UTC. */ export function getRawOffset(timeZoneId: string): number { - const janDateTime = DateTime.fromObject({ + const janDateTime = Temporal.ZonedDateTime.from({ + year: 2019, month: 1, day: 1, - zone: timeZoneId, + timeZone: timeZoneId, }); - const julyDateTime = janDateTime.set({ month: 7 }); + const julyDateTime = janDateTime.with({ month: 7 }); - let rawOffsetMinutes; + let rawOffsetNanoseconds: number; if (janDateTime.offset === julyDateTime.offset) { - rawOffsetMinutes = janDateTime.offset; + rawOffsetNanoseconds = janDateTime.offsetNanoseconds; } else { - const max = Math.max(janDateTime.offset, julyDateTime.offset); + const max = Math.max(janDateTime.offsetNanoseconds, julyDateTime.offsetNanoseconds); - rawOffsetMinutes = max < 0 + rawOffsetNanoseconds = max < 0 ? 0 - max - : 0 - Math.min(janDateTime.offset, julyDateTime.offset); + : 0 - Math.min(janDateTime.offsetNanoseconds, julyDateTime.offsetNanoseconds); } - return rawOffsetMinutes * 60 * 1000; - } - - /** - * Returns a name in the specified style of this TimeZone suitable for presentation to the user in the default locale. - * @param {string} timeZoneId - * @param {DateTime} [date] - * @param {boolean} [short] - */ - export function getDisplayName(timeZoneId: string, date: DateTime = DateTime.local(), short: boolean = false): string { - return Info.normalizeZone(timeZoneId).offsetName(date.toMillis(), { format: short ? 'short' : 'long' }); + return Math.trunc(rawOffsetNanoseconds / 1_000_000); } /** @@ -70,7 +61,8 @@ export namespace TimeZone { * @return {number} */ export function getDSTSavings(timeZoneId: string): number { - return Info.hasDST(timeZoneId) ? 3600000 : 0; + return -1; + // return Info.hasDST(timeZoneId) ? 3600000 : 0; } /** @@ -83,7 +75,12 @@ export namespace TimeZone { * @param {number} millisSinceEpoch */ export function getOffset(timeZoneId: string, millisSinceEpoch: number): number { - return Info.normalizeZone(timeZoneId).offset(millisSinceEpoch) * 60 * 1000; + const instant = Temporal.Instant.fromEpochMilliseconds(millisSinceEpoch); + const zdt = instant.toZonedDateTimeISO(timeZoneId); + const [hour, min] = zdt.offset.split(':').map((s: string) => parseInt(s, 10)); + const h60 = hour * 60; + const minutes = hour < 0 ? h60 - min : h60 + min; + return minutes * 60 * 1000; } } diff --git a/src/util/AstronomicalCalculator.ts b/src/util/AstronomicalCalculator.ts index a08dca6..7547fd8 100644 --- a/src/util/AstronomicalCalculator.ts +++ b/src/util/AstronomicalCalculator.ts @@ -1,4 +1,4 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { GeoLocation } from './GeoLocation'; import { MathUtils } from '../polyfills/Utils'; @@ -110,7 +110,7 @@ export abstract class AstronomicalCalculator { * {@link java.lang.Double#NaN} will be returned. * @see #getElevationAdjustment(double) */ - public abstract getUTCSunrise(date: DateTime, geoLocation: GeoLocation, zenith: number, + public abstract getUTCSunrise(date: Temporal.PlainDate, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number; // eslint-disable-line @typescript-eslint/indent /** @@ -134,7 +134,7 @@ export abstract class AstronomicalCalculator { * {@link java.lang.Double#NaN} will be returned. * @see #getElevationAdjustment(double) */ - public abstract getUTCSunset(date: DateTime, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number; + public abstract getUTCSunset(date: Temporal.PlainDate, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number; /** * Return solar noon (UTC) for the given day at the @@ -149,7 +149,7 @@ export abstract class AstronomicalCalculator { * * @return the time in minutes from zero UTC */ - public abstract getUTCNoon(date: DateTime, geoLocation: GeoLocation): number; + public abstract getUTCNoon(date: Temporal.PlainDate, geoLocation: GeoLocation): number; /** * Return solar midnight (UTC) for the given day at the @@ -164,7 +164,7 @@ export abstract class AstronomicalCalculator { * * @return the time in minutes from zero UTC */ - public abstract getUTCMidnight(date: DateTime, geoLocation: GeoLocation): number; + public abstract getUTCMidnight(date: Temporal.PlainDate, geoLocation: GeoLocation): number; /** * Method to return the adjustment to the zenith required to account for the elevation. Since a person at a higher diff --git a/src/util/GeoLocation.ts b/src/util/GeoLocation.ts index 2a3550a..f80d69f 100644 --- a/src/util/GeoLocation.ts +++ b/src/util/GeoLocation.ts @@ -1,4 +1,4 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { MathUtils, TimeZone } from '../polyfills/Utils'; import { IllegalArgumentException, UnsupportedError } from '../polyfills/errors'; @@ -631,10 +631,8 @@ export class GeoLocation { .concat(`\nLongitude:\t\t\t${this.getLongitude().toString()}\u00B0`) .concat(`\nElevation:\t\t\t${this.getElevation().toString()} Meters`) .concat(`\nTimezone ID:\t\t\t${this.getTimeZone()}`) - .concat(`\nTimezone Display Name:\t\t${TimeZone.getDisplayName(this.getTimeZone())}`) - .concat(` (${TimeZone.getDisplayName(this.getTimeZone(), DateTime.local(), true)})`) .concat(`\nTimezone GMT Offset:\t\t${(TimeZone.getRawOffset(this.getTimeZone()) / GeoLocation.HOUR_MILLIS).toString()}`) - .concat(`\nTimezone DST Offset:\t\t${(TimeZone.getDSTSavings(this.getTimeZone()) / GeoLocation.HOUR_MILLIS).toString()}`); + // .concat(`\nTimezone DST Offset:\t\t${(TimeZone.getDSTSavings(this.getTimeZone()) / GeoLocation.HOUR_MILLIS).toString()}`); } /** diff --git a/src/util/NOAACalculator.ts b/src/util/NOAACalculator.ts index acd82f0..fbaae7a 100644 --- a/src/util/NOAACalculator.ts +++ b/src/util/NOAACalculator.ts @@ -1,4 +1,4 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { GeoLocation } from './GeoLocation'; import { AstronomicalCalculator } from './AstronomicalCalculator'; @@ -63,7 +63,7 @@ export class NOAACalculator extends AstronomicalCalculator { /** * @see AstronomicalCalculator#getUTCSunrise(Calendar, GeoLocation, double, boolean) */ - public getUTCSunrise(date: DateTime, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number { + public getUTCSunrise(date: Temporal.PlainDate, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number { const elevation: number = adjustForElevation ? geoLocation.getElevation() : 0; const adjustedZenith: number = this.adjustZenith(zenith, elevation); @@ -77,7 +77,7 @@ export class NOAACalculator extends AstronomicalCalculator { /** * @see AstronomicalCalculator#getUTCSunset(Calendar, GeoLocation, double, boolean) */ - public getUTCSunset(date: DateTime, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number { + public getUTCSunset(date: Temporal.PlainDate, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number { const elevation: number = adjustForElevation ? geoLocation.getElevation() : 0; const adjustedZenith: number = this.adjustZenith(zenith, elevation); @@ -96,7 +96,7 @@ export class NOAACalculator extends AstronomicalCalculator { * @return the Julian day corresponding to the date Note: Number is returned for start of day. Fractional days * should be added later. */ - private static getJulianDay(date: DateTime): number { + private static getJulianDay(date: Temporal.PlainDate): number { let { year, month } = date; const { day } = date; if (month <= 2) { @@ -341,8 +341,8 @@ export class NOAACalculator extends AstronomicalCalculator { * @return solar elevation in degrees - horizon is 0 degrees, civil twilight is -6 degrees */ - public static getSolarElevation(date: DateTime, latitude: number, longitude: number): number { - const julianDay: number = NOAACalculator.getJulianDay(date); + public static getSolarElevation(date: Temporal.ZonedDateTime, latitude: number, longitude: number): number { + const julianDay: number = NOAACalculator.getJulianDay(date.toPlainDate()); const julianCenturies: number = NOAACalculator.getJulianCenturiesFromJulianDay(julianDay); const eot: number = NOAACalculator.getEquationOfTime(julianCenturies); let adjustedLongitude: number = (date.hour + 12) + (date.minute + eot + date.second / 60) / 60; @@ -370,8 +370,8 @@ export class NOAACalculator extends AstronomicalCalculator { * @return FIXME */ - public static getSolarAzimuth(date: DateTime, latitude: number, longitude: number): number { - const julianDay: number = NOAACalculator.getJulianDay(date); + public static getSolarAzimuth(date: Temporal.ZonedDateTime, latitude: number, longitude: number): number { + const julianDay: number = NOAACalculator.getJulianDay(date.toPlainDate()); const julianCenturies: number = NOAACalculator.getJulianCenturiesFromJulianDay(julianDay); const eot: number = NOAACalculator.getEquationOfTime(julianCenturies); let adjustedLongitude: number = (date.hour + 12) + (date.minute + eot + date.second / 60) / 60; @@ -403,7 +403,7 @@ export class NOAACalculator extends AstronomicalCalculator { * the longitude for calculating noon since it is the same time anywhere along the longitude line. * @return the time in minutes from zero UTC */ - public getUTCNoon(date: DateTime, geoLocation: GeoLocation): number { + public getUTCNoon(date: Temporal.PlainDate, geoLocation: GeoLocation): number { let noon = NOAACalculator.getSolarNoonMidnightUTC(NOAACalculator.getJulianDay(date), -geoLocation.getLongitude(), NOAACalculator.SolarEvent.NOON); noon = noon / 60; @@ -428,7 +428,7 @@ export class NOAACalculator extends AstronomicalCalculator { * the longitude for calculating noon since it is the same time anywhere along the longitude line. * @return the time in minutes from zero UTC */ - public getUTCMidnight(date: DateTime, geoLocation: GeoLocation): number { + public getUTCMidnight(date: Temporal.PlainDate, geoLocation: GeoLocation): number { let midnight: number = NOAACalculator.getSolarNoonMidnightUTC(NOAACalculator.getJulianDay(date), -geoLocation.getLongitude(), NOAACalculator.SolarEvent.MIDNIGHT); midnight = midnight / 60; return midnight > 0 ? midnight % 24 : (midnight % 24) + 24; // ensure that the time is >= 0 and < 24 @@ -483,7 +483,7 @@ export class NOAACalculator extends AstronomicalCalculator { * If the calculation is for {@link SolarEvent#SUNRISE SUNRISE} or {@link SolarEvent#SUNSET SUNSET} * @return the time in minutes from zero Universal Coordinated Time (UTC) */ - private static getSunRiseSetUTC(date: DateTime, latitude: number, longitude: number, zenith: number, solarEvent: ValueOf): number { + private static getSunRiseSetUTC(date: Temporal.PlainDate, latitude: number, longitude: number, zenith: number, solarEvent: ValueOf): number { const julianDay: number = this.getJulianDay(date); // Find the time of solar noon at the location, and use that declination. diff --git a/src/util/SunTimesCalculator.ts b/src/util/SunTimesCalculator.ts index 3b6a169..70df9ac 100644 --- a/src/util/SunTimesCalculator.ts +++ b/src/util/SunTimesCalculator.ts @@ -1,4 +1,4 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { GeoLocation } from './GeoLocation'; import { AstronomicalCalculator } from './AstronomicalCalculator'; @@ -36,7 +36,7 @@ export class SunTimesCalculator extends AstronomicalCalculator { /** * @see AstronomicalCalculator#getUTCSunrise(Calendar, GeoLocation, double, boolean) */ - public getUTCSunrise(date: DateTime, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number { + public getUTCSunrise(date: Temporal.PlainDate, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number { const elevation: number = adjustForElevation ? geoLocation.getElevation() : 0; const adjustedZenith: number = this.adjustZenith(zenith, elevation); @@ -46,7 +46,7 @@ export class SunTimesCalculator extends AstronomicalCalculator { /** * @see AstronomicalCalculator#getUTCSunset(Calendar, GeoLocation, double, boolean) */ - public getUTCSunset(date: DateTime, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number { + public getUTCSunset(date: Temporal.PlainDate, geoLocation: GeoLocation, zenith: number, adjustForElevation: boolean): number { const elevation: number = adjustForElevation ? geoLocation.getElevation() : 0; const adjustedZenith: number = this.adjustZenith(zenith, elevation); @@ -230,8 +230,8 @@ export class SunTimesCalculator extends AstronomicalCalculator { * (expected behavior for some locations such as near the poles, * {@link Double#NaN} will be returned. */ - private static getTimeUTC(date: DateTime, geoLocation: GeoLocation, zenith: number, isSunrise: boolean): number { - const dayOfYear: number = date.ordinal; + private static getTimeUTC(date: Temporal.PlainDate, geoLocation: GeoLocation, zenith: number, isSunrise: boolean): number { + const dayOfYear: number = date.dayOfYear; const sunMeanAnomaly: number = SunTimesCalculator.getMeanAnomaly(dayOfYear, geoLocation.getLongitude(), isSunrise); const sunTrueLong: number = SunTimesCalculator.getSunTrueLongitude(sunMeanAnomaly); const sunRightAscensionHours: number = SunTimesCalculator.getSunRightAscensionHours(sunTrueLong); @@ -269,7 +269,7 @@ export class SunTimesCalculator extends AstronomicalCalculator { * @return the time in minutes from zero UTC. If an error was encountered in the calculation (expected behavior for * some locations such as near the poles, {@link Double#NaN} will be returned. */ - public getUTCNoon(date: DateTime, geoLocation: GeoLocation): number { + public getUTCNoon(date: Temporal.PlainDate, geoLocation: GeoLocation): number { const sunrise: number = this.getUTCSunrise(date, geoLocation, 90, false); const sunset: number = this.getUTCSunset(date, geoLocation, 90, false); @@ -297,7 +297,7 @@ export class SunTimesCalculator extends AstronomicalCalculator { * @return the time in minutes from zero UTC. If an error was encountered in the calculation (expected behavior for * some locations such as near the poles, {@link Double#NaN} will be returned. */ - public getUTCMidnight(date: DateTime, geoLocation: GeoLocation): number { + public getUTCMidnight(date: Temporal.PlainDate, geoLocation: GeoLocation): number { return this.getUTCNoon(date, geoLocation) + 12; } } diff --git a/src/util/Zman.ts b/src/util/Zman.ts index fa39a05..f45a7ab 100644 --- a/src/util/Zman.ts +++ b/src/util/Zman.ts @@ -1,4 +1,4 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { IntegerUtils, StringUtils } from '../polyfills/Utils'; import { UnsupportedError } from '../polyfills/errors'; @@ -54,7 +54,7 @@ export class Zman { /** * The {@link Date} of the zman */ - zman?: DateTime; + zman?: Temporal.ZonedDateTime; /** * The duration if the zman is a {@link AstronomicalCalendar#getTemporalHour() temporal hour} (or the various @@ -79,7 +79,7 @@ export class Zman { * @param label the label of the zman such as "Sof Zman Krias Shema GRA". * @see #Zman(Date, GeoLocation, String) */ - constructor(date: DateTime, label: string | null) + constructor(date: Temporal.ZonedDateTime, label: string | null) /** * The constructor setting a duration based zman such as * {@link AstronomicalCalendar#getTemporalHour() temporal hour} (or the various shaah zmanis times such as @@ -90,8 +90,8 @@ export class Zman { * @see #Zman(Date, String) */ constructor(duration: number, label: string | null) - constructor(date: DateTime, geoLocation: GeoLocation, label: string | null) - constructor(dateOrDuration: number | DateTime, labelOrGeoLocation: string | GeoLocation | null, label?: string | null) { + constructor(date: Temporal.ZonedDateTime, geoLocation: GeoLocation, label: string | null) + constructor(dateOrDuration: number | Temporal.ZonedDateTime, labelOrGeoLocation: string | GeoLocation | null, label?: string | null) { this.label = label || null; if (labelOrGeoLocation instanceof GeoLocation) { @@ -100,7 +100,7 @@ export class Zman { this.label = labelOrGeoLocation; } - if (DateTime.isDateTime(dateOrDuration)) { + if (dateOrDuration instanceof Temporal.ZonedDateTime) { this.zman = dateOrDuration; } else { this.duration = dateOrDuration; @@ -114,8 +114,8 @@ export class Zman { * Please note that this class will handle cases where either the {@code Zman} is a null or {@link #getZman()} returns a null. */ static compareDateOrder(zman1: Zman, zman2: Zman): number { - const firstMillis = zman1.zman?.valueOf() || 0; - const secondMillis = zman2.zman?.valueOf() || 0; + const firstMillis = zman1.zman?.epochMilliseconds || 0; + const secondMillis = zman2.zman?.epochMilliseconds || 0; return IntegerUtils.compare(firstMillis, secondMillis); } @@ -179,5 +179,5 @@ export class Zman { } } -export type ZmanWithZmanDate = Zman & { zman: DateTime }; +export type ZmanWithZmanDate = Zman & { zman: Temporal.ZonedDateTime }; export type ZmanWithDuration = Zman & { duration: number }; diff --git a/src/util/ZmanimFormatter.ts b/src/util/ZmanimFormatter.ts index e3e550d..7b3c822 100644 --- a/src/util/ZmanimFormatter.ts +++ b/src/util/ZmanimFormatter.ts @@ -1,4 +1,4 @@ -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { TimeZone, Utils, padZeros } from '../polyfills/Utils'; import { Time } from './Time'; @@ -301,35 +301,36 @@ export class ZmanimFormatter { /** * Formats a date using this class's {@link #getDateFormat() date format}. * - * @param dateTime - the date to format + * @param Temporal.ZonedDateTime - the date to format * @return the formatted String */ - public formatDateTime(dateTime: DateTime): string { + public formatDateTime(dateTime: Temporal.ZonedDateTime): string { // eslint-disable-next-line @typescript-eslint/naming-convention - const _dateTime = dateTime.setZone(this.getTimeZone()); + const _dateTime = dateTime.withTimeZone(this.getTimeZone()); if (this.dateFormat === ZmanimFormatter.XSD_DATE_FORMAT) { return this.getXSDateTime(_dateTime); } - return _dateTime.toFormat(this.dateFormat); + return _dateTime.toLocaleString(); // TODO .toFormat(this.dateFormat); } /** * The date:date-time function returns the current date and time as a date/time string. The date/time string that's - * returned must be a string in the format defined as the lexical representation of xs:dateTime in [3.3.8 dateTime] of [3.3.8 Temporal.ZonedDateTime] of [XML Schema 1.1 Part 2: Datatypes]. The date/time format is * basically CCYY-MM-DDThh:mm:ss, although implementers should consult [XML Schema 1.1 Part 2: Datatypes] and [ISO 8601] for details. The date/time string format must include a * time zone, either a Z to indicate Coordinated Universal Time or a + or - followed by the difference between the * difference from UTC represented as hh:mm. - * @param dateTime - the UTC Date Object - * @return the XSD dateTime + * @param Temporal.ZonedDateTime - the UTC Date Object + * @return the XSD Temporal.ZonedDateTime */ - public getXSDateTime(dateTime: DateTime): string { - return dateTime.setZone(this.getTimeZone()) - .toFormat(ZmanimFormatter.XSD_DATE_FORMAT.concat('ZZ')); + public getXSDateTime(dateTime: Temporal.ZonedDateTime): string { + return dateTime.withTimeZone(this.getTimeZone()).toString(); + // return dateTime.setZone(this.getTimeZone()) + // .toFormat(ZmanimFormatter.XSD_DATE_FORMAT.concat('ZZ')); } /** @@ -400,7 +401,7 @@ export class ZmanimFormatter { * </AstronomicalTimes> * * - * Note that the output uses the xsd:dateTime format for + * Note that the output uses the xsd:Temporal.ZonedDateTime format for * times such as sunrise, and xsd:duration format for * times that are a duration such as the length of a * {@link AstronomicalCalendar#getTemporalHour() temporal hour}. The output of this method is @@ -439,7 +440,6 @@ export class ZmanimFormatter { * "latitude":"40.095965", * "longitude":"-74.22213", * "elevation:"31.0", - * "timeZoneName":"Eastern Standard Time", * "timeZoneID":"America/New_York", * "timeZoneOffset":"-5"}, * "AstronomicalTimes":{ @@ -450,7 +450,7 @@ export class ZmanimFormatter { * } * * - * Note that the output uses the xsd:dateTime format for + * Note that the output uses the xsd:Temporal.ZonedDateTime format for * times such as sunrise, and xsd:duration format for * times that are a duration such as the length of a * {@link AstronomicalCalendar#getTemporalHour() temporal hour}. @@ -468,7 +468,6 @@ export class ZmanimFormatter { * "latitude":"40.095965", * "longitude":"-74.22213", * "elevation:"31.0", - * "timeZoneName":"Eastern Standard Time", * "timeZoneID":"America/New_York", * "timeZoneOffset":"-5"}, * "AstronomicalTimes":{ @@ -498,24 +497,23 @@ export class ZmanimFormatter { return 'BasicZmanim'; case astronomicalCalendar instanceof AstronomicalCalendar: return 'AstronomicalTimes'; + default: + return 'UNKNOWN'; } } private static getOutputMetadata(astronomicalCalendar: AstronomicalCalendar): OutputMetadata { - const df: string = 'yyyy-MM-dd'; - return { - date: astronomicalCalendar.getDate().toFormat(df), + date: astronomicalCalendar.getDate().toString(), // .toFormat(df), type: astronomicalCalendar.getClassName(), algorithm: astronomicalCalendar.getAstronomicalCalculator().getCalculatorName(), location: astronomicalCalendar.getGeoLocation().getLocationName(), latitude: astronomicalCalendar.getGeoLocation().getLatitude().toString(), longitude: astronomicalCalendar.getGeoLocation().getLongitude().toString(), elevation: ZmanimFormatter.formatDecimal(astronomicalCalendar.getGeoLocation().getElevation()), - timeZoneName: TimeZone.getDisplayName(astronomicalCalendar.getGeoLocation().getTimeZone(), astronomicalCalendar.getDate()), timeZoneID: astronomicalCalendar.getGeoLocation().getTimeZone(), timeZoneOffset: ZmanimFormatter.formatDecimal(TimeZone.getOffset(astronomicalCalendar.getGeoLocation().getTimeZone(), - astronomicalCalendar.getDate().valueOf()) / ZmanimFormatter.HOUR_MILLIS), + astronomicalCalendar.getDate().toZonedDateTime({ timeZone: astronomicalCalendar.getGeoLocation().getTimeZone() }).epochMilliseconds) / ZmanimFormatter.HOUR_MILLIS), }; } @@ -537,12 +535,12 @@ export class ZmanimFormatter { value: (astronomicalCalendar as any as Record)[method].call(astronomicalCalendar), })) // Filter for return values of type Date or number - .filter(methodObj => DateTime.isDateTime(methodObj.value) || typeof methodObj.value === 'number' || methodObj.value === null) + .filter(methodObj => methodObj.value instanceof Temporal.ZonedDateTime || typeof methodObj.value === 'number' || methodObj.value === null) // Separate the Dates and numbers .forEach(methodObj => { const tagName: string = methodObj.methodName.substring(3); - if (DateTime.isDateTime(methodObj.value)) { - dateList.push(new Zman(methodObj.value as DateTime, tagName) as ZmanWithZmanDate); + if (methodObj.value instanceof Temporal.ZonedDateTime) { + dateList.push(new Zman(methodObj.value as Temporal.ZonedDateTime, tagName) as ZmanWithZmanDate); } else if (typeof methodObj.value === 'number') { durationList.push(new Zman(methodObj.value, tagName) as ZmanWithDuration); } else { @@ -603,7 +601,6 @@ export interface OutputMetadata { latitude: string; longitude: string; elevation: string; - timeZoneName: string; timeZoneID: string; timeZoneOffset: string; } diff --git a/tests/ComplexZmanimCalendar.test.ts b/tests/ComplexZmanimCalendar.test.ts new file mode 100644 index 0000000..dde551a --- /dev/null +++ b/tests/ComplexZmanimCalendar.test.ts @@ -0,0 +1,944 @@ +/* eslint-disable max-len */ +import { Temporal } from 'temporal-polyfill'; +import { test } from 'mocha'; +import { assert } from 'chai'; +import { GeoLocation } from '../src/util/GeoLocation'; +import { ComplexZmanimCalendar } from '../src/ComplexZmanimCalendar'; + +function makeComplexZmanimCalendar(): ComplexZmanimCalendar { + const latitude = 39.73915; + const longitude = -104.9847; + const elevtion = 1636; + const tzid = 'America/Denver'; + const gloc = new GeoLocation(null, latitude, longitude, elevtion, tzid); + const zman = new ComplexZmanimCalendar(gloc); + zman.setUseElevation(true); + const plainDate = new Temporal.PlainDate(2020, 6, 5); // Friday June 5 2020 + zman.setDate(plainDate); + return zman; +} + +test('getShaahZmanis19Point8Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis19Point8Degrees(); + assert.equal(shaahZmanis, 5821509); +}); + +test('getShaahZmanis18Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis18Degrees(); + assert.equal(shaahZmanis, 5660080.666666667); +}); + +test('getShaahZmanis26Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis26Degrees(); + assert.equal(shaahZmanis, 6590251.25); +}); + +test('getShaahZmanis16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis16Point1Degrees(); + assert.equal(shaahZmanis, 5502340.5); +}); + +test('getShaahZmanis60Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis60Minutes(); + assert.equal(shaahZmanis, 5142278.916666667); +}); + +test('getShaahZmanis72Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis72Minutes(); + assert.equal(shaahZmanis, 5262278.916666667); +}); + +test('getShaahZmanis72MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis72MinutesZmanis(); + assert.equal(shaahZmanis, 5450734.583333333); +}); + +test('getShaahZmanis90Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis90Minutes(); + assert.equal(shaahZmanis, 5442278.916666667); +}); + +test('getShaahZmanis90MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis90MinutesZmanis(); + assert.equal(shaahZmanis, 5677848.583333333); +}); + +test('getShaahZmanis96MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis96MinutesZmanis(); + assert.equal(shaahZmanis, 5753553.25); +}); + +test('getShaahZmanisAteretTorah', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanisAteretTorah(); + assert.equal(shaahZmanis, 5196506.75); +}); + +test('getShaahZmanisAlos16Point1ToTzais3Point8', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanisAlos16Point1ToTzais3Point8(); + assert.equal(shaahZmanis, 5073439.166666667); +}); + +test('getShaahZmanisAlos16Point1ToTzais3Point7', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanisAlos16Point1ToTzais3Point7(); + assert.equal(shaahZmanis, 5070305.75); +}); + +test('getShaahZmanis96Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis96Minutes(); + assert.equal(shaahZmanis, 5502278.916666667); +}); + +test('getShaahZmanis120Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis120Minutes(); + assert.equal(shaahZmanis, 5742278.916666667); +}); + +test('getShaahZmanis120MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanis120MinutesZmanis(); + assert.equal(shaahZmanis, 6056371.75); +}); + +test('getAlos60', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos60(); + assert.strictEqual(alos!.toString(), '2020-06-05T04:24:30.501-06:00[America/Denver]'); +}); + +test('getAlos72Zmanis', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos72Zmanis(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:53:39.767-06:00[America/Denver]'); +}); + +test('getAlos96', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos96(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:48:30.501-06:00[America/Denver]'); +}); + +test('getAlos90Zmanis', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos90Zmanis(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:30:57.083-06:00[America/Denver]'); +}); + +test('getAlos96Zmanis', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos96Zmanis(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:23:22.855-06:00[America/Denver]'); +}); + +test('getAlos90', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos90(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:54:30.501-06:00[America/Denver]'); +}); + +test('getAlos120', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos120(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:24:30.501-06:00[America/Denver]'); +}); + +test('getAlos120Zmanis', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos120Zmanis(); + assert.strictEqual(alos!.toString(), '2020-06-05T02:53:05.944-06:00[America/Denver]'); +}); + +test('getAlos26Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos26Degrees(); + assert.strictEqual(alos!.toString(), '2020-06-05T02:00:27.165-06:00[America/Denver]'); +}); + +test('getAlos18Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos18Degrees(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:32:53.265-06:00[America/Denver]'); +}); + +test('getAlos19Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos19Degrees(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:24:06.709-06:00[America/Denver]'); +}); + +test('getAlos19Point8Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos19Point8Degrees(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:16:47.375-06:00[America/Denver]'); +}); + +test('getAlos16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlos16Point1Degrees(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:48:37.581-06:00[America/Denver]'); +}); + +test('getMisheyakir11Point5Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const misheyakir = zman.getMisheyakir11Point5Degrees(); + assert.strictEqual(misheyakir!.toString(), '2020-06-05T04:23:08.923-06:00[America/Denver]'); +}); + +test('getMisheyakir11Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const misheyakir = zman.getMisheyakir11Degrees(); + assert.strictEqual(misheyakir!.toString(), '2020-06-05T04:26:40.45-06:00[America/Denver]'); +}); + +test('getMisheyakir10Point2Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const misheyakir = zman.getMisheyakir10Point2Degrees(); + assert.strictEqual(misheyakir!.toString(), '2020-06-05T04:32:14.456-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA19Point8Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA19Point8Degrees(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:07:51.902-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA16Point1Degrees(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:23:44.602-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA18Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA18Degrees(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:15:53.507-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA72Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA72Minutes(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:35:37.337-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA72MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA72MinutesZmanis(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:26:11.97-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA90Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA90Minutes(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:26:37.337-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA90MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA90MinutesZmanis(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:14:50.628-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA96Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA96Minutes(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:23:37.337-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA96MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA96MinutesZmanis(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:11:03.514-06:00[America/Denver]'); +}); + +test('getSofZmanShma3HoursBeforeChatzos', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShma3HoursBeforeChatzos(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T09:58:30.268-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA120Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA120Minutes(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:11:37.337-06:00[America/Denver]'); +}); + +test('getSofZmanShmaAlos16Point1ToSunset', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaAlos16Point1ToSunset(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T07:59:42.647-06:00[America/Denver]'); +}); + +test('getSofZmanShmaAlos16Point1ToTzaisGeonim7Point083Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaAlos16Point1ToTzaisGeonim7Point083Degrees(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:07:33.537-06:00[America/Denver]'); +}); + +test('getSofZmanShmaKolEliyahu', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaKolEliyahu(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T09:12:13.415-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA19Point8Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaMGA19Point8Degrees(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T09:44:53.411-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaMGA16Point1Degrees(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T09:55:26.943-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA18Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaMGA18Degrees(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T09:50:13.587-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA72Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaMGA72Minutes(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T10:03:19.616-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA72MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaMGA72MinutesZmanis(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T09:57:02.705-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA90Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaMGA90Minutes(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T09:57:19.616-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA90MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaMGA90MinutesZmanis(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T09:49:28.477-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA96Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaMGA96Minutes(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T09:55:19.616-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA96MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaMGA96MinutesZmanis(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T09:46:57.068-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA120Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaMGA120Minutes(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T09:47:19.616-06:00[America/Denver]'); +}); + +test('getSofZmanTfila2HoursBeforeChatzos', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfila2HoursBeforeChatzos(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T10:58:30.268-06:00[America/Denver]'); +}); + +test('getMinchaGedola30Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const minchaGedola = zman.getMinchaGedola30Minutes(); + assert.strictEqual(minchaGedola!.toString(), '2020-06-05T13:28:30.268-06:00[America/Denver]'); +}); + +test('getMinchaGedola72Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const minchaGedola = zman.getMinchaGedola72Minutes(); + assert.strictEqual(minchaGedola!.toString(), '2020-06-05T13:42:35.313-06:00[America/Denver]'); +}); + +test('getMinchaGedola16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const minchaGedola = zman.getMinchaGedola16Point1Degrees(); + assert.strictEqual(minchaGedola!.toString(), '2020-06-05T13:44:42.794-06:00[America/Denver]'); +}); + +test('getMinchaGedolaAhavatShalom', () => { + const zman = makeComplexZmanimCalendar(); + const minchaGedola = zman.getMinchaGedolaAhavatShalom(); + assert.strictEqual(minchaGedola!.toString(), '2020-06-05T13:40:45.42-06:00[America/Denver]'); +}); + +test('getMinchaGedolaGreaterThan30', () => { + const zman = makeComplexZmanimCalendar(); + const minchaGedola = zman.getMinchaGedolaGreaterThan30(); + assert.strictEqual(minchaGedola!.toString(), '2020-06-05T13:36:35.313-06:00[America/Denver]'); +}); + +test('getMinchaKetana16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const minchaKetana = zman.getMinchaKetana16Point1Degrees(); + assert.strictEqual(minchaKetana!.toString(), '2020-06-05T18:19:49.815-06:00[America/Denver]'); +}); + +test('getMinchaKetanaAhavatShalom', () => { + const zman = makeComplexZmanimCalendar(); + const minchaKetana = zman.getMinchaKetanaAhavatShalom(); + assert.strictEqual(minchaKetana!.toString(), '2020-06-05T17:11:55.254-06:00[America/Denver]'); +}); + +test('getMinchaKetana72Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const minchaKetana = zman.getMinchaKetana72Minutes(); + assert.strictEqual(minchaKetana!.toString(), '2020-06-05T18:05:42.15-06:00[America/Denver]'); +}); + +test('getPlagHamincha60Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha60Minutes(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T19:45:49.999-06:00[America/Denver]'); +}); + +test('getPlagHamincha72Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha72Minutes(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T19:55:19.999-06:00[America/Denver]'); +}); + +test('getPlagHamincha90Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha90Minutes(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T20:09:34.999-06:00[America/Denver]'); +}); + +test('getPlagHamincha96Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha96Minutes(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T20:14:19.999-06:00[America/Denver]'); +}); + +test('getPlagHamincha96MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha96MinutesZmanis(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T20:34:13.552-06:00[America/Denver]'); +}); + +test('getPlagHamincha90MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha90MinutesZmanis(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T20:28:13.955-06:00[America/Denver]'); +}); + +test('getPlagHamincha72MinutesZmanis', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha72MinutesZmanis(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T20:10:15.163-06:00[America/Denver]'); +}); + +test('getPlagHamincha16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha16Point1Degrees(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T20:14:27.741-06:00[America/Denver]'); +}); + +test('getPlagHamincha19Point8Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha19Point8Degrees(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T20:39:48.596-06:00[America/Denver]'); +}); + +test('getPlagHamincha26Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha26Degrees(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T21:41:12.365-06:00[America/Denver]'); +}); + +test('getPlagHamincha18Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHamincha18Degrees(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T20:26:59.132-06:00[America/Denver]'); +}); + +test('getPlagAlosToSunset', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagAlosToSunset(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T18:48:20.736-06:00[America/Denver]'); +}); + +test('getPlagAlos16Point1ToTzaisGeonim7Point083Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagAlos16Point1ToTzaisGeonim7Point083Degrees(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T19:16:28.091-06:00[America/Denver]'); +}); + +test('getPlagAhavatShalom', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagAhavatShalom(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T18:57:37.053-06:00[America/Denver]'); +}); + +test('getBainHashmashosRT13Point24Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const bainHashmashos = zman.getBainHashmashosRT13Point24Degrees(); + assert.strictEqual(bainHashmashos!.toString(), '2020-06-05T21:47:04.203-06:00[America/Denver]'); +}); + +test('getBainHashmashosRT58Point5Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const bainHashmashos = zman.getBainHashmashosRT58Point5Minutes(); + assert.strictEqual(bainHashmashos!.toString(), '2020-06-05T21:31:27.848-06:00[America/Denver]'); +}); + +test('getBainHashmashosRT13Point5MinutesBefore7Point083Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const bainHashmashos = zman.getBainHashmashosRT13Point5MinutesBefore7Point083Degrees(); + assert.strictEqual(bainHashmashos!.toString(), '2020-06-05T20:50:51.407-06:00[America/Denver]'); +}); + +test('getBainHashmashosRT2Stars', () => { + const zman = makeComplexZmanimCalendar(); + const bainHashmashos = zman.getBainHashmashosRT2Stars(); + assert.strictEqual(bainHashmashos!.toString(), '2020-06-05T21:08:26.494-06:00[America/Denver]'); +}); + +test('getBainHashmashosYereim18Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const bainHashmashos = zman.getBainHashmashosYereim18Minutes(); + assert.strictEqual(bainHashmashos!.toString(), '2020-06-05T20:14:57.848-06:00[America/Denver]'); +}); + +test('getBainHashmashosYereim3Point05Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const bainHashmashos = zman.getBainHashmashosYereim3Point05Degrees(); + assert.strictEqual(bainHashmashos!.toString(), '2020-06-05T20:01:54.067-06:00[America/Denver]'); +}); + +test('getBainHashmashosYereim16Point875Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const bainHashmashos = zman.getBainHashmashosYereim16Point875Minutes(); + assert.strictEqual(bainHashmashos!.toString(), '2020-06-05T20:16:05.348-06:00[America/Denver]'); +}); + +test('getBainHashmashosYereim2Point8Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const bainHashmashos = zman.getBainHashmashosYereim2Point8Degrees(); + assert.strictEqual(bainHashmashos!.toString(), '2020-06-05T20:03:21.963-06:00[America/Denver]'); +}); + +test('getBainHashmashosYereim13Point5Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const bainHashmashos = zman.getBainHashmashosYereim13Point5Minutes(); + assert.strictEqual(bainHashmashos!.toString(), '2020-06-05T20:19:27.848-06:00[America/Denver]'); +}); + +test('getBainHashmashosYereim2Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const bainHashmashos = zman.getBainHashmashosYereim2Point1Degrees(); + assert.strictEqual(bainHashmashos!.toString(), '2020-06-05T20:07:29.052-06:00[America/Denver]'); +}); + +test('getTzaisGeonim3Point7Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim3Point7Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T20:42:41.25-06:00[America/Denver]'); +}); + +test('getTzaisGeonim3Point8Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim3Point8Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T20:43:18.851-06:00[America/Denver]'); +}); + +test('getTzaisGeonim5Point95Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim5Point95Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T20:56:59.087-06:00[America/Denver]'); +}); + +test('getTzaisGeonim4Point61Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim4Point61Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T20:48:25.158-06:00[America/Denver]'); +}); + +test('getTzaisGeonim4Point37Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim4Point37Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T20:46:54.072-06:00[America/Denver]'); +}); + +test('getTzaisGeonim5Point88Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim5Point88Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T20:56:32.005-06:00[America/Denver]'); +}); + +test('getTzaisGeonim4Point8Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim4Point8Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T20:49:37.468-06:00[America/Denver]'); +}); + +test('getTzaisGeonim6Point45Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim6Point45Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T21:00:13.319-06:00[America/Denver]'); +}); + +test('getTzaisGeonim7Point083Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim7Point083Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T21:04:21.407-06:00[America/Denver]'); +}); + +test('getTzaisGeonim8Point5Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim8Point5Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T21:13:45.311-06:00[America/Denver]'); +}); + +test('getTzaisGeonim9Point3Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim9Point3Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T21:19:09.713-06:00[America/Denver]'); +}); + +test('getTzaisGeonim9Point75Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisGeonim9Point75Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T21:22:14.239-06:00[America/Denver]'); +}); + +test('getTzais60', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais60(); + assert.strictEqual(tzais!.toString(), '2020-06-05T21:32:57.848-06:00[America/Denver]'); +}); + +test('getTzaisAteretTorah', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisAteretTorah(); + assert.strictEqual(tzais!.toString(), '2020-06-05T21:12:57.848-06:00[America/Denver]'); +}); + +test('getAteretTorahSunsetOffset', () => { + const zman = makeComplexZmanimCalendar(); + const offset = zman.getAteretTorahSunsetOffset(); + assert.equal(offset, 40); +}); + +test('setAteretTorahSunsetOffset', () => { + const zman = makeComplexZmanimCalendar(); + zman.setAteretTorahSunsetOffset(50); + const offset = zman.getAteretTorahSunsetOffset(); + assert.equal(offset, 50); +}); + +test('getSofZmanShmaAteretTorah', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaAteretTorah(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:13:29.287-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaAteretTorah', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaAteretTorah(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T09:40:05.794-06:00[America/Denver]'); +}); + +test('getMinchaGedolaAteretTorah', () => { + const zman = makeComplexZmanimCalendar(); + const minchaGedola = zman.getMinchaGedolaAteretTorah(); + assert.strictEqual(minchaGedola!.toString(), '2020-06-05T13:16:37.06-06:00[America/Denver]'); +}); + +test('getMinchaKetanaAteretTorah', () => { + const zman = makeComplexZmanimCalendar(); + const minchaKetana = zman.getMinchaKetanaAteretTorah(); + assert.strictEqual(minchaKetana!.toString(), '2020-06-05T17:36:26.581-06:00[America/Denver]'); +}); + +test('getPlagHaminchaAteretTorah', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHaminchaAteretTorah(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T19:24:42.214-06:00[America/Denver]'); +}); + +test('getTzais72Zmanis', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais72Zmanis(); + assert.strictEqual(tzais!.toString(), '2020-06-05T22:03:48.582-06:00[America/Denver]'); +}); + +test('getTzais90Zmanis', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais90Zmanis(); + assert.strictEqual(tzais!.toString(), '2020-06-05T22:26:31.266-06:00[America/Denver]'); +}); + +test('getTzais96Zmanis', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais96Zmanis(); + assert.strictEqual(tzais!.toString(), '2020-06-05T22:34:05.494-06:00[America/Denver]'); +}); + +test('getTzais90', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais90(); + assert.strictEqual(tzais!.toString(), '2020-06-05T22:02:57.848-06:00[America/Denver]'); +}); + +test('getTzais120', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais120(); + assert.strictEqual(tzais!.toString(), '2020-06-05T22:32:57.848-06:00[America/Denver]'); +}); + +test('getTzais120Zmanis', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais120Zmanis(); + assert.strictEqual(tzais!.toString(), '2020-06-05T23:04:22.405-06:00[America/Denver]'); +}); + +test('getTzais16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais16Point1Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T22:09:05.667-06:00[America/Denver]'); +}); + +test('getTzais26Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais26Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T23:58:30.18-06:00[America/Denver]'); +}); + +test('getTzais18Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais18Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T22:24:54.233-06:00[America/Denver]'); +}); + +test('getTzais19Point8Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais19Point8Degrees(); + assert.strictEqual(tzais!.toString(), '2020-06-05T22:41:05.483-06:00[America/Denver]'); +}); + +test('getTzais96', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais96(); + assert.strictEqual(tzais!.toString(), '2020-06-05T22:08:57.848-06:00[America/Denver]'); +}); + +test('getFixedLocalChatzos', () => { + const zman = makeComplexZmanimCalendar(); + const chatzos = zman.getFixedLocalChatzos(); + assert.strictEqual(chatzos!.toString(), '2020-06-05T12:59:56.328-06:00[America/Denver]'); +}); + +test('getSofZmanShmaFixedLocal', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaFixedLocal(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T09:59:56.328-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaFixedLocal', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaFixedLocal(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T10:59:56.328-06:00[America/Denver]'); +}); + +test('getSofZmanAchilasChametzGRA', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanAchilasChametz = zman.getSofZmanAchilasChametzGRA(); + assert.strictEqual(sofZmanAchilasChametz!.toString(), '2020-06-05T10:27:19.616-06:00[America/Denver]'); +}); + +test('getSofZmanAchilasChametzMGA72Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanAchilasChametz = zman.getSofZmanAchilasChametzMGA72Minutes(); + assert.strictEqual(sofZmanAchilasChametz!.toString(), '2020-06-05T10:03:19.616-06:00[America/Denver]'); +}); + +test('getSofZmanAchilasChametzMGA16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanAchilasChametz = zman.getSofZmanAchilasChametzMGA16Point1Degrees(); + assert.strictEqual(sofZmanAchilasChametz!.toString(), '2020-06-05T09:55:26.943-06:00[America/Denver]'); +}); + +test('getSofZmanBiurChametzGRA', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanBiurChametz = zman.getSofZmanBiurChametzGRA(); + assert.strictEqual(sofZmanBiurChametz!.toString(), '2020-06-05T11:43:01.895-06:00[America/Denver]'); +}); + +test('getSofZmanBiurChametzMGA72Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanBiurChametz = zman.getSofZmanBiurChametzMGA72Minutes(); + assert.strictEqual(sofZmanBiurChametz!.toString(), '2020-06-05T11:31:01.895-06:00[America/Denver]'); +}); + +test('getSofZmanBiurChametzMGA16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanBiurChametz = zman.getSofZmanBiurChametzMGA16Point1Degrees(); + assert.strictEqual(sofZmanBiurChametz!.toString(), '2020-06-05T11:27:09.283-06:00[America/Denver]'); +}); + +test('getShaahZmanisBaalHatanya', () => { + const zman = makeComplexZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanisBaalHatanya(); + assert.equal(shaahZmanis, 4508577.75); +}); + +test('getAlosBaalHatanya', () => { + const zman = makeComplexZmanimCalendar(); + const alos = zman.getAlosBaalHatanya(); + assert.strictEqual(alos!.toString(), '2020-06-05T03:42:07.966-06:00[America/Denver]'); +}); + +test('getSofZmanShmaBaalHatanya', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaBaalHatanya(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T09:13:18.278-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaBaalHatanya', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaBaalHatanya(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T10:28:26.856-06:00[America/Denver]'); +}); + +test('getSofZmanAchilasChametzBaalHatanya', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanAchilasChametz = zman.getSofZmanAchilasChametzBaalHatanya(); + assert.strictEqual(sofZmanAchilasChametz!.toString(), '2020-06-05T10:28:26.856-06:00[America/Denver]'); +}); + +test('getSofZmanBiurChametzBaalHatanya', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanBiurChametz = zman.getSofZmanBiurChametzBaalHatanya(); + assert.strictEqual(sofZmanBiurChametz!.toString(), '2020-06-05T11:43:35.433-06:00[America/Denver]'); +}); + +test('getMinchaGedolaBaalHatanya', () => { + const zman = makeComplexZmanimCalendar(); + const minchaGedola = zman.getMinchaGedolaBaalHatanya(); + assert.strictEqual(minchaGedola!.toString(), '2020-06-05T13:36:18.3-06:00[America/Denver]'); +}); + +test('getMinchaGedolaBaalHatanyaGreaterThan30', () => { + const zman = makeComplexZmanimCalendar(); + const minchaGedola = zman.getMinchaGedolaBaalHatanyaGreaterThan30(); + assert.strictEqual(minchaGedola!.toString(), '2020-06-05T13:36:18.3-06:00[America/Denver]'); +}); + +test('getMinchaKetanaBaalHatanya', () => { + const zman = makeComplexZmanimCalendar(); + const minchaKetana = zman.getMinchaKetanaBaalHatanya(); + assert.strictEqual(minchaKetana!.toString(), '2020-06-05T17:21:44.033-06:00[America/Denver]'); +}); + +test('getPlagHaminchaBaalHatanya', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHaminchaBaalHatanya(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T18:55:39.755-06:00[America/Denver]'); +}); + +test('getTzaisBaalHatanya', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzaisBaalHatanya(); + assert.strictEqual(tzais!.toString(), '2020-06-05T20:57:18.448-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA18DegreesToFixedLocalChatzos', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA18DegreesToFixedLocalChatzos(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:16:24.796-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA16Point1DegreesToFixedLocalChatzos', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA16Point1DegreesToFixedLocalChatzos(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:24:16.954-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA90MinutesToFixedLocalChatzos', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA90MinutesToFixedLocalChatzos(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:27:13.414-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA72MinutesToFixedLocalChatzos', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaMGA72MinutesToFixedLocalChatzos(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T08:36:13.414-06:00[America/Denver]'); +}); + +test('getSofZmanShmaGRASunriseToFixedLocalChatzos', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanShma = zman.getSofZmanShmaGRASunriseToFixedLocalChatzos(); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T09:12:13.414-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaGRASunriseToFixedLocalChatzos', () => { + const zman = makeComplexZmanimCalendar(); + const sofZmanTfila = zman.getSofZmanTfilaGRASunriseToFixedLocalChatzos(); + assert.strictEqual(sofZmanTfila!.toString(), '2020-06-05T10:28:07.719-06:00[America/Denver]'); +}); + +test('getMinchaGedolaGRAFixedLocalChatzos30Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const minchaGedola = zman.getMinchaGedolaGRAFixedLocalChatzos30Minutes(); + assert.strictEqual(minchaGedola!.toString(), '2020-06-05T13:29:56.328-06:00[America/Denver]'); +}); + +test('getMinchaKetanaGRAFixedLocalChatzosToSunset', () => { + const zman = makeComplexZmanimCalendar(); + const minchaKetana = zman.getMinchaKetanaGRAFixedLocalChatzosToSunset(); + assert.strictEqual(minchaKetana!.toString(), '2020-06-05T17:24:12.214-06:00[America/Denver]'); +}); + +test('getPlagHaminchaGRAFixedLocalChatzosToSunset', () => { + const zman = makeComplexZmanimCalendar(); + const plagHamincha = zman.getPlagHaminchaGRAFixedLocalChatzosToSunset(); + assert.strictEqual(plagHamincha!.toString(), '2020-06-05T18:58:35.031-06:00[America/Denver]'); +}); + +test('getTzais50', () => { + const zman = makeComplexZmanimCalendar(); + const tzais = zman.getTzais50(); + assert.strictEqual(tzais!.toString(), '2020-06-05T21:22:57.848-06:00[America/Denver]'); +}); + +test('getSamuchLeMinchaKetanaGRA', () => { + const zman = makeComplexZmanimCalendar(); + const samuchLeMinchaKetana = zman.getSamuchLeMinchaKetanaGRA(); + assert.strictEqual(samuchLeMinchaKetana!.toString(), '2020-06-05T16:45:51.011-06:00[America/Denver]'); +}); + +test('getSamuchLeMinchaKetana16Point1Degrees', () => { + const zman = makeComplexZmanimCalendar(); + const samuchLeMinchaKetana = zman.getSamuchLeMinchaKetana16Point1Degrees(); + assert.strictEqual(samuchLeMinchaKetana!.toString(), '2020-06-05T17:33:58.645-06:00[America/Denver]'); +}); + +test('getSamuchLeMinchaKetana72Minutes', () => { + const zman = makeComplexZmanimCalendar(); + const samuchLeMinchaKetana = zman.getSamuchLeMinchaKetana72Minutes(); + assert.strictEqual(samuchLeMinchaKetana!.toString(), '2020-06-05T17:21:51.011-06:00[America/Denver]'); +}); diff --git a/tests/Utils.test.ts b/tests/Utils.test.ts index 7c01d6e..4223011 100644 --- a/tests/Utils.test.ts +++ b/tests/Utils.test.ts @@ -2,12 +2,14 @@ import { describe, it } from 'mocha'; import { assert } from 'chai'; -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import { MathUtils, StringUtils, TimeZone, Utils, padZeros } from '../src/polyfills/Utils'; -const janDateTime = DateTime.fromMillis(1483228800000, { zone: 'UTC' }); -const julyDateTime = DateTime.fromMillis(1498867200000, { zone: 'UTC' }); +const janDateTime = Temporal.Instant.fromEpochMilliseconds(1483228800000) + .toZonedDateTimeISO('UTC').toPlainDate(); +const julyDateTime = Temporal.Instant.fromEpochMilliseconds(1498867200000) + .toZonedDateTimeISO('UTC').toPlainDate(); describe('Test Utils', function () { it('Tests Utils.getAllMethodNames()', function () { @@ -79,19 +81,20 @@ describe('Test TimeZone', function () { }); it('Gets the raw offset for Australia/Eucla on 2019/01/01 00:00:00Z', function () { - const result = TimeZone.getOffset('Australia/Eucla', janDateTime.valueOf()); + const zdt = janDateTime.toZonedDateTime({ timeZone: 'Australia/Eucla' }); + const result = TimeZone.getOffset('Australia/Eucla', zdt.epochMilliseconds); const expected = 8.75 * 60 * 60 * 1000; assert.strictEqual(result, expected); }); it('Gets the raw offset for Australia/Eucla on 2019/07/01 00:00:00Z', function () { - const result = TimeZone.getOffset('Australia/Eucla', julyDateTime.valueOf()); + const zdt = julyDateTime.toZonedDateTime({ timeZone: 'Australia/Eucla' }); + const result = TimeZone.getOffset('Australia/Eucla', zdt.epochMilliseconds); const expected = 8.75 * 60 * 60 * 1000; assert.strictEqual(result, expected); }); }); -// TODO: TimeZone.getDisplayName() // TODO: Zman describe('Test MathUtils', function () { diff --git a/tests/ZmanimCalendar.test.ts b/tests/ZmanimCalendar.test.ts new file mode 100644 index 0000000..7eb407f --- /dev/null +++ b/tests/ZmanimCalendar.test.ts @@ -0,0 +1,181 @@ +/* eslint-disable max-len */ +import { Temporal } from 'temporal-polyfill'; +import { test } from 'mocha'; +import { assert } from 'chai'; +import { GeoLocation } from '../src/util/GeoLocation'; +import { ZmanimCalendar } from '../src/ZmanimCalendar'; + +// eslint-disable-next-line require-jsdoc +function makeZmanimCalendar(): ZmanimCalendar { + const latitude = 39.73915; + const longitude = -104.9847; + const elevtion = 1636; + const tzid = 'America/Denver'; + const gloc = new GeoLocation(null, latitude, longitude, elevtion, tzid); + const zman = new ZmanimCalendar(gloc); + zman.setUseElevation(true); + const plainDate = new Temporal.PlainDate(2020, 6, 5); // Friday June 5 2020 + zman.setDate(plainDate); + return zman; +} + +test('isUseElevation and setUseElevation', () => { + const zman = makeZmanimCalendar(); + assert.isTrue(zman.isUseElevation()); + zman.setUseElevation(false); + assert.isFalse(zman.isUseElevation()); +}); + +test('isUseAstronomicalChatzos and setUseAstronomicalChatzos', () => { + const zman = makeZmanimCalendar(); + assert.isTrue(zman.isUseAstronomicalChatzos()); + zman.setUseAstronomicalChatzos(false); + assert.isFalse(zman.isUseAstronomicalChatzos()); +}); + +test('isUseAstronomicalChatzosForOtherZmanim and setUseAstronomicalChatzosForOtherZmanim', () => { + const zman = makeZmanimCalendar(); + assert.isFalse(zman.isUseAstronomicalChatzosForOtherZmanim()); + zman.setUseAstronomicalChatzosForOtherZmanim(true); + assert.isTrue(zman.isUseAstronomicalChatzosForOtherZmanim()); +}); + +test('getCandleLightingOffset and setCandleLightingOffset', () => { + const zman = makeZmanimCalendar(); + assert.strictEqual(zman.getCandleLightingOffset(), 18); + zman.setCandleLightingOffset(20); + assert.strictEqual(zman.getCandleLightingOffset(), 20); +}); + +test('getChatzos', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getChatzos(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T12:58:30.268-06:00[America/Denver]'); +}); + +test('getChatzosAsHalfDay', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getChatzosAsHalfDay(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T12:58:43.797-06:00[America/Denver]'); +}); + +test('getSofZmanShmaGRA', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSofZmanShmaGRA(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T09:11:37.337-06:00[America/Denver]'); +}); + +test('getSofZmanShmaMGA', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSofZmanShmaMGA(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T08:35:37.337-06:00[America/Denver]'); +}); + +test('getCandleLighting', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getCandleLighting(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T20:07:01.588-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaGRA', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSofZmanTfilaGRA(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T10:27:19.616-06:00[America/Denver]'); +}); + +test('getSofZmanTfilaMGA', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSofZmanTfilaMGA(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T10:03:19.616-06:00[America/Denver]'); +}); + +test('getMinchaGedola', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getMinchaGedola(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T13:36:35.313-06:00[America/Denver]'); +}); + +test('getSamuchLeMinchaKetana', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSamuchLeMinchaKetana(zman.getSunrise(), zman.getSunset()); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T16:45:51.011-06:00[America/Denver]'); +}); + +test('getMinchaKetana', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getMinchaKetana(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T17:23:42.15-06:00[America/Denver]'); +}); + +test('getPlagHamincha', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getPlagHamincha(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2020-06-05T18:58:19.999-06:00[America/Denver]'); +}); + +test('getShaahZmanisGra', () => { + const zman = makeZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanisGra(); + assert.closeTo(shaahZmanis, 4542278.9, 0.1); +}); + +test('getShaahZmanisMGA', () => { + const zman = makeZmanimCalendar(); + const shaahZmanis = zman.getShaahZmanisMGA(); + assert.closeTo(shaahZmanis, 5262278.9, 0.1); +}); + +test('isAssurBemlacha', () => { + const zman = makeZmanimCalendar(); + const sunset = zman.getSunset()!; + const twoMinutesAfterSunset = sunset.add({ minutes: 2 }); + const tzais = zman.getTzais()!; + assert.isTrue(zman.isAssurBemlacha(twoMinutesAfterSunset, tzais, false)); +}); + +test('getShaahZmanisBasedZman', () => { + const zman = makeZmanimCalendar(); + const sunrise = zman.getSunrise(); + const sunset = zman.getSunset(); + const sofZmanShma = zman.getShaahZmanisBasedZman(sunrise, sunset, 3); + assert.strictEqual(sofZmanShma!.toString(), '2020-06-05T09:11:37.337-06:00[America/Denver]'); +}); + +test('getPercentOfShaahZmanisFromDegrees', () => { + const zman = makeZmanimCalendar(); + const percent = zman.getPercentOfShaahZmanisFromDegrees(16.1, true); + assert.closeTo(percent, 1.399, 0.001); +}); + +test('getHalfDayBasedZman', () => { + const zman = makeZmanimCalendar(); + zman.setUseAstronomicalChatzosForOtherZmanim(true); + const chatzos = zman.getChatzos(); + const sunset = zman.getSunset(); + const minchaGedola = zman.getHalfDayBasedZman(chatzos, sunset, 0.5); + assert.strictEqual(minchaGedola!.toString(), '2020-06-05T13:36:22.566-06:00[America/Denver]'); +}); + +test('getHalfDayBasedShaahZmanis', () => { + const zman = makeZmanimCalendar(); + const chatzos = zman.getChatzos(); + const sunset = zman.getSunset(); + const shaahZmanis = zman.getHalfDayBasedShaahZmanis(chatzos, sunset); + assert.closeTo(shaahZmanis, 4544596.66, 0.01); +}); + +test('getClassName', () => { + const zman = makeZmanimCalendar(); + assert.strictEqual(zman.getClassName(), 'com.kosherjava.zmanim.ZmanimCalendar'); +}); diff --git a/tests/complex.test.ts b/tests/complex.test.ts new file mode 100644 index 0000000..77555a8 --- /dev/null +++ b/tests/complex.test.ts @@ -0,0 +1,148 @@ +/* eslint-disable max-len */ +import { Temporal } from 'temporal-polyfill'; +import { test } from 'mocha'; +import { assert } from 'chai'; +import { GeoLocation } from '../src/util/GeoLocation'; +import { ComplexZmanimCalendar } from '../src/ComplexZmanimCalendar'; +import { JewishCalendar } from '../src/hebrewcalendar/JewishCalendar'; + +// eslint-disable-next-line require-jsdoc +function makeZmanimCalendar(): ComplexZmanimCalendar { + const latitude = 32.08088; + const longitude = 34.78057; + const tzid = 'Asia/Jerusalem'; + const gloc = new GeoLocation(null, latitude, longitude, 0, tzid); + const zman = new ComplexZmanimCalendar(gloc); + zman.setUseElevation(false); + const plainDate = new Temporal.PlainDate(2025, 3, 9); // Wednesday March 9 2025 + zman.setDate(plainDate); + return zman; +} + +test('getAlosBaalHatanya', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getAlosBaalHatanya(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T04:42:40.107+02:00[Asia/Jerusalem]'); +}); + +test('getSofZmanShmaBaalHatanya', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSofZmanShmaBaalHatanya(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T08:53:17.505+02:00[Asia/Jerusalem]'); +}); + +test('getSofZmanTfilaBaalHatanya', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSofZmanTfilaBaalHatanya(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T09:52:43.231+02:00[Asia/Jerusalem]'); +}); + +test('getSofZmanAchilasChametzBaalHatanya', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSofZmanAchilasChametzBaalHatanya(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T09:52:43.231+02:00[Asia/Jerusalem]'); +}); + +test('getSofZmanBiurChametzBaalHatanya', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSofZmanBiurChametzBaalHatanya(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T10:52:08.956+02:00[Asia/Jerusalem]'); +}); + +test('getMinchaGedolaBaalHatanya', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getMinchaGedolaBaalHatanya(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T12:21:17.545+02:00[Asia/Jerusalem]'); +}); + +test('getMinchaGedolaBaalHatanyaGreaterThan30', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getMinchaGedolaBaalHatanyaGreaterThan30(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T12:21:27.672+02:00[Asia/Jerusalem]'); +}); + +test('getMinchaKetanaBaalHatanya', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getMinchaKetanaBaalHatanya(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T15:19:34.722+02:00[Asia/Jerusalem]'); +}); + +test('getPlagHaminchaBaalHatanya', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getPlagHaminchaBaalHatanya(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T16:33:51.879+02:00[Asia/Jerusalem]'); +}); + +test('getTzaisBaalHatanya', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getTzaisBaalHatanya(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T18:09:02.216+02:00[Asia/Jerusalem]'); +}); + +test('getSofZmanBiurChametzMGA72Minutes', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSofZmanBiurChametzMGA72Minutes(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T10:40:44.331+02:00[Asia/Jerusalem]'); +}); + +test('getSofZmanShmaMGA18DegreesToFixedLocalChatzos', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSofZmanShmaMGA18DegreesToFixedLocalChatzos(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T08:09:09.925+02:00[Asia/Jerusalem]'); +}); + +test('getPlagHaminchaGRAFixedLocalChatzosToSunset', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getPlagHaminchaGRAFixedLocalChatzosToSunset(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T16:28:49.474+02:00[Asia/Jerusalem]'); +}); + +test('getTzais50', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getTzais50(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T18:34:36.003+02:00[Asia/Jerusalem]'); +}); + +test('getZmanMolad', () => { + const zman = makeZmanimCalendar(); + const plainDate = new Temporal.PlainDate(2025, 3, 29); // Saturday March 29 2025 + zman.setDate(plainDate); + const zdt = zman.getZmanMolad(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-29T03:25:06.837-02:00[Etc/GMT+2]'); +}); + +test('getTchilasZmanKidushLevana7Days-1', () => { + const zman = makeZmanimCalendar(); + const plainDate = new Temporal.PlainDate(2025, 3, 29); // Saturday March 29 2025 + zman.setDate(plainDate); + const zdt = zman.getTchilasZmanKidushLevana7Days(); + assert.isNull(zdt); +}); + +test.skip('getTchilasZmanKidushLevana7Days-2', () => { + const zman = makeZmanimCalendar(); + const plainDate = new Temporal.PlainDate(2025, 4, 4); // Friday April 4 2025 + zman.setDate(plainDate); + + const jewishCalendar = new JewishCalendar(plainDate); + assert.equal(jewishCalendar.getJewishDayOfMonth(), 6); + + const zdt = zman.getTchilasZmanKidushLevana7Days(); + assert.isNotNull(zdt); + assert.strictEqual(zdt!.toString(), '2025-03-09T18:09:02.216+02:00[Asia/Jerusalem]'); +}); diff --git a/tests/kosher-zmanim.test.ts b/tests/kosher-zmanim.test.ts index f6f268d..38d3364 100644 --- a/tests/kosher-zmanim.test.ts +++ b/tests/kosher-zmanim.test.ts @@ -1,7 +1,7 @@ import { describe, it } from 'mocha'; import { assert } from 'chai'; -import { DateTime } from 'luxon'; +import { Temporal } from 'temporal-polyfill'; import * as KosherZmanim from '../src/kosher-zmanim'; @@ -9,7 +9,7 @@ import { omit } from './utils'; describe('Test kosher-zmanim', function () { it('It returns the correct metadata for Basic Zmanim', function () { - const date = new Date(); + const date = Temporal.Now.plainDateISO(); const locationName: string = 'Lakewood'; const latitude: number = 40.0821; const longitude: number = -74.2097; @@ -27,7 +27,7 @@ describe('Test kosher-zmanim', function () { const expected = { algorithm: 'US National Oceanic and Atmospheric Administration Algorithm', - date: DateTime.fromJSDate(date).toFormat('yyyy-MM-dd'), + date: date.toString(), elevation: '10.0', latitude: latitude.toString(), location: locationName, @@ -36,13 +36,12 @@ describe('Test kosher-zmanim', function () { type: 'com.kosherjava.zmanim.ZmanimCalendar', }; - assert.deepStrictEqual(omit(zmanimJson.metadata, ['timeZoneName', 'timeZoneOffset']), expected); - assert.oneOf(zmanimJson.metadata.timeZoneName, ['Eastern Daylight Time', 'Eastern Standard Time']); + assert.deepStrictEqual(omit(zmanimJson.metadata, ['timeZoneOffset']), expected); assert.oneOf(zmanimJson.metadata.timeZoneOffset, ['-4.0', '-5.0']); }); it('It returns the correct metadata for Complex Zmanim', function () { - const date = new Date(); + const date = Temporal.Now.plainDateISO(); const latitude: number = 40.0821; const longitude: number = -74.2097; const timeZoneId: string = 'America/New_York'; @@ -59,7 +58,7 @@ describe('Test kosher-zmanim', function () { const expected = { algorithm: 'US National Oceanic and Atmospheric Administration Algorithm', - date: DateTime.fromJSDate(date).toFormat('yyyy-MM-dd'), + date: date.toString(), elevation: '10.0', latitude: latitude.toString(), location: null, @@ -68,8 +67,7 @@ describe('Test kosher-zmanim', function () { type: 'com.kosherjava.zmanim.ComplexZmanimCalendar', }; - assert.deepStrictEqual(omit(zmanimJson.metadata, ['timeZoneName', 'timeZoneOffset']), expected); - assert.oneOf(zmanimJson.metadata.timeZoneName, ['Eastern Daylight Time', 'Eastern Standard Time']); + assert.deepStrictEqual(omit(zmanimJson.metadata, ['timeZoneOffset']), expected); assert.oneOf(zmanimJson.metadata.timeZoneOffset, ['-4.0', '-5.0']); }); }); diff --git a/tests/zmanim.test.ts b/tests/zmanim.test.ts new file mode 100644 index 0000000..588b2f9 --- /dev/null +++ b/tests/zmanim.test.ts @@ -0,0 +1,110 @@ +/* eslint-disable max-len */ +import { Temporal } from 'temporal-polyfill'; +import { test } from 'mocha'; +import { assert } from 'chai'; +import { GeoLocation } from '../src/util/GeoLocation'; +import { ZmanimCalendar } from '../src/ZmanimCalendar'; + +// eslint-disable-next-line require-jsdoc +function makeZmanimCalendar(): ZmanimCalendar { + const latitude = 39.73915; + const longitude = -104.9847; + const elevtion = 1636; + const tzid = 'America/Denver'; + const gloc = new GeoLocation(null, latitude, longitude, elevtion, tzid); + const zman = new ZmanimCalendar(gloc); + zman.setUseElevation(true); + const plainDate = new Temporal.PlainDate(2020, 6, 5); // Friday June 5 2020 + zman.setDate(plainDate); + return zman; +} + +/* + * | Civil Date | Jun 5, 2020| + * | Jewish Date | 13 Sivan, 5780| + * | Day of Week | Fri| + * | Alos 16.1° | 3:48:37 AM| + * | Alos 72 Minutes | 4:12:30 AM| + * | Misheyakir 10.2° | 4:32:14 AM| + * | Sunrise (1636.0 Meters) | 5:24:30 AM| + * | Sunrise (Sea Level) | 5:32:26 AM| + * | Sof Zman Shma MGA 72 Minutes | 8:35:37 AM| + * | Sof Zman Shma GRA | 9:11:37 AM| + * | Sof Zman Tfila MGA 72 Minutes | 10:03:19 AM| + * | Sof Zman Tfila GRA | 10:27:19 AM| + * | Chatzos Astronomical | 12:58:30 PM| + * | Mincha Gedola GRA | 1:36:35 PM| + * | Plag Hamincha | 6:58:19 PM| + * | Candle Lighting 18 Minutes | 8:07:01 PM| + * | Sunset (Sea Level) | 8:25:01 PM| + * | Sunset (1636.0 Meters) | 8:32:57 PM| + * | Tzais Geonim 8.5° | 9:13:45 PM| + * | Tzais 72 Minutes | 9:44:57 PM| + * | Tzais 16.1° | 10:09:05 PM + */ + +test('getSunrise', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSunrise(); + assert.strictEqual(zdt!.toString(), '2020-06-05T05:24:30.501-06:00[America/Denver]'); +}); + +test('getSeaLevelSunrise', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSeaLevelSunrise(); + assert.strictEqual(zdt!.toString(), '2020-06-05T05:32:26.007-06:00[America/Denver]'); +}); + +test('getSunset', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSunset(); + assert.strictEqual(zdt!.toString(), '2020-06-05T20:32:57.848-06:00[America/Denver]'); +}); + +test('getSeaLevelSunset', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getSeaLevelSunset(); + assert.strictEqual(zdt!.toString(), '2020-06-05T20:25:01.588-06:00[America/Denver]'); +}); + +test('getSunriseOffsetByDegrees', () => { + const zman = makeZmanimCalendar(); + const zdt1 = zman.getSunriseOffsetByDegrees(90 + 16.1); + assert.strictEqual(zdt1!.toString(), '2020-06-05T03:48:37.581-06:00[America/Denver]'); + const zdt2 = zman.getSunriseOffsetByDegrees(90 + 11.5); + assert.strictEqual(zdt2!.toString(), '2020-06-05T04:23:08.923-06:00[America/Denver]'); + const zdt3 = zman.getSunriseOffsetByDegrees(90 + 10.2); + assert.strictEqual(zdt3!.toString(), '2020-06-05T04:32:14.456-06:00[America/Denver]'); +}); + +test('getSunsetOffsetByDegrees', () => { + const zman = makeZmanimCalendar(); + const zdt1 = zman.getSunsetOffsetByDegrees(90 + 7.083); + assert.strictEqual(zdt1!.toString(), '2020-06-05T21:04:21.276-06:00[America/Denver]'); + const zdt2 = zman.getSunsetOffsetByDegrees(90 + 8.5); + assert.strictEqual(zdt2!.toString(), '2020-06-05T21:13:45.311-06:00[America/Denver]'); +}); + +test('getAlosHashachar', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getAlosHashachar(); + assert.strictEqual(zdt!.toString(), '2020-06-05T03:48:37.581-06:00[America/Denver]'); +}); + +test('getAlos72', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getAlos72(); + assert.strictEqual(zdt!.toString(), '2020-06-05T04:12:30.501-06:00[America/Denver]'); +}); + +test('getTzais', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getTzais(); + assert.strictEqual(zdt!.toString(), '2020-06-05T21:13:45.311-06:00[America/Denver]'); +}); + +test('getTzais72', () => { + const zman = makeZmanimCalendar(); + const zdt = zman.getTzais72(); + assert.strictEqual(zdt!.toString(), '2020-06-05T21:44:57.848-06:00[America/Denver]'); +});