From 6bdfa63ff4b163ed24ca555416b2c9f0795ee079 Mon Sep 17 00:00:00 2001 From: Taly Date: Thu, 8 Feb 2024 22:36:55 +0300 Subject: [PATCH] Update typescript version and config --- generate/package-lock.json | 2694 ++++++++++++++++++++------------- generate/package.json | 2 +- generate/tsconfig.module.json | 3 +- source/js/astronomy.d.ts | 8 +- source/js/astronomy.js | 24 +- source/js/esm/astronomy.js | 728 +++++---- 6 files changed, 2125 insertions(+), 1334 deletions(-) diff --git a/generate/package-lock.json b/generate/package-lock.json index ac56eed9..b0c657d9 100644 --- a/generate/package-lock.json +++ b/generate/package-lock.json @@ -1,24 +1,41 @@ { "name": "astronomy-engine-dev", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { + "packages": { + "": { + "name": "astronomy-engine-dev", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "devDependencies": { + "browserify": "~17.0.0", + "docdash": "~1.2.0", + "esmify": "~2.1.1", + "google-closure-compiler": "~20210202.0.0", + "jsdoc": "^3.6.7", + "jsdoc-to-markdown": "~6.0.1", + "typescript": "^5.3.3" + } + }, + "node_modules/@babel/code-frame": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, - "requires": { + "dependencies": { "@babel/highlight": "^7.12.13" } }, - "@babel/core": { + "node_modules/@babel/core": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.12.13", "@babel/helper-module-transforms": "^7.12.13", @@ -35,93 +52,108 @@ "semver": "^5.4.1", "source-map": "^0.5.0" }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, "dependencies": { - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "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 - } + "safe-buffer": "~5.1.1" } }, - "@babel/generator": { + "node_modules/@babel/core/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/@babel/generator": { "version": "7.12.15", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.12.13", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, - "@babel/helper-environment-visitor": { + "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-hoist-variables": { + "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.22.5" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dev": true, "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-member-expression-to-functions": { + "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.12.13" } }, - "@babel/helper-module-imports": { + "node_modules/@babel/helper-module-imports": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.12.13" } }, - "@babel/helper-module-transforms": { + "node_modules/@babel/helper-module-transforms": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-imports": "^7.12.13", "@babel/helper-replace-supers": "^7.12.13", "@babel/helper-simple-access": "^7.12.13", @@ -133,147 +165,168 @@ "lodash": "^4.17.19" } }, - "@babel/helper-optimise-call-expression": { + "node_modules/@babel/helper-optimise-call-expression": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.12.13" } }, - "@babel/helper-plugin-utils": { + "node_modules/@babel/helper-plugin-utils": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", "dev": true }, - "@babel/helper-replace-supers": { + "node_modules/@babel/helper-replace-supers": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-member-expression-to-functions": "^7.12.13", "@babel/helper-optimise-call-expression": "^7.12.13", "@babel/traverse": "^7.12.13", "@babel/types": "^7.12.13" } }, - "@babel/helper-simple-access": { + "node_modules/@babel/helper-simple-access": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.12.13" } }, - "@babel/helper-split-export-declaration": { + "node_modules/@babel/helper-split-export-declaration": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.12.13" } }, - "@babel/helper-string-parser": { + "node_modules/@babel/helper-string-parser": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-identifier": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, - "@babel/helpers": { + "node_modules/@babel/helpers": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", "dev": true, - "requires": { + "dependencies": { "@babel/template": "^7.12.13", "@babel/traverse": "^7.12.13", "@babel/types": "^7.12.13" } }, - "@babel/highlight": { + "node_modules/@babel/highlight": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, - "@babel/parser": { + "node_modules/@babel/parser": { "version": "7.12.15", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", - "dev": true + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } }, - "@babel/plugin-syntax-async-generators": { + "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-dynamic-import": { + "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-object-rest-spread": { + "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-commonjs": { + "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.13.tgz", "integrity": "sha512-OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.12.13", "@babel/helper-plugin-utils": "^7.12.13", "@babel/helper-simple-access": "^7.12.13", "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/template": { + "node_modules/@babel/template": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.12.13", "@babel/parser": "^7.12.13", "@babel/types": "^7.12.13" } }, - "@babel/traverse": { + "node_modules/@babel/traverse": { "version": "7.23.2", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.22.13", "@babel/generator": "^7.23.0", "@babel/helper-environment-visitor": "^7.22.20", @@ -285,374 +338,435 @@ "debug": "^4.1.0", "globals": "^11.1.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, "dependencies": { - "@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - } - }, - "@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "requires": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true - }, - "@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - } - }, - "@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, - "@jridgewell/gen-mapping": { + "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@jridgewell/resolve-uri": { + "node_modules/@jridgewell/resolve-uri": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/set-array": { + "node_modules/@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/sourcemap-codec": { + "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, - "@jridgewell/trace-mapping": { + "node_modules/@jridgewell/trace-mapping": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "acorn": { + "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 + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-node": { + "node_modules/acorn-node": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, - "requires": { + "dependencies": { "acorn": "^7.0.0", "acorn-walk": "^7.0.0", "xtend": "^4.0.2" } }, - "acorn-walk": { + "node_modules/acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "ansi-escape-sequences": { + "node_modules/ansi-escape-sequences": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", "dev": true, - "requires": { + "dependencies": { "array-back": "^3.0.1" }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - } + "engines": { + "node": ">=8.0.0" } }, - "ansi-regex": { + "node_modules/ansi-escape-sequences/node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "argparse": { + "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, - "requires": { + "dependencies": { "sprintf-js": "~1.0.2" } }, - "array-back": { + "node_modules/array-back": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "array-filter": { + "node_modules/array-filter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", "dev": true }, - "asn1.js": { + "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==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "assert": { + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, - "requires": { + "dependencies": { "object-assign": "^4.1.1", "util": "0.10.3" - }, + } + }, + "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 + }, + "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=", + "dev": true, "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } + "inherits": "2.0.1" } }, - "available-typed-arrays": { + "node_modules/available-typed-arrays": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", "dev": true, - "requires": { + "dependencies": { "array-filter": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "babel-code-frame": { + "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, - "requires": { + "dependencies": { "chalk": "^1.1.3", "esutils": "^2.0.2", "js-tokens": "^3.0.2" - }, + } + }, + "node_modules/babel-code-frame/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "babel-messages": { + "node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "node_modules/babel-code-frame/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-dynamic-import-node": { + "node_modules/babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, - "requires": { + "dependencies": { "object.assign": "^4.1.0" } }, - "babel-plugin-import-to-require": { + "node_modules/babel-plugin-import-to-require": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz", "integrity": "sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ==", "dev": true, - "requires": { + "dependencies": { "babel-template": "^6.26.0" } }, - "babel-runtime": { + "node_modules/babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, - "requires": { + "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" } }, - "babel-template": { + "node_modules/babel-template": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", @@ -660,12 +774,12 @@ "lodash": "^4.17.4" } }, - "babel-traverse": { + "node_modules/babel-traverse": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, - "requires": { + "dependencies": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -675,127 +789,148 @@ "globals": "^9.18.0", "invariant": "^2.2.2", "lodash": "^4.17.4" - }, + } + }, + "node_modules/babel-traverse/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, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "babel-types": { + "node_modules/babel-traverse/node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-traverse/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", "lodash": "^4.17.4", "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } } }, - "babylon": { + "node_modules/babel-types/node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "dev": true, + "bin": { + "babylon": "bin/babylon.js" + } }, - "balanced-match": { + "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 }, - "base64-js": { + "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "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" + } + ] }, - "bluebird": { + "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, - "bn.js": { + "node_modules/bn.js": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", "dev": true }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "brorand": { + "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "browser-pack": { + "node_modules/browser-pack": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "combine-source-map": "~0.8.0", "defined": "^1.0.0", + "JSONStream": "^1.0.3", "safe-buffer": "^5.1.1", "through2": "^2.0.0", "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" } }, - "browser-resolve": { + "node_modules/browser-resolve": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", "dev": true, - "requires": { + "dependencies": { "resolve": "^1.17.0" } }, - "browserify": { + "node_modules/browserify": { "version": "17.0.0", "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "assert": "^1.4.0", "browser-pack": "^6.0.1", "browser-resolve": "^2.0.0", @@ -817,6 +952,7 @@ "https-browserify": "^1.0.0", "inherits": "~2.0.1", "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", "labeled-stream-splicer": "^2.0.0", "mkdirp-classic": "^0.5.2", "module-deps": "^6.2.3", @@ -843,14 +979,20 @@ "util": "~0.12.0", "vm-browserify": "^1.0.0", "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" } }, - "browserify-aes": { + "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, - "requires": { + "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", "create-hash": "^1.1.0", @@ -859,45 +1001,45 @@ "safe-buffer": "^5.0.1" } }, - "browserify-cipher": { + "node_modules/browserify-cipher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "requires": { + "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" } }, - "browserify-des": { + "node_modules/browserify-des": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "browserify-rsa": { + "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==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, - "browserify-sign": { + "node_modules/browserify-sign": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^5.2.1", "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", @@ -908,354 +1050,401 @@ "readable-stream": "^3.6.2", "safe-buffer": "^5.2.1" }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/browserify-sign/node_modules/bn.js": { + "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 + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "dependencies": { - "bn.js": { - "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 - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "browserify-zlib": { + "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, - "requires": { + "dependencies": { "pako": "~1.0.5" } }, - "buffer": { + "node_modules/buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "dev": true, - "requires": { + "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" } }, - "buffer-from": { + "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 }, - "buffer-xor": { + "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 }, - "builtin-status-codes": { + "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 }, - "cache-point": { + "node_modules/cache-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", "dev": true, - "requires": { + "dependencies": { "array-back": "^4.0.1", "fs-then-native": "^2.0.0", "mkdirp2": "^1.0.4" + }, + "engines": { + "node": ">=8" } }, - "cached-path-relative": { + "node_modules/cached-path-relative": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", "dev": true }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "catharsis": { + "node_modules/catharsis": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", "dev": true, - "requires": { + "dependencies": { "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" } }, - "chalk": { + "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, - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "cipher-base": { + "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==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, - "clone": { + "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8" + } }, - "clone-buffer": { + "node_modules/clone-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.10" + } }, - "clone-stats": { + "node_modules/clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", "dev": true }, - "cloneable-readable": { + "node_modules/cloneable-readable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", "readable-stream": "^2.3.5" } }, - "collect-all": { + "node_modules/collect-all": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", "dev": true, - "requires": { + "dependencies": { "stream-connect": "^1.0.2", "stream-via": "^1.0.4" + }, + "engines": { + "node": ">=0.10.0" } }, - "color-convert": { + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "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 }, - "combine-source-map": { + "node_modules/combine-source-map": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", "dev": true, - "requires": { + "dependencies": { "convert-source-map": "~1.1.0", "inline-source-map": "~0.6.0", "lodash.memoize": "~3.0.3", "source-map": "~0.5.3" } }, - "command-line-args": { + "node_modules/command-line-args": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz", "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==", "dev": true, - "requires": { + "dependencies": { "array-back": "^3.0.1", "find-replace": "^3.0.0", "lodash.camelcase": "^4.3.0", "typical": "^4.0.0" }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true - } + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-args/node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/command-line-args/node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "engines": { + "node": ">=8" } }, - "command-line-tool": { + "node_modules/command-line-tool": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", "dev": true, - "requires": { + "dependencies": { "ansi-escape-sequences": "^4.0.0", "array-back": "^2.0.0", "command-line-args": "^5.0.0", "command-line-usage": "^4.1.0", "typical": "^2.6.1" }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-tool/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" } }, - "command-line-usage": { + "node_modules/command-line-usage": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", "dev": true, - "requires": { + "dependencies": { "ansi-escape-sequences": "^4.0.0", "array-back": "^2.0.0", "table-layout": "^0.4.2", "typical": "^2.6.1" }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" } }, - "common-sequence": { + "node_modules/common-sequence": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.0.tgz", "integrity": "sha512-f0QqPLpRTgMQn/pQIynf+SdE73Lw5Q1jn4hjirHLgH/NJ71TiHjXusV16BmOyuK5rRQ1W2f++II+TFZbQOh4hA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "concat-map": { + "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 }, - "concat-stream": { + "node_modules/concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, - "requires": { + "engines": [ + "node >= 0.8" + ], + "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" } }, - "config-master": { + "node_modules/config-master": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", "integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=", "dev": true, - "requires": { - "walk-back": "^2.0.1" - }, "dependencies": { - "walk-back": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", - "integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=", - "dev": true - } + "walk-back": "^2.0.1" + } + }, + "node_modules/config-master/node_modules/walk-back": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "console-browserify": { + "node_modules/console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "constants-browserify": { + "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 }, - "convert-source-map": { + "node_modules/convert-source-map": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", "dev": true }, - "core-js": { + "node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true }, - "core-util-is": { + "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 }, - "create-ecdh": { + "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, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "create-hash": { + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "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, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", "md5.js": "^1.3.4", @@ -1263,12 +1452,12 @@ "sha.js": "^2.4.0" } }, - "create-hmac": { + "node_modules/create-hmac": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", "inherits": "^2.0.1", @@ -1277,12 +1466,12 @@ "sha.js": "^2.4.8" } }, - "crypto-browserify": { + "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==", "dev": true, - "requires": { + "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", "create-ecdh": "^4.0.0", @@ -1294,102 +1483,126 @@ "public-encrypt": "^4.0.0", "randombytes": "^2.0.0", "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" } }, - "dash-ast": { + "node_modules/dash-ast": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, - "debug": { + "node_modules/debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, - "requires": { + "dependencies": { "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "deep-extend": { + "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4.0.0" + } }, - "define-properties": { + "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, - "requires": { + "dependencies": { "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" } }, - "defined": { + "node_modules/defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "dev": true }, - "deps-sort": { + "node_modules/deps-sort": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", "dev": true, - "requires": { + "dependencies": { "JSONStream": "^1.0.3", "shasum-object": "^1.0.0", "subarg": "^1.0.0", "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" } }, - "des.js": { + "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==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, - "detective": { + "node_modules/detective": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", "dev": true, - "requires": { + "dependencies": { "acorn-node": "^1.6.1", "defined": "^1.0.0", "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" } }, - "diffie-hellman": { + "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "dmd": { + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/dmd": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/dmd/-/dmd-5.0.2.tgz", "integrity": "sha512-npXsE2+/onRPk/LCrUmx7PcUSqcSVnbrDDMi2nBSawNZ8QXlHE/8xaEZ6pNqPD1lQZv8LGr1xEIpyxP336xyfw==", "dev": true, - "requires": { + "dependencies": { "array-back": "^4.0.1", "cache-point": "^2.0.0", "common-sequence": "^2.0.0", @@ -1403,48 +1616,62 @@ "test-value": "^3.0.0", "walk-back": "^4.0.0" }, - "dependencies": { - "marked": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.9.tgz", - "integrity": "sha512-H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw==", - "dev": true - }, - "reduce-flatten": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.0.tgz", - "integrity": "sha512-eczl8wAYBxJ6Egl6I1ECIF+8z6sHu+KE7BzaEDZTpPXKXfy9SUDQlVYwkRcNTjJLC3Iakxbhss50KuT/R6SYfg==", - "dev": true - } + "engines": { + "node": ">=10" } }, - "docdash": { + "node_modules/dmd/node_modules/marked": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.9.tgz", + "integrity": "sha512-H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 8.16.2" + } + }, + "node_modules/dmd/node_modules/reduce-flatten": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.0.tgz", + "integrity": "sha512-eczl8wAYBxJ6Egl6I1ECIF+8z6sHu+KE7BzaEDZTpPXKXfy9SUDQlVYwkRcNTjJLC3Iakxbhss50KuT/R6SYfg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/docdash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/docdash/-/docdash-1.2.0.tgz", "integrity": "sha512-IYZbgYthPTspgqYeciRJNPhSwL51yer7HAwDXhF5p+H7mTDbPvY3PCk/QDjNxdPCpWkaJVFC4t7iCNB/t9E5Kw==", "dev": true }, - "domain-browser": { + "node_modules/domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } }, - "duplexer2": { + "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, - "requires": { + "dependencies": { "readable-stream": "^2.0.2" } }, - "elliptic": { + "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==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", @@ -1452,28 +1679,26 @@ "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "entities": { + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/entities": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", "dev": true }, - "es-abstract": { + "node_modules/es-abstract": { "version": "1.18.0-next.2", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", @@ -1488,31 +1713,46 @@ "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.3", "string.prototype.trimstart": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "es-to-primitive": { + "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "requires": { + "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "escape-string-regexp": { + "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=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "esmify": { + "node_modules/esmify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/esmify/-/esmify-2.1.1.tgz", "integrity": "sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ==", "dev": true, - "requires": { + "dependencies": { "@babel/core": "^7.2.2", "@babel/plugin-syntax-async-generators": "^7.2.0", "@babel/plugin-syntax-dynamic-import": "^7.2.0", @@ -1525,447 +1765,605 @@ "through2": "^2.0.5" } }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "events": { + "node_modules/events": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.x" + } }, - "evp_bytestokey": { + "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, - "requires": { + "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, - "fast-safe-stringify": { + "node_modules/fast-safe-stringify": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", "dev": true }, - "file-set": { + "node_modules/file-set": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.1.tgz", "integrity": "sha512-tRzX4kGPmxS2HDK2q2L4qcPopTl/gcyahve2/O8l8hHNJgJ7m+r/ZncCJ1MmFWEMp1yHxJGIU9gAcsWu5jPMpg==", "dev": true, - "requires": { + "dependencies": { "array-back": "^4.0.1", "glob": "^7.1.6" + }, + "engines": { + "node": ">=10" } }, - "find-replace": { + "node_modules/find-replace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, - "requires": { + "dependencies": { "array-back": "^3.0.1" }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - } + "engines": { + "node": ">=4.0.0" } }, - "foreach": { + "node_modules/find-replace/node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", "dev": true }, - "fs-then-native": { + "node_modules/fs-then-native": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=", - "dev": true + "dev": true, + "engines": { + "node": ">=4.0.0" + } }, - "fs.realpath": { + "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 }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "gensync": { + "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "get-assigned-identifiers": { + "node_modules/get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", "dev": true }, - "get-intrinsic": { + "node_modules/get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "glob": { + "node_modules/glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, - "requires": { + "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" } }, - "globals": { + "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "google-closure-compiler": { + "node_modules/google-closure-compiler": { "version": "20210202.0.0", "resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20210202.0.0.tgz", "integrity": "sha512-tvwbNFSvVC4c+uNf5MdOAS1xn2S3FN8zb7VtSV7K/TAIttDTYX4t1U1g4YBCbWYrvz6ynrY5SleW1RtG7SIfYQ==", "dev": true, - "requires": { + "dependencies": { "chalk": "2.x", "google-closure-compiler-java": "^20210202.0.0", - "google-closure-compiler-linux": "^20210202.0.0", - "google-closure-compiler-osx": "^20210202.0.0", - "google-closure-compiler-windows": "^20210202.0.0", "minimist": "1.x", "vinyl": "2.x", "vinyl-sourcemaps-apply": "^0.2.0" + }, + "bin": { + "google-closure-compiler": "cli.js" + }, + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "google-closure-compiler-linux": "^20210202.0.0", + "google-closure-compiler-osx": "^20210202.0.0", + "google-closure-compiler-windows": "^20210202.0.0" } }, - "google-closure-compiler-java": { + "node_modules/google-closure-compiler-java": { "version": "20210202.0.0", "resolved": "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20210202.0.0.tgz", "integrity": "sha512-JSVrwv1k+wEjYgc58s9nXU+P5355l1mVTrmuB4B2cV8UaxFX3e5cRq4kwveBsB2fands2WJ+G74e10xCiEr82A==", "dev": true }, - "google-closure-compiler-linux": { + "node_modules/google-closure-compiler-linux": { "version": "20210202.0.0", "resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20210202.0.0.tgz", "integrity": "sha512-txE9tivnY77TgIxRNiT1nwqW+gjkLBcgy5qy0pE8htIrwuz+cgcTuvwH8mMlLKJJAifd32kboVyc1iymYrdN1w==", + "cpu": [ + "x64", + "x86" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "linux" + ] }, - "google-closure-compiler-osx": { + "node_modules/google-closure-compiler-osx": { "version": "20210202.0.0", "resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20210202.0.0.tgz", "integrity": "sha512-0OP8o4Nj6pR8hIxxQMPY8dO/2n6lWylHfmWv97IFdrxfsT7LKHzDeVt4I59p7nCfuPUoX8HcRNYFAmwKJwlIZQ==", + "cpu": [ + "x64", + "x86" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "darwin" + ] }, - "google-closure-compiler-windows": { + "node_modules/google-closure-compiler-windows": { "version": "20210202.0.0", "resolved": "https://registry.npmjs.org/google-closure-compiler-windows/-/google-closure-compiler-windows-20210202.0.0.tgz", "integrity": "sha512-HoRxdR/STw2cvB5HPS+xfdgNeFF3+2d7ImYyhMGdlv0+u5GxZwGgmLo9QajiI6Ga2ISGyTKUxYe3HWfYDYHrMg==", + "cpu": [ + "x64" + ], "dev": true, - "optional": true + "optional": true, + "os": [ + "win32" + ] }, - "graceful-fs": { + "node_modules/graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, - "handlebars": { + "node_modules/handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.0", "source-map": "^0.6.1", - "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" }, - "dependencies": { - "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 - } + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/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" } }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-ansi": { + "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "has-flag": { + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "hash-base": { + "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==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" }, + "engines": { + "node": ">=4" + } + }, + "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": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "hash.js": { + "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, - "requires": { + "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, - "hmac-drbg": { + "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=", "dev": true, - "requires": { + "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, - "htmlescape": { + "node_modules/htmlescape": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10" + } }, - "https-browserify": { + "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 }, - "ieee754": { + "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "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" + } + ] }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "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 }, - "inline-source-map": { + "node_modules/inline-source-map": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", "dev": true, - "requires": { + "dependencies": { "source-map": "~0.5.3" } }, - "insert-module-globals": { + "node_modules/insert-module-globals": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "acorn-node": "^1.5.2", "combine-source-map": "^0.8.0", "concat-stream": "^1.6.1", "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", "path-is-absolute": "^1.0.1", "process": "~0.11.0", "through2": "^2.0.0", "undeclared-identifiers": "^1.1.2", "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" } }, - "invariant": { + "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, - "requires": { + "dependencies": { "loose-envify": "^1.0.0" } }, - "is-arguments": { + "node_modules/is-arguments": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-buffer": { + "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-callable": { + "node_modules/is-callable": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-core-module": { + "node_modules/is-core-module": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", - "requires": { + "dependencies": { "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { + "node_modules/is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-generator-function": { + "node_modules/is-generator-function": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz", "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-negative-zero": { + "node_modules/is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-regex": { + "node_modules/is-regex": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-symbol": { + "node_modules/is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typed-array": { + "node_modules/is-typed-array": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.4.tgz", "integrity": "sha512-ILaRgn4zaSrVNXNGtON6iFNotXW3hAPF3+0fB1usg2jFlWqo5fEDdmJkz0zBfoi7Dgskr8Khi2xZ8cXqZEfXNA==", "dev": true, - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.2", "call-bind": "^1.0.0", "es-abstract": "^1.18.0-next.1", "foreach": "^2.0.5", "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "isarray": { + "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "js2xmlparser": { + "node_modules/js2xmlparser": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", "dev": true, - "requires": { + "dependencies": { "xmlcreate": "^2.0.3" } }, - "jsdoc": { + "node_modules/jsdoc": { "version": "3.6.7", "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.7.tgz", "integrity": "sha512-sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==", "dev": true, - "requires": { + "dependencies": { "@babel/parser": "^7.9.4", "bluebird": "^3.7.2", "catharsis": "^0.9.0", @@ -1981,21 +2379,19 @@ "taffydb": "2.6.2", "underscore": "~1.13.1" }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=8.15.0" } }, - "jsdoc-api": { + "node_modules/jsdoc-api": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-6.0.0.tgz", "integrity": "sha512-zvfB63nAc9e+Rv2kKmJfE6tmo4x8KFho5vKr6VfYTlCCgqtrfPv0McCdqT4betUT9rWtw0zGkNUVkVqeQipY6Q==", "dev": true, - "requires": { + "dependencies": { "array-back": "^4.0.1", "cache-point": "^2.0.0", "collect-all": "^1.0.3", @@ -2005,28 +2401,34 @@ "object-to-spawn-args": "^2.0.0", "temp-path": "^1.0.0", "walk-back": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "jsdoc-parse": { + "node_modules/jsdoc-parse": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-5.0.0.tgz", "integrity": "sha512-Khw8c3glrTeA3/PfUJUBvhrMhWpSClORBUvL4pvq2wFcqvUVmA96wxnMkCno2GfZY4pnd8BStK5WGKGyn4Vckg==", "dev": true, - "requires": { + "dependencies": { "array-back": "^4.0.1", "lodash.omit": "^4.5.0", "lodash.pick": "^4.4.0", "reduce-extract": "^1.0.0", "sort-array": "^4.1.1", "test-value": "^3.0.0" + }, + "engines": { + "node": ">=10" } }, - "jsdoc-to-markdown": { + "node_modules/jsdoc-to-markdown": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-6.0.1.tgz", "integrity": "sha512-hUI2PAR5n/KlmQU3mAWO9i3D7jVbhyvUHfQ6oYVBt+wnnsyxpsAuhCODY1ryLOb2U9OPJd4GIK9mL2hqy7fHDg==", "dev": true, - "requires": { + "dependencies": { "array-back": "^4.0.1", "command-line-tool": "^0.8.0", "config-master": "^3.1.0", @@ -2034,211 +2436,281 @@ "jsdoc-api": "^6.0.0", "jsdoc-parse": "^5.0.0", "walk-back": "^4.0.0" + }, + "bin": { + "jsdoc2md": "bin/cli.js" + }, + "engines": { + "node": ">=10" } }, - "jsesc": { + "node_modules/jsdoc/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "json5": { + "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, - "jsonparse": { + "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } }, - "klaw": { + "node_modules/klaw": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.1.9" } }, - "labeled-stream-splicer": { + "node_modules/labeled-stream-splicer": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "stream-splicer": "^2.0.0" } }, - "linkify-it": { + "node_modules/linkify-it": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", "dev": true, - "requires": { + "dependencies": { "uc.micro": "^1.0.1" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.camelcase": { + "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, - "lodash.memoize": { + "node_modules/lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", "dev": true }, - "lodash.omit": { + "node_modules/lodash.omit": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", "dev": true }, - "lodash.padend": { + "node_modules/lodash.padend": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", "dev": true }, - "lodash.pick": { + "node_modules/lodash.pick": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", "dev": true }, - "loose-envify": { + "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, - "requires": { + "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "markdown-it": { + "node_modules/markdown-it": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", "dev": true, - "requires": { + "dependencies": { "argparse": "^1.0.7", "entities": "~2.0.0", "linkify-it": "^2.0.0", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" } }, - "markdown-it-anchor": { + "node_modules/markdown-it-anchor": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", - "dev": true + "dev": true, + "peerDependencies": { + "markdown-it": "*" + } }, - "marked": { + "node_modules/marked": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", - "dev": true + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 10" + } }, - "md5.js": { + "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "mdurl": { + "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", "dev": true }, - "miller-rabin": { + "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, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "minimalistic-assert": { + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "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 }, - "minimalistic-crypto-utils": { + "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 }, - "minimatch": { + "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, - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, - "mkdirp": { + "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } }, - "mkdirp-classic": { + "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, - "mkdirp2": { + "node_modules/mkdirp2": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.4.tgz", "integrity": "sha512-Q2PKB4ZR4UPtjLl76JfzlgSCUZhSV1AXQgAZa1qt5RiaALFjP/CDrGvFBrOz7Ck6McPcwMAxTsJvWOUjOU8XMw==", "dev": true }, - "module-deps": { + "node_modules/module-deps": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "browser-resolve": "^2.0.0", "cached-path-relative": "^1.0.2", "concat-stream": "~1.6.0", @@ -2246,6 +2718,7 @@ "detective": "^5.2.0", "duplexer2": "^0.1.2", "inherits": "^2.0.1", + "JSONStream": "^1.0.3", "parents": "^1.0.0", "readable-stream": "^2.0.2", "resolve": "^1.4.0", @@ -2253,98 +2726,122 @@ "subarg": "^1.0.0", "through2": "^2.0.0", "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" } }, - "ms": { + "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 }, - "neo-async": { + "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 }, - "object-assign": { + "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=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "object-get": { + "node_modules/object-get": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", "dev": true }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "object-to-spawn-args": { + "node_modules/object-to-spawn-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.0.tgz", "integrity": "sha512-ZMT4owlXg3JGegecLlAgAA/6BsdKHn63R3ayXcAa3zFkF7oUBHcSb0oxszeutYe0FO2c1lT5pwCuidLkC4Gx3g==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.0.0" + } }, - "object.assign": { + "node_modules/object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, - "requires": { + "dependencies": { "wrappy": "1" } }, - "os-browserify": { + "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 }, - "pako": { + "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, - "parents": { + "node_modules/parents": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", "dev": true, - "requires": { + "dependencies": { "path-platform": "~0.11.15" } }, - "parse-asn1": { + "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==", "dev": true, - "requires": { + "dependencies": { "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", "evp_bytestokey": "^1.0.0", @@ -2352,128 +2849,145 @@ "safe-buffer": "^5.1.1" } }, - "path-browserify": { + "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, - "path-is-absolute": { + "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=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "path-platform": { + "node_modules/path-platform": { "version": "0.11.15", "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "pbkdf2": { + "node_modules/pbkdf2": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "dev": true, - "requires": { + "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", "ripemd160": "^2.0.1", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" } }, - "process": { + "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, - "process-nextick-args": { + "node_modules/process-nextick-args": { "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 }, - "public-encrypt": { + "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, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "punycode": { + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, - "querystring": { + "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "querystring-es3": { + "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "randombytes": { + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "^5.1.0" } }, - "randomfill": { + "node_modules/randomfill": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, - "read-only-stream": { + "node_modules/read-only-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", "dev": true, - "requires": { + "dependencies": { "readable-stream": "^2.0.2" } }, - "readable-stream": { + "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, - "requires": { + "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", @@ -2481,567 +2995,693 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - }, + } + }, + "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 + }, + "node_modules/readable-stream/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, "dependencies": { - "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 - }, - "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, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "safe-buffer": "~5.1.0" } }, - "reduce-extract": { + "node_modules/reduce-extract": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", "integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=", "dev": true, - "requires": { + "dependencies": { "test-value": "^1.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-extract/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", - "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", - "dev": true, - "requires": { - "array-back": "^1.0.2", - "typical": "^2.4.2" - } - } + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/reduce-extract/node_modules/test-value": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", + "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", + "dev": true, + "dependencies": { + "array-back": "^1.0.2", + "typical": "^2.4.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "reduce-flatten": { + "node_modules/reduce-flatten": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "reduce-unique": { + "node_modules/reduce-unique": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "reduce-without": { + "node_modules/reduce-without": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", "integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=", "dev": true, - "requires": { + "dependencies": { "test-value": "^2.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-without/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "dev": true, - "requires": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - } - } + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/reduce-without/node_modules/test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", + "dev": true, + "dependencies": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "regenerator-runtime": { + "node_modules/regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, - "remove-trailing-separator": { + "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=", "dev": true }, - "replace-ext": { + "node_modules/replace-ext": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.10" + } }, - "requizzle": { + "node_modules/requizzle": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", "dev": true, - "requires": { + "dependencies": { "lodash": "^4.17.14" } }, - "resolve": { + "node_modules/resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { + "dependencies": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ripemd160": { + "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, - "safe-buffer": { + "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 + "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" + } + ] }, - "safer-buffer": { + "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 }, - "semver": { + "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "dev": true, + "bin": { + "semver": "bin/semver" + } }, - "sha.js": { + "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, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" } }, - "shasum-object": { + "node_modules/shasum-object": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", "dev": true, - "requires": { + "dependencies": { "fast-safe-stringify": "^2.0.7" } }, - "shell-quote": { + "node_modules/shell-quote": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", "dev": true }, - "simple-concat": { + "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true + "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" + } + ] }, - "sort-array": { + "node_modules/sort-array": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.3.tgz", "integrity": "sha512-6auiM0DNob/zF+7Ae/SM4BFL5D7DPK/HVcllhVu5V+FgoCPs0A6b6ZwJDuvJpXQgFpxqLZUOD2kdxqO4Z59dkg==", "dev": true, - "requires": { + "dependencies": { "array-back": "^5.0.0", "typical": "^6.0.1" }, - "dependencies": { - "array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", - "dev": true - }, - "typical": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", - "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", - "dev": true - } + "engines": { + "node": ">=10" + } + }, + "node_modules/sort-array/node_modules/array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/sort-array/node_modules/typical": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", + "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", + "dev": true, + "engines": { + "node": ">=10" } }, - "source-map": { + "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "sprintf-js": { + "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 }, - "stream-browserify": { + "node_modules/stream-browserify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, - "requires": { + "dependencies": { "inherits": "~2.0.4", "readable-stream": "^3.5.0" - }, + } + }, + "node_modules/stream-browserify/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": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "stream-combiner2": { + "node_modules/stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", "dev": true, - "requires": { + "dependencies": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" } }, - "stream-connect": { + "node_modules/stream-connect": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", "integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=", "dev": true, - "requires": { + "dependencies": { "array-back": "^1.0.2" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-connect/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - } + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" } }, - "stream-http": { + "node_modules/stream-http": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", "dev": true, - "requires": { + "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.4", "readable-stream": "^3.6.0", "xtend": "^4.0.2" - }, + } + }, + "node_modules/stream-http/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": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "stream-splicer": { + "node_modules/stream-splicer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.2" } }, - "stream-via": { + "node_modules/stream-via": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } }, - "string.prototype.trimend": { + "node_modules/string.prototype.trimend": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimstart": { + "node_modules/string.prototype.trimstart": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "strip-ansi": { + "node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "subarg": { + "node_modules/subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.1.0" } }, - "supports-color": { + "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "syntax-error": { + "node_modules/syntax-error": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", "dev": true, - "requires": { + "dependencies": { "acorn-node": "^1.2.0" } }, - "table-layout": { + "node_modules/table-layout": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", "dev": true, - "requires": { + "dependencies": { "array-back": "^2.0.0", "deep-extend": "~0.6.0", "lodash.padend": "^4.6.1", "typical": "^2.6.1", "wordwrapjs": "^3.0.0" }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" } }, - "taffydb": { + "node_modules/taffydb": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", "dev": true }, - "temp-path": { + "node_modules/temp-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", "integrity": "sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=", "dev": true }, - "test-value": { + "node_modules/test-value": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", "dev": true, - "requires": { + "dependencies": { "array-back": "^2.0.0", "typical": "^2.6.1" }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/test-value/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" } }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "through2": { + "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, - "requires": { + "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, - "timers-browserify": { + "node_modules/timers-browserify": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", "dev": true, - "requires": { + "dependencies": { "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" } }, - "to-fast-properties": { + "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "tty-browserify": { + "node_modules/tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, - "typedarray": { + "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "typescript": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", - "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", - "dev": true + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } }, - "typical": { + "node_modules/typical": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", "dev": true }, - "uc.micro": { + "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, - "uglify-js": { + "node_modules/uglify-js": { "version": "3.12.7", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.7.tgz", "integrity": "sha512-SIZhkoh+U/wjW+BHGhVwE9nt8tWJspncloBcFapkpGRwNPqcH8pzX36BXe3TPBjzHWPMUZotpCigak/udWNr1Q==", "dev": true, - "optional": true + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } }, - "umd": { + "node_modules/umd": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true + "dev": true, + "bin": { + "umd": "bin/cli.js" + } }, - "undeclared-identifiers": { + "node_modules/undeclared-identifiers": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", "dev": true, - "requires": { + "dependencies": { "acorn-node": "^1.3.0", "dash-ast": "^1.0.0", "get-assigned-identifiers": "^1.2.0", "simple-concat": "^1.0.0", "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" } }, - "underscore": { + "node_modules/underscore": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", "dev": true }, - "url": { + "node_modules/url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, - "requires": { + "dependencies": { "punycode": "1.3.2", "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } } }, - "util": { + "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 + }, + "node_modules/util": { "version": "0.12.3", "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", @@ -3050,53 +3690,59 @@ "which-typed-array": "^1.1.2" } }, - "util-deprecate": { + "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 }, - "vinyl": { + "node_modules/vinyl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, - "requires": { + "dependencies": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", "clone-stats": "^1.0.0", "cloneable-readable": "^1.0.0", "remove-trailing-separator": "^1.0.1", "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" } }, - "vinyl-sourcemaps-apply": { + "node_modules/vinyl-sourcemaps-apply": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", "dev": true, - "requires": { + "dependencies": { "source-map": "^0.5.1" } }, - "vm-browserify": { + "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 }, - "walk-back": { + "node_modules/walk-back": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-4.0.0.tgz", "integrity": "sha512-kudCA8PXVQfrqv2mFTG72vDBRi8BKWxGgFLwPpzHcpZnSwZk93WMwUDVcLHWNsnm+Y0AC4Vb6MUNRgaHfyV2DQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.0.0" + } }, - "which-typed-array": { + "node_modules/which-typed-array": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", "dev": true, - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.2", "call-bind": "^1.0.0", "es-abstract": "^1.18.0-next.1", @@ -3104,41 +3750,53 @@ "function-bind": "^1.1.1", "has-symbols": "^1.0.1", "is-typed-array": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "wordwrap": { + "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, - "wordwrapjs": { + "node_modules/wordwrapjs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", "dev": true, - "requires": { + "dependencies": { "reduce-flatten": "^1.0.1", "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "xmlcreate": { + "node_modules/xmlcreate": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz", "integrity": "sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==", "dev": true }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4" + } } } } diff --git a/generate/package.json b/generate/package.json index 2c5f4ed1..0bac0b35 100644 --- a/generate/package.json +++ b/generate/package.json @@ -24,7 +24,7 @@ "google-closure-compiler": "~20210202.0.0", "jsdoc": "^3.6.7", "jsdoc-to-markdown": "~6.0.1", - "typescript": "~4.1.3" + "typescript": "^5.3.3" }, "dependencies": { "resolve": "^1.20.0" diff --git a/generate/tsconfig.module.json b/generate/tsconfig.module.json index 1c9d4ab7..6f661653 100644 --- a/generate/tsconfig.module.json +++ b/generate/tsconfig.module.json @@ -1,7 +1,8 @@ { "compilerOptions": { "outDir": "../source/js/esm/", - "moduleResolution": "node", + "moduleResolution": "node16", + "module": "node16", "target": "es6", "strict": true, "lib": ["dom", "es6"] diff --git a/source/js/astronomy.d.ts b/source/js/astronomy.d.ts index d51d5e37..2d4eba03 100644 --- a/source/js/astronomy.d.ts +++ b/source/js/astronomy.d.ts @@ -26,7 +26,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -export declare type FlexibleDateTime = Date | number | AstroTime; +export type FlexibleDateTime = Date | number | AstroTime; /** * @brief The speed of light in AU/day. */ @@ -150,8 +150,8 @@ export declare enum Body { Uranus = "Uranus", Neptune = "Neptune", Pluto = "Pluto", - SSB = "SSB", - EMB = "EMB", + SSB = "SSB",// Solar System Barycenter + EMB = "EMB",// Earth/Moon Barycenter Star1 = "Star1", Star2 = "Star2", Star3 = "Star3", @@ -204,7 +204,7 @@ export declare function DefineStar(body: Body, ra: number, dec: number, distance */ export declare function PlanetOrbitalPeriod(body: Body): number; export declare function DeltaT_EspenakMeeus(ut: number): number; -export declare type DeltaTimeFunction = (ut: number) => number; +export type DeltaTimeFunction = (ut: number) => number; export declare function DeltaT_JplHorizons(ut: number): number; export declare function SetDeltaTFunction(func: DeltaTimeFunction): void; /** diff --git a/source/js/astronomy.js b/source/js/astronomy.js index ab660622..a8133ca4 100644 --- a/source/js/astronomy.js +++ b/source/js/astronomy.js @@ -279,21 +279,21 @@ var Body; Body["Star6"] = "Star6"; Body["Star7"] = "Star7"; Body["Star8"] = "Star8"; -})(Body = exports.Body || (exports.Body = {})); +})(Body || (exports.Body = Body = {})); const StarList = [ Body.Star1, Body.Star2, Body.Star3, Body.Star4, Body.Star5, Body.Star6, Body.Star7, Body.Star8 ]; ; const StarTable = [ - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, + { ra: 0, dec: 0, dist: 0 }, // Body.Star1 + { ra: 0, dec: 0, dist: 0 }, // Body.Star2 + { ra: 0, dec: 0, dist: 0 }, // Body.Star3 + { ra: 0, dec: 0, dist: 0 }, // Body.Star4 + { ra: 0, dec: 0, dist: 0 }, // Body.Star5 + { ra: 0, dec: 0, dist: 0 }, // Body.Star6 + { ra: 0, dec: 0, dist: 0 }, // Body.Star7 + { ra: 0, dec: 0, dist: 0 }, // Body.Star8 ]; function GetStar(body) { const index = StarList.indexOf(body); @@ -5806,7 +5806,7 @@ var ApsisKind; (function (ApsisKind) { ApsisKind[ApsisKind["Pericenter"] = 0] = "Pericenter"; ApsisKind[ApsisKind["Apocenter"] = 1] = "Apocenter"; -})(ApsisKind = exports.ApsisKind || (exports.ApsisKind = {})); +})(ApsisKind || (exports.ApsisKind = ApsisKind = {})); /** * @brief A closest or farthest point in a body's orbit around its primary. * @@ -7989,7 +7989,7 @@ var EclipseKind; EclipseKind["Partial"] = "partial"; EclipseKind["Annular"] = "annular"; EclipseKind["Total"] = "total"; -})(EclipseKind = exports.EclipseKind || (exports.EclipseKind = {})); +})(EclipseKind || (exports.EclipseKind = EclipseKind = {})); /** * @brief Returns information about a lunar eclipse. * @@ -8962,7 +8962,7 @@ var NodeEventKind; NodeEventKind[NodeEventKind["Invalid"] = 0] = "Invalid"; NodeEventKind[NodeEventKind["Ascending"] = 1] = "Ascending"; NodeEventKind[NodeEventKind["Descending"] = -1] = "Descending"; -})(NodeEventKind = exports.NodeEventKind || (exports.NodeEventKind = {})); +})(NodeEventKind || (exports.NodeEventKind = NodeEventKind = {})); /** * @brief Information about an ascending or descending node of a body. * diff --git a/source/js/esm/astronomy.js b/source/js/esm/astronomy.js index 6b73063b..a8133ca4 100644 --- a/source/js/esm/astronomy.js +++ b/source/js/esm/astronomy.js @@ -32,67 +32,71 @@ * @license MIT */ 'use strict'; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GeoEmbState = exports.GeoMoonState = exports.EclipticGeoMoon = exports.GeoMoon = exports.Ecliptic = exports.ObserverGravity = exports.VectorObserver = exports.ObserverState = exports.ObserverVector = exports.Equator = exports.SunPosition = exports.Observer = exports.Horizon = exports.EclipticCoordinates = exports.HorizontalCoordinates = exports.MakeRotation = exports.RotationMatrix = exports.EquatorialCoordinates = exports.Spherical = exports.StateVector = exports.Vector = exports.SiderealTime = exports.Libration = exports.LibrationInfo = exports.CalcMoonCount = exports.e_tilt = exports.MakeTime = exports.AstroTime = exports.SetDeltaTFunction = exports.DeltaT_JplHorizons = exports.DeltaT_EspenakMeeus = exports.PlanetOrbitalPeriod = exports.DefineStar = exports.Body = exports.AngleBetween = exports.MassProduct = exports.CALLISTO_RADIUS_KM = exports.GANYMEDE_RADIUS_KM = exports.EUROPA_RADIUS_KM = exports.IO_RADIUS_KM = exports.JUPITER_MEAN_RADIUS_KM = exports.JUPITER_POLAR_RADIUS_KM = exports.JUPITER_EQUATORIAL_RADIUS_KM = exports.RAD2HOUR = exports.RAD2DEG = exports.HOUR2RAD = exports.DEG2RAD = exports.AU_PER_LY = exports.KM_PER_AU = exports.C_AUDAY = void 0; +exports.VectorFromHorizon = exports.HorizonFromVector = exports.SphereFromVector = exports.EquatorFromVector = exports.VectorFromSphere = exports.Pivot = exports.IdentityMatrix = exports.CombineRotation = exports.InverseRotation = exports.NextPlanetApsis = exports.SearchPlanetApsis = exports.NextLunarApsis = exports.SearchLunarApsis = exports.Apsis = exports.ApsisKind = exports.SearchPeakMagnitude = exports.SearchMaxElongation = exports.Elongation = exports.ElongationEvent = exports.Seasons = exports.SeasonInfo = exports.HourAngle = exports.SearchHourAngle = exports.HourAngleEvent = exports.SearchAltitude = exports.SearchRiseSet = exports.Atmosphere = exports.AtmosphereInfo = exports.NextMoonQuarter = exports.SearchMoonQuarter = exports.MoonQuarter = exports.SearchMoonPhase = exports.MoonPhase = exports.SearchRelativeLongitude = exports.Illumination = exports.IlluminationInfo = exports.EclipticLongitude = exports.AngleFromSun = exports.PairLongitude = exports.SearchSunLongitude = exports.Search = exports.HelioState = exports.BaryState = exports.GeoVector = exports.BackdatePosition = exports.CorrectLightTravel = exports.HelioDistance = exports.HelioVector = exports.JupiterMoons = exports.JupiterMoonsInfo = void 0; +exports.GravitySimulator = exports.LagrangePointFast = exports.LagrangePoint = exports.RotationAxis = exports.AxisInfo = exports.NextMoonNode = exports.SearchMoonNode = exports.NodeEventInfo = exports.NodeEventKind = exports.NextTransit = exports.SearchTransit = exports.TransitInfo = exports.NextLocalSolarEclipse = exports.SearchLocalSolarEclipse = exports.LocalSolarEclipseInfo = exports.EclipseEvent = exports.NextGlobalSolarEclipse = exports.SearchGlobalSolarEclipse = exports.NextLunarEclipse = exports.GlobalSolarEclipseInfo = exports.SearchLunarEclipse = exports.LunarEclipseInfo = exports.EclipseKind = exports.Constellation = exports.ConstellationInfo = exports.Rotation_EQD_ECT = exports.Rotation_ECT_EQD = exports.Rotation_GAL_EQJ = exports.Rotation_EQJ_GAL = exports.Rotation_HOR_ECL = exports.Rotation_ECL_HOR = exports.Rotation_ECL_EQD = exports.Rotation_EQD_ECL = exports.Rotation_EQJ_HOR = exports.Rotation_HOR_EQJ = exports.Rotation_HOR_EQD = exports.Rotation_EQD_HOR = exports.Rotation_EQD_EQJ = exports.Rotation_ECT_EQJ = exports.Rotation_EQJ_ECT = exports.Rotation_EQJ_EQD = exports.Rotation_ECL_EQJ = exports.Rotation_EQJ_ECL = exports.RotateState = exports.RotateVector = exports.InverseRefraction = exports.Refraction = void 0; /** * @brief The speed of light in AU/day. */ -export const C_AUDAY = 173.1446326846693; +exports.C_AUDAY = 173.1446326846693; /** * @brief The number of kilometers per astronomical unit. */ -export const KM_PER_AU = 1.4959787069098932e+8; +exports.KM_PER_AU = 1.4959787069098932e+8; /** * @brief The number of astronomical units per light-year. */ -export const AU_PER_LY = 63241.07708807546; +exports.AU_PER_LY = 63241.07708807546; /** * @brief The factor to convert degrees to radians = pi/180. */ -export const DEG2RAD = 0.017453292519943296; +exports.DEG2RAD = 0.017453292519943296; /** * @brief The factor to convert sidereal hours to radians = pi/12. */ -export const HOUR2RAD = 0.2617993877991494365; +exports.HOUR2RAD = 0.2617993877991494365; /** * @brief The factor to convert radians to degrees = 180/pi. */ -export const RAD2DEG = 57.295779513082321; +exports.RAD2DEG = 57.295779513082321; /** * @brief The factor to convert radians to sidereal hours = 12/pi. */ -export const RAD2HOUR = 3.819718634205488; +exports.RAD2HOUR = 3.819718634205488; // Jupiter radius data are nominal values obtained from: // https://www.iau.org/static/resolutions/IAU2015_English.pdf // https://nssdc.gsfc.nasa.gov/planetary/factsheet/jupiterfact.html /** * @brief The equatorial radius of Jupiter, expressed in kilometers. */ -export const JUPITER_EQUATORIAL_RADIUS_KM = 71492.0; +exports.JUPITER_EQUATORIAL_RADIUS_KM = 71492.0; /** * @brief The polar radius of Jupiter, expressed in kilometers. */ -export const JUPITER_POLAR_RADIUS_KM = 66854.0; +exports.JUPITER_POLAR_RADIUS_KM = 66854.0; /** * @brief The volumetric mean radius of Jupiter, expressed in kilometers. */ -export const JUPITER_MEAN_RADIUS_KM = 69911.0; +exports.JUPITER_MEAN_RADIUS_KM = 69911.0; // The radii of Jupiter's four major moons are obtained from: // https://ssd.jpl.nasa.gov/?sat_phys_par /** * @brief The mean radius of Jupiter's moon Io, expressed in kilometers. */ -export const IO_RADIUS_KM = 1821.6; +exports.IO_RADIUS_KM = 1821.6; /** * @brief The mean radius of Jupiter's moon Europa, expressed in kilometers. */ -export const EUROPA_RADIUS_KM = 1560.8; +exports.EUROPA_RADIUS_KM = 1560.8; /** * @brief The mean radius of Jupiter's moon Ganymede, expressed in kilometers. */ -export const GANYMEDE_RADIUS_KM = 2631.2; +exports.GANYMEDE_RADIUS_KM = 2631.2; /** * @brief The mean radius of Jupiter's moon Callisto, expressed in kilometers. */ -export const CALLISTO_RADIUS_KM = 2410.3; +exports.CALLISTO_RADIUS_KM = 2410.3; const DAYS_PER_TROPICAL_YEAR = 365.24217; const J2000 = new Date('2000-01-01T12:00:00Z'); const PI2 = 2 * Math.PI; @@ -108,20 +112,20 @@ const SECONDS_PER_DAY = 24 * 3600; const MILLIS_PER_DAY = SECONDS_PER_DAY * 1000; const SOLAR_DAYS_PER_SIDEREAL_DAY = 0.9972695717592592; const SUN_RADIUS_KM = 695700.0; -const SUN_RADIUS_AU = SUN_RADIUS_KM / KM_PER_AU; +const SUN_RADIUS_AU = SUN_RADIUS_KM / exports.KM_PER_AU; const EARTH_FLATTENING = 0.996647180302104; const EARTH_FLATTENING_SQUARED = EARTH_FLATTENING * EARTH_FLATTENING; const EARTH_EQUATORIAL_RADIUS_KM = 6378.1366; -const EARTH_EQUATORIAL_RADIUS_AU = EARTH_EQUATORIAL_RADIUS_KM / KM_PER_AU; +const EARTH_EQUATORIAL_RADIUS_AU = EARTH_EQUATORIAL_RADIUS_KM / exports.KM_PER_AU; const EARTH_POLAR_RADIUS_KM = EARTH_EQUATORIAL_RADIUS_KM * EARTH_FLATTENING; const EARTH_MEAN_RADIUS_KM = 6371.0; /* mean radius of the Earth's geoid, without atmosphere */ const EARTH_ATMOSPHERE_KM = 88.0; /* effective atmosphere thickness for lunar eclipses */ const EARTH_ECLIPSE_RADIUS_KM = EARTH_MEAN_RADIUS_KM + EARTH_ATMOSPHERE_KM; const MOON_EQUATORIAL_RADIUS_KM = 1738.1; -const MOON_EQUATORIAL_RADIUS_AU = (MOON_EQUATORIAL_RADIUS_KM / KM_PER_AU); +const MOON_EQUATORIAL_RADIUS_AU = (MOON_EQUATORIAL_RADIUS_KM / exports.KM_PER_AU); const MOON_MEAN_RADIUS_KM = 1737.4; const MOON_POLAR_RADIUS_KM = 1736.0; -const MOON_POLAR_RADIUS_AU = (MOON_POLAR_RADIUS_KM / KM_PER_AU); +const MOON_POLAR_RADIUS_AU = (MOON_POLAR_RADIUS_KM / exports.KM_PER_AU); const REFRACTION_NEAR_HORIZON = 34 / 60; // degrees of refractive "lift" seen for objects near horizon const EARTH_MOON_MASS_RATIO = 81.30056; /* @@ -166,7 +170,7 @@ const MOON_GM = EARTH_GM / EARTH_MOON_MASS_RATIO; * @returns {number} * The mass product of the given body in au^3/day^2. */ -export function MassProduct(body) { +function MassProduct(body) { switch (body) { case Body.Sun: return SUN_GM; case Body.Mercury: return MERCURY_GM; @@ -184,6 +188,7 @@ export function MassProduct(body) { throw `Do not know mass product for body: ${body}`; } } +exports.MassProduct = MassProduct; function VerifyBoolean(b) { if (b !== true && b !== false) { console.trace(); @@ -218,7 +223,7 @@ function Frac(x) { * The angle between the two vectors expressed in degrees. * The value is in the range [0, 180]. */ -export function AngleBetween(a, b) { +function AngleBetween(a, b) { const aa = (a.x * a.x + a.y * a.y + a.z * a.z); if (Math.abs(aa) < 1.0e-8) throw `AngleBetween: first vector is too short.`; @@ -230,8 +235,9 @@ export function AngleBetween(a, b) { return 180; if (dot >= +1.0) return 0; - return RAD2DEG * Math.acos(dot); + return exports.RAD2DEG * Math.acos(dot); } +exports.AngleBetween = AngleBetween; /** * @brief String constants that represent the solar system bodies supported by Astronomy Engine. * @@ -249,7 +255,7 @@ export function AngleBetween(a, b) { * * @enum {string} */ -export var Body; +var Body; (function (Body) { Body["Sun"] = "Sun"; Body["Moon"] = "Moon"; @@ -273,21 +279,21 @@ export var Body; Body["Star6"] = "Star6"; Body["Star7"] = "Star7"; Body["Star8"] = "Star8"; -})(Body || (Body = {})); +})(Body || (exports.Body = Body = {})); const StarList = [ Body.Star1, Body.Star2, Body.Star3, Body.Star4, Body.Star5, Body.Star6, Body.Star7, Body.Star8 ]; ; const StarTable = [ - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, - { ra: 0, dec: 0, dist: 0 }, + { ra: 0, dec: 0, dist: 0 }, // Body.Star1 + { ra: 0, dec: 0, dist: 0 }, // Body.Star2 + { ra: 0, dec: 0, dist: 0 }, // Body.Star3 + { ra: 0, dec: 0, dist: 0 }, // Body.Star4 + { ra: 0, dec: 0, dist: 0 }, // Body.Star5 + { ra: 0, dec: 0, dist: 0 }, // Body.Star6 + { ra: 0, dec: 0, dist: 0 }, // Body.Star7 + { ra: 0, dec: 0, dist: 0 }, // Body.Star8 ]; function GetStar(body) { const index = StarList.indexOf(body); @@ -327,7 +333,7 @@ function UserDefinedStar(body) { * If you don't know the distance to the star, using a large value like 1000 will generally work well. * The minimum allowed distance is 1 light-year, which is required to provide certain internal optimizations. */ -export function DefineStar(body, ra, dec, distanceLightYears) { +function DefineStar(body, ra, dec, distanceLightYears) { const star = GetStar(body); if (!star) throw `Invalid star body: ${body}`; @@ -342,8 +348,9 @@ export function DefineStar(body, ra, dec, distanceLightYears) { throw `Invalid star distance: ${distanceLightYears}`; star.ra = ra; star.dec = dec; - star.dist = distanceLightYears * AU_PER_LY; + star.dist = distanceLightYears * exports.AU_PER_LY; } +exports.DefineStar = DefineStar; var PrecessDirection; (function (PrecessDirection) { PrecessDirection[PrecessDirection["From2000"] = 0] = "From2000"; @@ -370,11 +377,12 @@ const Planet = { * The approximate average time it takes for the planet to travel once around the Sun. * The value is expressed in days. */ -export function PlanetOrbitalPeriod(body) { +function PlanetOrbitalPeriod(body) { if (body in Planet) return Planet[body].OrbitalPeriod; throw `Unknown orbital period for: ${body}`; } +exports.PlanetOrbitalPeriod = PlanetOrbitalPeriod; const vsop = { Mercury: [ [ @@ -1012,7 +1020,7 @@ const vsop = { ] ] }; -export function DeltaT_EspenakMeeus(ut) { +function DeltaT_EspenakMeeus(ut) { var u, u2, u3, u4, u5, u6, u7; /* Fred Espenak writes about Delta-T generically here: @@ -1125,13 +1133,16 @@ export function DeltaT_EspenakMeeus(ut) { u = (y - 1820) / 100; return -20 + (32 * u * u); } -export function DeltaT_JplHorizons(ut) { +exports.DeltaT_EspenakMeeus = DeltaT_EspenakMeeus; +function DeltaT_JplHorizons(ut) { return DeltaT_EspenakMeeus(Math.min(ut, 17.0 * DAYS_PER_TROPICAL_YEAR)); } +exports.DeltaT_JplHorizons = DeltaT_JplHorizons; let DeltaT = DeltaT_EspenakMeeus; -export function SetDeltaTFunction(func) { +function SetDeltaTFunction(func) { DeltaT = func; } +exports.SetDeltaTFunction = SetDeltaTFunction; /** * @ignore * @@ -1171,7 +1182,7 @@ function TerrestrialTime(ut) { * using a best-fit piecewise polynomial model devised by * [Espenak and Meeus](https://eclipse.gsfc.nasa.gov/SEhelp/deltatpoly2004.html). */ -export class AstroTime { +class AstroTime { /** * @param {FlexibleDateTime} date * A JavaScript Date object, a numeric UTC value expressed in J2000 days, or another AstroTime object. @@ -1257,6 +1268,7 @@ export class AstroTime { return new AstroTime(this.ut + days); } } +exports.AstroTime = AstroTime; function InterpolateTime(time1, time2, fraction) { return new AstroTime(time1.ut + fraction * (time2.ut - time1.ut)); } @@ -1294,12 +1306,13 @@ function InterpolateTime(time1, time2, fraction) { * * @returns {AstroTime} */ -export function MakeTime(date) { +function MakeTime(date) { if (date instanceof AstroTime) { return date; } return new AstroTime(date); } +exports.MakeTime = MakeTime; function iau2000b(time) { function mod(x) { return (x % ASEC360) * ASEC2RAD; @@ -1347,7 +1360,7 @@ function mean_obliq(time) { return asec / 3600.0; } var cache_e_tilt; -export function e_tilt(time) { +function e_tilt(time) { if (!cache_e_tilt || Math.abs(cache_e_tilt.tt - time.tt) > 1.0e-6) { const nut = iau2000b(time); const mean_ob = mean_obliq(time); @@ -1356,15 +1369,16 @@ export function e_tilt(time) { tt: time.tt, dpsi: nut.dpsi, deps: nut.deps, - ee: nut.dpsi * Math.cos(mean_ob * DEG2RAD) / 15, + ee: nut.dpsi * Math.cos(mean_ob * exports.DEG2RAD) / 15, mobl: mean_ob, tobl: true_ob }; } return cache_e_tilt; } +exports.e_tilt = e_tilt; function obl_ecl2equ_vec(oblDegrees, pos) { - const obl = oblDegrees * DEG2RAD; + const obl = oblDegrees * exports.DEG2RAD; const cos_obl = Math.cos(obl); const sin_obl = Math.sin(obl); return [ @@ -1376,9 +1390,9 @@ function obl_ecl2equ_vec(oblDegrees, pos) { function ecl2equ_vec(time, pos) { return obl_ecl2equ_vec(mean_obliq(time), pos); } -export let CalcMoonCount = 0; +exports.CalcMoonCount = 0; function CalcMoon(time) { - ++CalcMoonCount; + ++exports.CalcMoonCount; const T = time.tt / 36525; function DeclareArray1(xmin, xmax) { const array = []; @@ -1648,7 +1662,7 @@ function CalcMoon(time) { * @property {number} diam_deg * The apparent angular diameter of the Moon, in degrees, as seen from the center of the Earth. */ -export class LibrationInfo { +class LibrationInfo { constructor(elat, elon, mlat, mlon, dist_km, diam_deg) { this.elat = elat; this.elon = elon; @@ -1658,6 +1672,7 @@ export class LibrationInfo { this.diam_deg = diam_deg; } } +exports.LibrationInfo = LibrationInfo; /** * @brief Calculates the Moon's libration angles at a given moment in time. * @@ -1681,7 +1696,7 @@ export class LibrationInfo { * * @returns {LibrationInfo} */ -export function Libration(date) { +function Libration(date) { const time = MakeTime(date); const t = time.tt / 36525.0; const t2 = t * t; @@ -1690,29 +1705,29 @@ export function Libration(date) { const moon = CalcMoon(time); const mlon = moon.geo_eclip_lon; const mlat = moon.geo_eclip_lat; - const dist_km = moon.distance_au * KM_PER_AU; + const dist_km = moon.distance_au * exports.KM_PER_AU; // Inclination angle - const I = DEG2RAD * 1.543; + const I = exports.DEG2RAD * 1.543; // Moon's argument of latitude in radians. - const f = DEG2RAD * NormalizeLongitude(93.2720950 + 483202.0175233 * t - 0.0036539 * t2 - t3 / 3526000 + t4 / 863310000); + const f = exports.DEG2RAD * NormalizeLongitude(93.2720950 + 483202.0175233 * t - 0.0036539 * t2 - t3 / 3526000 + t4 / 863310000); // Moon's ascending node's mean longitude in radians. - const omega = DEG2RAD * NormalizeLongitude(125.0445479 - 1934.1362891 * t + 0.0020754 * t2 + t3 / 467441 - t4 / 60616000); + const omega = exports.DEG2RAD * NormalizeLongitude(125.0445479 - 1934.1362891 * t + 0.0020754 * t2 + t3 / 467441 - t4 / 60616000); // Sun's mean anomaly. - const m = DEG2RAD * NormalizeLongitude(357.5291092 + 35999.0502909 * t - 0.0001536 * t2 + t3 / 24490000); + const m = exports.DEG2RAD * NormalizeLongitude(357.5291092 + 35999.0502909 * t - 0.0001536 * t2 + t3 / 24490000); // Moon's mean anomaly. - const mdash = DEG2RAD * NormalizeLongitude(134.9633964 + 477198.8675055 * t + 0.0087414 * t2 + t3 / 69699 - t4 / 14712000); + const mdash = exports.DEG2RAD * NormalizeLongitude(134.9633964 + 477198.8675055 * t + 0.0087414 * t2 + t3 / 69699 - t4 / 14712000); // Moon's mean elongation. - const d = DEG2RAD * NormalizeLongitude(297.8501921 + 445267.1114034 * t - 0.0018819 * t2 + t3 / 545868 - t4 / 113065000); + const d = exports.DEG2RAD * NormalizeLongitude(297.8501921 + 445267.1114034 * t - 0.0018819 * t2 + t3 / 545868 - t4 / 113065000); // Eccentricity of the Earth's orbit. const e = 1.0 - 0.002516 * t - 0.0000074 * t2; // Optical librations const w = mlon - omega; const a = Math.atan2(Math.sin(w) * Math.cos(mlat) * Math.cos(I) - Math.sin(mlat) * Math.sin(I), Math.cos(w) * Math.cos(mlat)); - const ldash = LongitudeOffset(RAD2DEG * (a - f)); + const ldash = LongitudeOffset(exports.RAD2DEG * (a - f)); const bdash = Math.asin(-Math.sin(w) * Math.cos(mlat) * Math.sin(I) - Math.sin(mlat) * Math.cos(I)); // Physical librations - const k1 = DEG2RAD * (119.75 + 131.849 * t); - const k2 = DEG2RAD * (72.56 + 20.186 * t); + const k1 = exports.DEG2RAD * (119.75 + 131.849 * t); + const k2 = exports.DEG2RAD * (72.56 + 20.186 * t); const rho = (-0.02752 * Math.cos(mdash) + -0.02245 * Math.sin(f) + +0.00684 * Math.cos(mdash - 2 * f) + @@ -1757,9 +1772,10 @@ export function Libration(date) { +0.00011 * Math.sin(2 * mdash - 2 * m - 2 * d)); const ldash2 = -tau + (rho * Math.cos(a) + sigma * Math.sin(a)) * Math.tan(bdash); const bdash2 = sigma * Math.cos(a) - rho * Math.sin(a); - const diam_deg = 2.0 * RAD2DEG * Math.atan(MOON_MEAN_RADIUS_KM / Math.sqrt(dist_km * dist_km - MOON_MEAN_RADIUS_KM * MOON_MEAN_RADIUS_KM)); - return new LibrationInfo(RAD2DEG * bdash + bdash2, ldash + ldash2, RAD2DEG * mlat, RAD2DEG * mlon, dist_km, diam_deg); + const diam_deg = 2.0 * exports.RAD2DEG * Math.atan(MOON_MEAN_RADIUS_KM / Math.sqrt(dist_km * dist_km - MOON_MEAN_RADIUS_KM * MOON_MEAN_RADIUS_KM)); + return new LibrationInfo(exports.RAD2DEG * bdash + bdash2, ldash + ldash2, exports.RAD2DEG * mlat, exports.RAD2DEG * mlon, dist_km, diam_deg); } +exports.Libration = Libration; function rotate(rot, vec) { return [ rot.rot[0][0] * vec[0] + rot.rot[1][0] * vec[1] + rot.rot[2][0] * vec[2], @@ -1887,15 +1903,16 @@ function sidereal_time(time) { * * @returns {number} */ -export function SiderealTime(date) { +function SiderealTime(date) { const time = MakeTime(date); return sidereal_time(time); } +exports.SiderealTime = SiderealTime; function inverse_terra(ovec, st) { // Convert from AU to kilometers - const x = ovec[0] * KM_PER_AU; - const y = ovec[1] * KM_PER_AU; - const z = ovec[2] * KM_PER_AU; + const x = ovec[0] * exports.KM_PER_AU; + const y = ovec[1] * exports.KM_PER_AU; + const z = ovec[2] * exports.KM_PER_AU; const p = Math.hypot(x, y); let lon_deg, lat_deg, height_km; if (p < 1.0e-6) { @@ -1909,7 +1926,7 @@ function inverse_terra(ovec, st) { else { const stlocl = Math.atan2(y, x); // Calculate exact longitude. - lon_deg = (RAD2DEG * stlocl) - (15.0 * st); + lon_deg = (exports.RAD2DEG * stlocl) - (15.0 * st); // Normalize longitude to the range (-180, +180]. while (lon_deg <= -180) lon_deg += 360; @@ -1941,7 +1958,7 @@ function inverse_terra(ovec, st) { lat -= W / D; } // We now have a solution for the latitude in radians. - lat_deg = RAD2DEG * lat; + lat_deg = exports.RAD2DEG * lat; // Solve for exact height in meters. // There are two formulas I can use. Use whichever has the less risky denominator. const adjust = EARTH_EQUATORIAL_RADIUS_KM / denom; @@ -1953,7 +1970,7 @@ function inverse_terra(ovec, st) { return new Observer(lat_deg, lon_deg, 1000 * height_km); } function terra(observer, st) { - const phi = observer.latitude * DEG2RAD; + const phi = observer.latitude * exports.DEG2RAD; const sinphi = Math.sin(phi); const cosphi = Math.cos(phi); const c = 1 / Math.hypot(cosphi, EARTH_FLATTENING * sinphi); @@ -1961,12 +1978,12 @@ function terra(observer, st) { const ht_km = observer.height / 1000; const ach = EARTH_EQUATORIAL_RADIUS_KM * c + ht_km; const ash = EARTH_EQUATORIAL_RADIUS_KM * s + ht_km; - const stlocl = (15 * st + observer.longitude) * DEG2RAD; + const stlocl = (15 * st + observer.longitude) * exports.DEG2RAD; const sinst = Math.sin(stlocl); const cosst = Math.cos(stlocl); return { - pos: [ach * cosphi * cosst / KM_PER_AU, ach * cosphi * sinst / KM_PER_AU, ash * sinphi / KM_PER_AU], - vel: [-ANGVEL * ach * cosphi * sinst * 86400 / KM_PER_AU, ANGVEL * ach * cosphi * cosst * 86400 / KM_PER_AU, 0] + pos: [ach * cosphi * cosst / exports.KM_PER_AU, ach * cosphi * sinst / exports.KM_PER_AU, ash * sinphi / exports.KM_PER_AU], + vel: [-ANGVEL * ach * cosphi * sinst * 86400 / exports.KM_PER_AU, ANGVEL * ach * cosphi * cosst * 86400 / exports.KM_PER_AU, 0] }; } function nutation(pos, time, dir) { @@ -1979,8 +1996,8 @@ function nutation_posvel(state, time, dir) { } function nutation_rot(time, dir) { const tilt = e_tilt(time); - const oblm = tilt.mobl * DEG2RAD; - const oblt = tilt.tobl * DEG2RAD; + const oblm = tilt.mobl * exports.DEG2RAD; + const oblt = tilt.tobl * exports.DEG2RAD; const psi = tilt.dpsi * ASEC2RAD; const cobm = Math.cos(oblm); const sobm = Math.sin(oblm); @@ -2047,7 +2064,7 @@ function geo_pos(time, observer) { * @property {number} z The z-coordinate expressed in astronomical units (AU). * @property {AstroTime} t The time at which the vector is valid. */ -export class Vector { +class Vector { constructor(x, y, z, t) { this.x = x; this.y = y; @@ -2062,6 +2079,7 @@ export class Vector { return Math.hypot(this.x, this.y, this.z); } } +exports.Vector = Vector; /** * @brief A combination of a position vector, a velocity vector, and a time. * @@ -2076,7 +2094,7 @@ export class Vector { * @property {number} vz The velocity z-coordinate expressed in AU/day. * @property {AstroTime} t The time at which the vector is valid. */ -export class StateVector { +class StateVector { constructor(x, y, z, vx, vy, vz, t) { this.x = x; this.y = y; @@ -2087,6 +2105,7 @@ export class StateVector { this.t = t; } } +exports.StateVector = StateVector; /** * @brief Holds spherical coordinates: latitude, longitude, distance. * @@ -2097,13 +2116,14 @@ export class StateVector { * @property {number} lon The longitude angle: 0..360 degrees. * @property {number} dist Distance in AU. */ -export class Spherical { +class Spherical { constructor(lat, lon, dist) { this.lat = VerifyNumber(lat); this.lon = VerifyNumber(lon); this.dist = VerifyNumber(dist); } } +exports.Spherical = Spherical; /** * @brief Holds right ascension, declination, and distance of a celestial object. * @@ -2123,7 +2143,7 @@ export class Spherical { * y = direction of the June solstice, * z = north. */ -export class EquatorialCoordinates { +class EquatorialCoordinates { constructor(ra, dec, dist, vec) { this.ra = VerifyNumber(ra); this.dec = VerifyNumber(dec); @@ -2131,6 +2151,7 @@ export class EquatorialCoordinates { this.vec = vec; } } +exports.EquatorialCoordinates = EquatorialCoordinates; function IsValidRotationArray(rot) { if (!(rot instanceof Array) || (rot.length !== 3)) return false; @@ -2150,11 +2171,12 @@ function IsValidRotationArray(rot) { * A normalized 3x3 rotation matrix. For example, the identity matrix is represented * as `[[1, 0, 0], [0, 1, 0], [0, 0, 1]]`. */ -export class RotationMatrix { +class RotationMatrix { constructor(rot) { this.rot = rot; } } +exports.RotationMatrix = RotationMatrix; /** * @brief Creates a rotation matrix that can be used to transform one coordinate system to another. * @@ -2168,11 +2190,12 @@ export class RotationMatrix { * * @returns {RotationMatrix} */ -export function MakeRotation(rot) { +function MakeRotation(rot) { if (!IsValidRotationArray(rot)) throw 'Argument must be a [3][3] array of numbers'; return new RotationMatrix(rot); } +exports.MakeRotation = MakeRotation; /** * @brief Represents the location of an object seen by an observer on the Earth. * @@ -2206,7 +2229,7 @@ export function MakeRotation(rot) { * If `altitude` was adjusted for atmospheric reaction, `dec` * is likewise adjusted. */ -export class HorizontalCoordinates { +class HorizontalCoordinates { constructor(azimuth, altitude, ra, dec) { this.azimuth = VerifyNumber(azimuth); this.altitude = VerifyNumber(altitude); @@ -2214,6 +2237,7 @@ export class HorizontalCoordinates { this.dec = VerifyNumber(dec); } } +exports.HorizontalCoordinates = HorizontalCoordinates; /** * @brief Ecliptic coordinates of a celestial body. * @@ -2247,13 +2271,14 @@ export class HorizontalCoordinates { * The angle is measured starting at 0 from the equinox and increases * up to 360 degrees. */ -export class EclipticCoordinates { +class EclipticCoordinates { constructor(vec, elat, elon) { this.vec = vec; this.elat = VerifyNumber(elat); this.elon = VerifyNumber(elon); } } +exports.EclipticCoordinates = EclipticCoordinates; function VectorFromArray(av, time) { return new Vector(av[0], av[1], av[2], time); } @@ -2266,14 +2291,14 @@ function vector2radec(pos, time) { throw 'Indeterminate sky coordinates'; return new EquatorialCoordinates(0, (vec.z < 0) ? -90 : +90, dist, vec); } - let ra = RAD2HOUR * Math.atan2(vec.y, vec.x); + let ra = exports.RAD2HOUR * Math.atan2(vec.y, vec.x); if (ra < 0) ra += 24; - const dec = RAD2DEG * Math.atan2(pos[2], Math.sqrt(xyproj)); + const dec = exports.RAD2DEG * Math.atan2(pos[2], Math.sqrt(xyproj)); return new EquatorialCoordinates(ra, dec, dist, vec); } function spin(angle, pos) { - const angr = angle * DEG2RAD; + const angr = angle * exports.DEG2RAD; const c = Math.cos(angr); const s = Math.sin(angr); return [c * pos[0] + s * pos[1], c * pos[1] - s * pos[0], pos[2]]; @@ -2318,20 +2343,20 @@ function spin(angle, pos) { * * @returns {HorizontalCoordinates} */ -export function Horizon(date, observer, ra, dec, refraction) { +function Horizon(date, observer, ra, dec, refraction) { // based on NOVAS equ2hor() let time = MakeTime(date); VerifyObserver(observer); VerifyNumber(ra); VerifyNumber(dec); - const sinlat = Math.sin(observer.latitude * DEG2RAD); - const coslat = Math.cos(observer.latitude * DEG2RAD); - const sinlon = Math.sin(observer.longitude * DEG2RAD); - const coslon = Math.cos(observer.longitude * DEG2RAD); - const sindc = Math.sin(dec * DEG2RAD); - const cosdc = Math.cos(dec * DEG2RAD); - const sinra = Math.sin(ra * HOUR2RAD); - const cosra = Math.cos(ra * HOUR2RAD); + const sinlat = Math.sin(observer.latitude * exports.DEG2RAD); + const coslat = Math.cos(observer.latitude * exports.DEG2RAD); + const sinlon = Math.sin(observer.longitude * exports.DEG2RAD); + const coslon = Math.cos(observer.longitude * exports.DEG2RAD); + const sindc = Math.sin(dec * exports.DEG2RAD); + const cosdc = Math.cos(dec * exports.DEG2RAD); + const sinra = Math.sin(ra * exports.HOUR2RAD); + const cosra = Math.cos(ra * exports.HOUR2RAD); // Calculate three mutually perpendicular unit vectors // in equatorial coordinates: uze, une, uwe. // @@ -2377,7 +2402,7 @@ export function Horizon(date, observer, ra, dec, refraction) { if (proj > 0) { // If the body is not exactly straight up/down, it has an azimuth. // Invert the angle to produce degrees eastward from north. - az = -RAD2DEG * Math.atan2(pw, pn); + az = -exports.RAD2DEG * Math.atan2(pw, pn); if (az < 0) az += 360; } @@ -2387,7 +2412,7 @@ export function Horizon(date, observer, ra, dec, refraction) { az = 0; } // zd = the angle of the body away from the observer's zenith, in degrees. - let zd = RAD2DEG * Math.atan2(proj, pz); + let zd = exports.RAD2DEG * Math.atan2(proj, pz); let out_ra = ra; let out_dec = dec; if (refraction) { @@ -2395,17 +2420,17 @@ export function Horizon(date, observer, ra, dec, refraction) { let refr = Refraction(refraction, 90 - zd); zd -= refr; if (refr > 0.0 && zd > 3.0e-4) { - const sinzd = Math.sin(zd * DEG2RAD); - const coszd = Math.cos(zd * DEG2RAD); - const sinzd0 = Math.sin(zd0 * DEG2RAD); - const coszd0 = Math.cos(zd0 * DEG2RAD); + const sinzd = Math.sin(zd * exports.DEG2RAD); + const coszd = Math.cos(zd * exports.DEG2RAD); + const sinzd0 = Math.sin(zd0 * exports.DEG2RAD); + const coszd0 = Math.cos(zd0 * exports.DEG2RAD); const pr = []; for (let j = 0; j < 3; ++j) { pr.push(((p[j] - coszd0 * uz[j]) / sinzd0) * sinzd + uz[j] * coszd); } proj = Math.hypot(pr[0], pr[1]); if (proj > 0) { - out_ra = RAD2HOUR * Math.atan2(pr[1], pr[0]); + out_ra = exports.RAD2HOUR * Math.atan2(pr[1], pr[0]); if (out_ra < 0) { out_ra += 24; } @@ -2413,11 +2438,12 @@ export function Horizon(date, observer, ra, dec, refraction) { else { out_ra = 0; } - out_dec = RAD2DEG * Math.atan2(pr[2], proj); + out_dec = exports.RAD2DEG * Math.atan2(pr[2], proj); } } return new HorizontalCoordinates(az, 90 - zd, out_ra, out_dec); } +exports.Horizon = Horizon; function VerifyObserver(observer) { if (!(observer instanceof Observer)) { throw `Not an instance of the Observer class: ${observer}`; @@ -2447,7 +2473,7 @@ function VerifyObserver(observer) { * @property {number} height * The observer's elevation above mean sea level, expressed in meters. */ -export class Observer { +class Observer { constructor(latitude, longitude, height) { this.latitude = latitude; this.longitude = longitude; @@ -2455,6 +2481,7 @@ export class Observer { VerifyObserver(this); } } +exports.Observer = Observer; /** * @brief Returns apparent geocentric true ecliptic coordinates of date for the Sun. * @@ -2474,11 +2501,11 @@ export class Observer { * * @returns {EclipticCoordinates} */ -export function SunPosition(date) { +function SunPosition(date) { // Correct for light travel time from the Sun. // This is really the same as correcting for aberration. // Otherwise season calculations (equinox, solstice) will all be early by about 8 minutes! - const time = MakeTime(date).AddDays(-1 / C_AUDAY); + const time = MakeTime(date).AddDays(-1 / exports.C_AUDAY); // Get heliocentric cartesian coordinates of Earth in J2000. const earth2000 = CalcVsop(vsop.Earth, time); // Convert to geocentric location of the Sun. @@ -2486,13 +2513,14 @@ export function SunPosition(date) { // Convert to equator-of-date equatorial cartesian coordinates. const [gx, gy, gz] = gyration(sun2000, time, PrecessDirection.From2000); // Convert to ecliptic coordinates of date. - const true_obliq = DEG2RAD * e_tilt(time).tobl; + const true_obliq = exports.DEG2RAD * e_tilt(time).tobl; const cos_ob = Math.cos(true_obliq); const sin_ob = Math.sin(true_obliq); const vec = new Vector(gx, gy, gz, time); const sun_ecliptic = RotateEquatorialToEcliptic(vec, cos_ob, sin_ob); return sun_ecliptic; } +exports.SunPosition = SunPosition; /** * @brief Calculates equatorial coordinates of a Solar System body at a given time. * @@ -2533,7 +2561,7 @@ export function SunPosition(date) { * @returns {EquatorialCoordinates} * The topocentric coordinates of the body as adjusted for the given observer. */ -export function Equator(body, date, observer, ofdate, aberration) { +function Equator(body, date, observer, ofdate, aberration) { VerifyObserver(observer); VerifyBoolean(ofdate); VerifyBoolean(aberration); @@ -2550,6 +2578,7 @@ export function Equator(body, date, observer, ofdate, aberration) { const datevect = gyration(j2000, time, PrecessDirection.From2000); return vector2radec(datevect, time); } +exports.Equator = Equator; /** * @brief Calculates geocentric equatorial coordinates of an observer on the surface of the Earth. * @@ -2585,7 +2614,7 @@ export function Equator(body, date, observer, ofdate, aberration) { * An equatorial vector from the center of the Earth to the specified location * on (or near) the Earth's surface. */ -export function ObserverVector(date, observer, ofdate) { +function ObserverVector(date, observer, ofdate) { const time = MakeTime(date); const gast = sidereal_time(time); let ovec = terra(observer, gast).pos; @@ -2593,6 +2622,7 @@ export function ObserverVector(date, observer, ofdate) { ovec = gyration(ovec, time, PrecessDirection.Into2000); return VectorFromArray(ovec, time); } +exports.ObserverVector = ObserverVector; /** * @brief Calculates geocentric equatorial position and velocity of an observer on the surface of the Earth. * @@ -2625,7 +2655,7 @@ export function ObserverVector(date, observer, ofdate) { * * @returns {StateVector} */ -export function ObserverState(date, observer, ofdate) { +function ObserverState(date, observer, ofdate) { const time = MakeTime(date); const gast = sidereal_time(time); const svec = terra(observer, gast); @@ -2634,6 +2664,7 @@ export function ObserverState(date, observer, ofdate) { return gyration_posvel(state, time, PrecessDirection.Into2000); return state; } +exports.ObserverState = ObserverState; /** * @brief Calculates the geographic location corresponding to an equatorial vector. * @@ -2659,7 +2690,7 @@ export function ObserverState(date, observer, ofdate) { * The geographic latitude, longitude, and elevation above sea level * that corresponds to the given equatorial vector. */ -export function VectorObserver(vector, ofdate) { +function VectorObserver(vector, ofdate) { const gast = sidereal_time(vector.t); let ovec = [vector.x, vector.y, vector.z]; if (!ofdate) { @@ -2668,6 +2699,7 @@ export function VectorObserver(vector, ofdate) { } return inverse_terra(ovec, gast); } +exports.VectorObserver = VectorObserver; /** * @brief Calculates the gravitational acceleration experienced by an observer on the Earth. * @@ -2693,12 +2725,13 @@ export function VectorObserver(vector, ofdate) { * @returns {number} * The effective gravitational acceleration expressed in meters per second squared [m/s^2]. */ -export function ObserverGravity(latitude, height) { - const s = Math.sin(latitude * DEG2RAD); +function ObserverGravity(latitude, height) { + const s = Math.sin(latitude * exports.DEG2RAD); const s2 = s * s; const g0 = 9.7803253359 * (1.0 + 0.00193185265241 * s2) / Math.sqrt(1.0 - 0.00669437999013 * s2); return g0 * (1.0 - (3.15704e-07 - 2.10269e-09 * s2) * height + 7.37452e-14 * height * height); } +exports.ObserverGravity = ObserverGravity; function RotateEquatorialToEcliptic(equ, cos_ob, sin_ob) { // Rotate equatorial vector to obtain ecliptic vector. const ex = equ.x; @@ -2707,11 +2740,11 @@ function RotateEquatorialToEcliptic(equ, cos_ob, sin_ob) { const xyproj = Math.hypot(ex, ey); let elon = 0; if (xyproj > 0) { - elon = RAD2DEG * Math.atan2(ey, ex); + elon = exports.RAD2DEG * Math.atan2(ey, ex); if (elon < 0) elon += 360; } - let elat = RAD2DEG * Math.atan2(ez, xyproj); + let elat = exports.RAD2DEG * Math.atan2(ez, xyproj); let ecl = new Vector(ex, ey, ez, equ.t); return new EclipticCoordinates(ecl, elat, elon); } @@ -2728,7 +2761,7 @@ function RotateEquatorialToEcliptic(equ, cos_ob, sin_ob) { * * @returns {EclipticCoordinates} */ -export function Ecliptic(eqj) { +function Ecliptic(eqj) { // Calculate nutation and obliquity for this time. // As an optimization, the nutation angles are cached in `time`, // and reused below when the `nutation` function is called. @@ -2739,9 +2772,10 @@ export function Ecliptic(eqj) { const [x, y, z] = nutation(mean_pos, eqj.t, PrecessDirection.From2000); const eqd = new Vector(x, y, z, eqj.t); // Rotate from EQD to true ecliptic of date (ECT). - const tobl = et.tobl * DEG2RAD; + const tobl = et.tobl * exports.DEG2RAD; return RotateEquatorialToEcliptic(eqd, Math.cos(tobl), Math.sin(tobl)); } +exports.Ecliptic = Ecliptic; /** * @brief Calculates equatorial geocentric Cartesian coordinates for the Moon. * @@ -2761,7 +2795,7 @@ export function Ecliptic(eqj) { * * @returns {Vector} */ -export function GeoMoon(date) { +function GeoMoon(date) { const time = MakeTime(date); const moon = CalcMoon(time); // Convert geocentric ecliptic spherical coords to cartesian coords. @@ -2777,6 +2811,7 @@ export function GeoMoon(date) { const mpos2 = precession(mpos1, time, PrecessDirection.Into2000); return new Vector(mpos2[0], mpos2[1], mpos2[2], time); } +exports.GeoMoon = GeoMoon; /** * @brief Calculates spherical ecliptic geocentric position of the Moon. * @@ -2802,7 +2837,7 @@ export function GeoMoon(date) { * * @returns {Spherical} */ -export function EclipticGeoMoon(date) { +function EclipticGeoMoon(date) { const time = MakeTime(date); const moon = CalcMoon(time); // Convert spherical coordinates to a vector. @@ -2822,12 +2857,13 @@ export function EclipticGeoMoon(date) { const eqd = nutation(eqm, time, PrecessDirection.From2000); const eqd_vec = VectorFromArray(eqd, time); // Convert back to ecliptic, this time in true equinox of date (ECT). - const toblRad = et.tobl * DEG2RAD; + const toblRad = et.tobl * exports.DEG2RAD; const cos_tobl = Math.cos(toblRad); const sin_tobl = Math.sin(toblRad); const eclip = RotateEquatorialToEcliptic(eqd_vec, cos_tobl, sin_tobl); return new Spherical(eclip.elat, eclip.elon, moon.distance_au); } +exports.EclipticGeoMoon = EclipticGeoMoon; /** * @brief Calculates equatorial geocentric position and velocity of the Moon at a given time. * @@ -2845,7 +2881,7 @@ export function EclipticGeoMoon(date) { * * @returns {StateVector} */ -export function GeoMoonState(date) { +function GeoMoonState(date) { const time = MakeTime(date); // This is a hack, because trying to figure out how to derive a time // derivative for CalcMoon() would be extremely painful! @@ -2858,6 +2894,7 @@ export function GeoMoonState(date) { const r2 = GeoMoon(t2); return new StateVector((r1.x + r2.x) / 2, (r1.y + r2.y) / 2, (r1.z + r2.z) / 2, (r2.x - r1.x) / (2 * dt), (r2.y - r1.y) / (2 * dt), (r2.z - r1.z) / (2 * dt), time); } +exports.GeoMoonState = GeoMoonState; /** * @brief Calculates the geocentric position and velocity of the Earth/Moon barycenter. * @@ -2871,12 +2908,13 @@ export function GeoMoonState(date) { * * @returns {StateVector} */ -export function GeoEmbState(date) { +function GeoEmbState(date) { const time = MakeTime(date); const s = GeoMoonState(time); const d = 1.0 + EARTH_MOON_MASS_RATIO; return new StateVector(s.x / d, s.y / d, s.z / d, s.vx / d, s.vy / d, s.vz / d, time); } +exports.GeoEmbState = GeoEmbState; function VsopFormula(formula, t, clamp_angle) { let tpower = 1; let coord = 0; @@ -3473,7 +3511,7 @@ const JupiterMoonModel = [ * @property {StateVector} callisto * The position and velocity of Jupiter's moon Callisto. */ -export class JupiterMoonsInfo { +class JupiterMoonsInfo { constructor(io, europa, ganymede, callisto) { this.io = io; this.europa = europa; @@ -3481,6 +3519,7 @@ export class JupiterMoonsInfo { this.callisto = callisto; } } +exports.JupiterMoonsInfo = JupiterMoonsInfo; function JupiterMoon_elem2pv(time, mu, elem) { // Translation of FORTRAN subroutine ELEM2PV from: // https://ftp.imcce.fr/pub/ephem/satel/galilean/L1/L1.2/ @@ -3565,10 +3604,11 @@ function CalcJupiterMoon(time, m) { * @return {JupiterMoonsInfo} * Position and velocity vectors of Jupiter's largest 4 moons. */ -export function JupiterMoons(date) { +function JupiterMoons(date) { const time = new AstroTime(date); return new JupiterMoonsInfo(CalcJupiterMoon(time, JupiterMoonModel[0]), CalcJupiterMoon(time, JupiterMoonModel[1]), CalcJupiterMoon(time, JupiterMoonModel[2]), CalcJupiterMoon(time, JupiterMoonModel[3])); } +exports.JupiterMoons = JupiterMoons; // Jupiter Moons ends -------------------------------------------------------- /** * @brief Calculates a vector from the center of the Sun to the given body at the given time. @@ -3590,7 +3630,7 @@ export function JupiterMoons(date) { * * @returns {Vector} */ -export function HelioVector(body, date) { +function HelioVector(body, date) { var time = MakeTime(date); if (body in vsop) return CalcVsop(vsop[body], time); @@ -3620,6 +3660,7 @@ export function HelioVector(body, date) { } throw `HelioVector: Unknown body "${body}"`; } +exports.HelioVector = HelioVector; ; /** * @brief Calculates the distance between a body and the Sun at a given time. @@ -3640,7 +3681,7 @@ export function HelioVector(body, date) { * @returns {number} * The heliocentric distance in AU. */ -export function HelioDistance(body, date) { +function HelioDistance(body, date) { const star = UserDefinedStar(body); if (star) return star.dist; @@ -3649,6 +3690,7 @@ export function HelioDistance(body, date) { return VsopFormula(vsop[body][RAD_INDEX], time.tt / DAYS_PER_MILLENNIUM, false); return HelioVector(body, time).Length(); } +exports.HelioDistance = HelioDistance; /** * Solve for light travel time of a vector function. * @@ -3685,12 +3727,12 @@ export function HelioDistance(body, date) { * The `t` field holds the time that light left the observed * body to arrive at the observer at the observation time. */ -export function CorrectLightTravel(func, time) { +function CorrectLightTravel(func, time) { let ltime = time; let dt = 0; for (let iter = 0; iter < 10; ++iter) { const pos = func(ltime); - const lt = pos.Length() / C_AUDAY; + const lt = pos.Length() / exports.C_AUDAY; // This solver does not support more than one light-day of distance, // because that would cause convergence problems and inaccurate // values for stellar aberration angles. @@ -3704,6 +3746,7 @@ export function CorrectLightTravel(func, time) { } throw `Light-travel time solver did not converge: dt = ${dt}`; } +exports.CorrectLightTravel = CorrectLightTravel; class BodyPosition { constructor(observerBody, targetBody, aberration, observerPos) { this.observerBody = observerBody; @@ -3774,7 +3817,7 @@ class BodyPosition { * The `t` field holds the time that light left the observed * body to arrive at the observer at the observation time. */ -export function BackdatePosition(date, observerBody, targetBody, aberration) { +function BackdatePosition(date, observerBody, targetBody, aberration) { VerifyBoolean(aberration); const time = MakeTime(date); if (UserDefinedStar(targetBody)) { @@ -3790,7 +3833,7 @@ export function BackdatePosition(date, observerBody, targetBody, aberration) { // be measured in barycentric coordinates, not heliocentric. The error is very small. const ostate = HelioState(observerBody, time); const rvec = new Vector(tvec.x - ostate.x, tvec.y - ostate.y, tvec.z - ostate.z, time); - const s = C_AUDAY / rvec.Length(); // conversion factor from relative distance to speed of light + const s = exports.C_AUDAY / rvec.Length(); // conversion factor from relative distance to speed of light return new Vector(rvec.x + ostate.vx / s, rvec.y + ostate.vy / s, rvec.z + ostate.vz / s, time); } // No correction is needed. Simply return the star's current position as seen from the observer. @@ -3810,6 +3853,7 @@ export function BackdatePosition(date, observerBody, targetBody, aberration) { const bpos = new BodyPosition(observerBody, targetBody, aberration, observerPos); return CorrectLightTravel(t => bpos.Position(t), time); } +exports.BackdatePosition = BackdatePosition; /** * @brief Calculates a vector from the center of the Earth to the given body at the given time. * @@ -3840,7 +3884,7 @@ export function BackdatePosition(date, observerBody, targetBody, aberration) { * * @returns {Vector} */ -export function GeoVector(body, date, aberration) { +function GeoVector(body, date, aberration) { VerifyBoolean(aberration); const time = MakeTime(date); switch (body) { @@ -3854,6 +3898,7 @@ export function GeoVector(body, date, aberration) { return vec; } } +exports.GeoVector = GeoVector; function ExportState(terse, time) { return new StateVector(terse.r.x, terse.r.y, terse.r.z, terse.v.x, terse.v.y, terse.v.z, time); } @@ -3876,7 +3921,7 @@ function ExportState(terse, time) { * @returns {StateVector} * An object that contains barycentric position and velocity vectors. */ -export function BaryState(body, date) { +function BaryState(body, date) { const time = MakeTime(date); if (body === Body.SSB) { // Trivial case: the solar system barycenter itself. @@ -3907,6 +3952,7 @@ export function BaryState(body, date) { } throw `BaryState: Unsupported body "${body}"`; } +exports.BaryState = BaryState; /** * @brief Calculates heliocentric position and velocity vectors for the given body. * @@ -3933,7 +3979,7 @@ export function BaryState(body, date) { * @returns {StateVector} * An object that contains heliocentric position and velocity vectors. */ -export function HelioState(body, date) { +function HelioState(body, date) { const time = MakeTime(date); switch (body) { case Body.Sun: @@ -3969,6 +4015,7 @@ export function HelioState(body, date) { throw `HelioState: Unsupported body "${body}"`; } } +exports.HelioState = HelioState; function QuadInterp(tm, dt, fa, fm, fb) { let Q = (fb + fa) / 2 - fm; let R = (fb - fa) / 2; @@ -4066,7 +4113,7 @@ function QuadInterp(tm, dt, fa, fm, fb) { * If the search is successful, returns the date and time of the solution. * If the search fails, returns `null`. */ -export function Search(f, t1, t2, options) { +function Search(f, t1, t2, options) { const dt_tolerance_seconds = VerifyNumber((options && options.dt_tolerance_seconds) || 1); const dt_days = Math.abs(dt_tolerance_seconds / SECONDS_PER_DAY); let f1 = (options && options.init_f1) || f(t1); @@ -4140,6 +4187,7 @@ export function Search(f, t1, t2, options) { return null; } } +exports.Search = Search; function LongitudeOffset(diff) { let offset = diff; while (offset <= -180) @@ -4201,7 +4249,7 @@ function NormalizeLongitude(lon) { * To avoid a `null` return value, the caller must pick a time window around * the event that is within a few days but not so small that the event might fall outside the window. */ -export function SearchSunLongitude(targetLon, dateStart, limitDays) { +function SearchSunLongitude(targetLon, dateStart, limitDays) { function sun_offset(t) { let pos = SunPosition(t); return LongitudeOffset(pos.elon - targetLon); @@ -4212,6 +4260,7 @@ export function SearchSunLongitude(targetLon, dateStart, limitDays) { let t2 = t1.AddDays(limitDays); return Search(sun_offset, t1, t2, { dt_tolerance_seconds: 0.01 }); } +exports.SearchSunLongitude = SearchSunLongitude; /** * @brief Returns one body's ecliptic longitude with respect to another, as seen from the Earth. * @@ -4244,7 +4293,7 @@ export function SearchSunLongitude(targetLon, dateStart, limitDays) { * @returns {number} * An angle in the range [0, 360), expressed in degrees. */ -export function PairLongitude(body1, body2, date) { +function PairLongitude(body1, body2, date) { if (body1 === Body.Earth || body2 === Body.Earth) throw 'The Earth does not have a longitude as seen from itself.'; const time = MakeTime(date); @@ -4254,6 +4303,7 @@ export function PairLongitude(body1, body2, date) { const eclip2 = Ecliptic(vector2); return NormalizeLongitude(eclip1.elon - eclip2.elon); } +exports.PairLongitude = PairLongitude; /** * @brief Calculates the angular separation between the Sun and the given body. * @@ -4273,7 +4323,7 @@ export function PairLongitude(body1, body2, date) { * @returns {number} * An angle in degrees in the range [0, 180]. */ -export function AngleFromSun(body, date) { +function AngleFromSun(body, date) { if (body == Body.Earth) throw 'The Earth does not have an angle as seen from itself.'; const time = MakeTime(date); @@ -4282,6 +4332,7 @@ export function AngleFromSun(body, date) { const angle = AngleBetween(sv, bv); return angle; } +exports.AngleFromSun = AngleFromSun; /** * @brief Calculates heliocentric ecliptic longitude of a body. * @@ -4298,13 +4349,14 @@ export function AngleFromSun(body, date) { * * @returns {number} */ -export function EclipticLongitude(body, date) { +function EclipticLongitude(body, date) { if (body === Body.Sun) throw 'Cannot calculate heliocentric longitude of the Sun.'; const hv = HelioVector(body, date); const eclip = Ecliptic(hv); return eclip.elon; } +exports.EclipticLongitude = EclipticLongitude; function VisualMagnitude(body, phase, helio_dist, geo_dist) { // For Mercury and Venus, see: https://iopscience.iop.org/article/10.1086/430212 let c0, c1 = 0, c2 = 0, c3 = 0; @@ -4359,25 +4411,25 @@ function SaturnMagnitude(phase, helio_dist, geo_dist, gc, time) { // We must handle Saturn's rings as a major component of its visual magnitude. // Find geocentric ecliptic coordinates of Saturn. const eclip = Ecliptic(gc); - const ir = DEG2RAD * 28.06; // tilt of Saturn's rings to the ecliptic, in radians - const Nr = DEG2RAD * (169.51 + (3.82e-5 * time.tt)); // ascending node of Saturn's rings, in radians + const ir = exports.DEG2RAD * 28.06; // tilt of Saturn's rings to the ecliptic, in radians + const Nr = exports.DEG2RAD * (169.51 + (3.82e-5 * time.tt)); // ascending node of Saturn's rings, in radians // Find tilt of Saturn's rings, as seen from Earth. - const lat = DEG2RAD * eclip.elat; - const lon = DEG2RAD * eclip.elon; + const lat = exports.DEG2RAD * eclip.elat; + const lon = exports.DEG2RAD * eclip.elon; const tilt = Math.asin(Math.sin(lat) * Math.cos(ir) - Math.cos(lat) * Math.sin(ir) * Math.sin(lon - Nr)); const sin_tilt = Math.sin(Math.abs(tilt)); let mag = -9.0 + 0.044 * phase; mag += sin_tilt * (-2.6 + 1.2 * sin_tilt); mag += 5 * Math.log10(helio_dist * geo_dist); - return { mag: mag, ring_tilt: RAD2DEG * tilt }; + return { mag: mag, ring_tilt: exports.RAD2DEG * tilt }; } function MoonMagnitude(phase, helio_dist, geo_dist) { // https://astronomy.stackexchange.com/questions/10246/is-there-a-simple-analytical-formula-for-the-lunar-phase-brightness-curve - let rad = phase * DEG2RAD; + let rad = phase * exports.DEG2RAD; let rad2 = rad * rad; let rad4 = rad2 * rad2; let mag = -12.717 + 1.49 * Math.abs(rad) + 0.0431 * rad4; - const moon_mean_distance_au = 385000.6 / KM_PER_AU; + const moon_mean_distance_au = 385000.6 / exports.KM_PER_AU; let geo_au = geo_dist / moon_mean_distance_au; mag += 5 * Math.log10(helio_dist * geo_au); return mag; @@ -4435,7 +4487,7 @@ function MoonMagnitude(phase, helio_dist, geo_dist) { * for Saturn's visual magnitude. * For all bodies other than Saturn, the value of `ring_tilt` is `undefined`. */ -export class IlluminationInfo { +class IlluminationInfo { constructor(time, mag, phase_angle, helio_dist, geo_dist, gc, hc, ring_tilt) { this.time = time; this.mag = mag; @@ -4445,9 +4497,10 @@ export class IlluminationInfo { this.gc = gc; this.hc = hc; this.ring_tilt = ring_tilt; - this.phase_fraction = (1 + Math.cos(DEG2RAD * phase_angle)) / 2; + this.phase_fraction = (1 + Math.cos(exports.DEG2RAD * phase_angle)) / 2; } } +exports.IlluminationInfo = IlluminationInfo; /** * @brief Calculates visual magnitude and related information about a body. * @@ -4464,7 +4517,7 @@ export class IlluminationInfo { * * @returns {IlluminationInfo} */ -export function Illumination(body, date) { +function Illumination(body, date) { if (body === Body.Earth) throw `The illumination of the Earth is not defined.`; const time = MakeTime(date); @@ -4510,6 +4563,7 @@ export function Illumination(body, date) { } return new IlluminationInfo(time, mag, phase, helio_dist, geo_dist, gc, hc, ring_tilt); } +exports.Illumination = Illumination; function SynodicPeriod(body) { if (body === Body.Earth) throw 'The Earth does not have a synodic period as seen from itself.'; @@ -4557,7 +4611,7 @@ function SynodicPeriod(body) { * @returns {AstroTime} * The time when the Earth and the body next reach the specified relative longitudes. */ -export function SearchRelativeLongitude(body, targetRelLon, startDate) { +function SearchRelativeLongitude(body, targetRelLon, startDate) { VerifyNumber(targetRelLon); const planet = Planet[body]; if (!planet) @@ -4603,6 +4657,7 @@ export function SearchRelativeLongitude(body, targetRelLon, startDate) { } throw `Relative longitude search failed to converge for ${body} near ${time.toString()} (error_angle = ${error_angle}).`; } +exports.SearchRelativeLongitude = SearchRelativeLongitude; /** * @brief Determines the moon's phase expressed as an ecliptic longitude. * @@ -4620,9 +4675,10 @@ export function SearchRelativeLongitude(body, targetRelLon, startDate) { * * 180 = full moon * * 270 = third quarter */ -export function MoonPhase(date) { +function MoonPhase(date) { return PairLongitude(Body.Moon, Body.Sun, date); } +exports.MoonPhase = MoonPhase; /** * @brief Searches for the date and time that the Moon reaches a specified phase. * @@ -4658,7 +4714,7 @@ export function MoonPhase(date) { * This function will return `null` if the phase does not occur within `limitDays` of `startTime`; * that is, if the search window is too small. */ -export function SearchMoonPhase(targetLon, dateStart, limitDays) { +function SearchMoonPhase(targetLon, dateStart, limitDays) { function moon_offset(t) { let mlon = MoonPhase(t); return LongitudeOffset(mlon - targetLon); @@ -4703,6 +4759,7 @@ export function SearchMoonPhase(targetLon, dateStart, limitDays) { const t2 = ta.AddDays(dt2); return Search(moon_offset, t1, t2, { dt_tolerance_seconds: 0.1 }); } +exports.SearchMoonPhase = SearchMoonPhase; /** * @brief A quarter lunar phase, along with when it occurs. * @@ -4716,12 +4773,13 @@ export function SearchMoonPhase(targetLon, dateStart, limitDays) { * @property {AstroTime} time * The date and time of the quarter lunar phase. */ -export class MoonQuarter { +class MoonQuarter { constructor(quarter, time) { this.quarter = quarter; this.time = time; } } +exports.MoonQuarter = MoonQuarter; /** * @brief Finds the first quarter lunar phase after the specified date and time. * @@ -4736,7 +4794,7 @@ export class MoonQuarter { * * @returns {MoonQuarter} */ -export function SearchMoonQuarter(dateStart) { +function SearchMoonQuarter(dateStart) { // Determine what the next quarter phase will be. let phaseStart = MoonPhase(dateStart); let quarterStart = Math.floor(phaseStart / 90); @@ -4746,6 +4804,7 @@ export function SearchMoonQuarter(dateStart) { throw 'Cannot find moon quarter'; return new MoonQuarter(quarter, time); } +exports.SearchMoonQuarter = SearchMoonQuarter; /** * @brief Finds the next quarter lunar phase in a series. * @@ -4758,13 +4817,14 @@ export function SearchMoonQuarter(dateStart) { * * @returns {MoonQuarter} */ -export function NextMoonQuarter(mq) { +function NextMoonQuarter(mq) { // Skip 6 days past the previous found moon quarter to find the next one. // This is less than the minimum possible increment. // So far I have seen the interval well contained by the range (6.5, 8.3) days. let date = new Date(mq.time.date.getTime() + 6 * MILLIS_PER_DAY); return SearchMoonQuarter(date); } +exports.NextMoonQuarter = NextMoonQuarter; /** * @brief Information about idealized atmospheric variables at a given elevation. * @@ -4777,13 +4837,14 @@ export function NextMoonQuarter(mq) { * @property {number} density * Atmospheric density relative to sea level. */ -export class AtmosphereInfo { +class AtmosphereInfo { constructor(pressure, temperature, density) { this.pressure = pressure; this.temperature = temperature; this.density = density; } } +exports.AtmosphereInfo = AtmosphereInfo; /** * @brief Calculates U.S. Standard Atmosphere (1976) variables as a function of elevation. * @@ -4802,7 +4863,7 @@ export class AtmosphereInfo { * * @returns {AtmosphereInfo} */ -export function Atmosphere(elevationMeters) { +function Atmosphere(elevationMeters) { const P0 = 101325.0; // pressure at sea level [pascals] const T0 = 288.15; // temperature at sea level [kelvins] const T1 = 216.65; // temperature between 20 km and 32 km [kelvins] @@ -4827,10 +4888,11 @@ export function Atmosphere(elevationMeters) { const density = (pressure / temperature) / (P0 / T0); return new AtmosphereInfo(pressure, temperature, density); } +exports.Atmosphere = Atmosphere; function HorizonDipAngle(observer, metersAboveGround) { // Calculate the effective radius of the Earth at ground level below the observer. // Correct for the Earth's oblateness. - const phi = observer.latitude * DEG2RAD; + const phi = observer.latitude * exports.DEG2RAD; const sinphi = Math.sin(phi); const cosphi = Math.cos(phi); const c = 1.0 / Math.hypot(cosphi, sinphi * EARTH_FLATTENING); @@ -4847,7 +4909,7 @@ function HorizonDipAngle(observer, metersAboveGround) { // k = refraction index const k = 0.175 * Math.pow(1.0 - (6.5e-3 / 283.15) * (observer.height - (2.0 / 3.0) * metersAboveGround), 3.256); // Calculate how far below the observer's horizontal plane the observed horizon dips. - return RAD2DEG * -(Math.sqrt(2 * (1 - k) * metersAboveGround / radius_m) / (1 - k)); + return exports.RAD2DEG * -(Math.sqrt(2 * (1 - k) * metersAboveGround / radius_m) / (1 - k)); } function BodyRadiusAu(body) { // For the purposes of calculating rise/set times, @@ -4920,7 +4982,7 @@ function BodyRadiusAu(body) { * The date and time of the rise or set event, or null if no such event * occurs within the specified time window. */ -export function SearchRiseSet(body, observer, direction, dateStart, limitDays, metersAboveGround = 0.0) { +function SearchRiseSet(body, observer, direction, dateStart, limitDays, metersAboveGround = 0.0) { if (!Number.isFinite(metersAboveGround) || (metersAboveGround < 0.0)) throw `Invalid value for metersAboveGround: ${metersAboveGround}`; // We want to find when the top of the body crosses the horizon, not the body's center. @@ -4935,6 +4997,7 @@ export function SearchRiseSet(body, observer, direction, dateStart, limitDays, m // Search for the top of the body crossing the corrected altitude angle. return InternalSearchAltitude(body, observer, direction, dateStart, limitDays, body_radius_au, altitude); } +exports.SearchRiseSet = SearchRiseSet; /** * @brief Finds the next time the center of a body passes through a given altitude. * @@ -5002,11 +5065,12 @@ export function SearchRiseSet(body, observer, direction, dateStart, limitDays, m * The date and time of the altitude event, or null if no such event * occurs within the specified time window. */ -export function SearchAltitude(body, observer, direction, dateStart, limitDays, altitude) { +function SearchAltitude(body, observer, direction, dateStart, limitDays, altitude) { if (!Number.isFinite(altitude) || altitude < -90 || altitude > +90) throw `Invalid altitude angle: ${altitude}`; return InternalSearchAltitude(body, observer, direction, dateStart, limitDays, 0, altitude); } +exports.SearchAltitude = SearchAltitude; class AscentInfo { constructor(tx, ty, ax, ay) { this.tx = tx; @@ -5124,7 +5188,7 @@ function MaxAltitudeSlope(body, latitude) { default: throw `Body not allowed for altitude search: ${body}`; } - const latrad = DEG2RAD * latitude; + const latrad = exports.DEG2RAD * latitude; return Math.abs(((360.0 / SOLAR_DAYS_PER_SIDEREAL_DAY) - deriv_ra) * Math.cos(latrad)) + Math.abs(deriv_dec * Math.sin(latrad)); } function InternalSearchAltitude(body, observer, direction, dateStart, limitDays, bodyRadiusAu, targetAltitude) { @@ -5139,7 +5203,7 @@ function InternalSearchAltitude(body, observer, direction, dateStart, limitDays, function altdiff(time) { const ofdate = Equator(body, time, observer, true, true); const hor = Horizon(time, observer, ofdate.ra, ofdate.dec); - const altitude = hor.altitude + RAD2DEG * Math.asin(bodyRadiusAu / ofdate.dist); + const altitude = hor.altitude + exports.RAD2DEG * Math.asin(bodyRadiusAu / ofdate.dist); return direction * (altitude - targetAltitude); } // We allow searching forward or backward in time. @@ -5212,12 +5276,13 @@ function InternalSearchAltitude(body, observer, direction, dateStart, limitDays, * Topocentric horizontal coordinates for the body * at the time indicated by the `time` property. */ -export class HourAngleEvent { +class HourAngleEvent { constructor(time, hor) { this.time = time; this.hor = hor; } } +exports.HourAngleEvent = HourAngleEvent; /** * @brief Searches for the time when the center of a body reaches a specified hour angle as seen by an observer on the Earth. * @@ -5271,7 +5336,7 @@ export class HourAngleEvent { * * @returns {HourAngleEvent} */ -export function SearchHourAngle(body, observer, hourAngle, dateStart, direction = +1) { +function SearchHourAngle(body, observer, hourAngle, dateStart, direction = +1) { VerifyObserver(observer); let time = MakeTime(dateStart); let iter = 0; @@ -5323,6 +5388,7 @@ export function SearchHourAngle(body, observer, hourAngle, dateStart, direction time = time.AddDays(delta_days); } } +exports.SearchHourAngle = SearchHourAngle; /** * @brief Finds the hour angle of a body for a given observer and time. * @@ -5348,7 +5414,7 @@ export function SearchHourAngle(body, observer, hourAngle, dateStart, direction * * @returns {number} */ -export function HourAngle(body, date, observer) { +function HourAngle(body, date, observer) { const time = MakeTime(date); const gast = SiderealTime(time); const ofdate = Equator(body, time, observer, true, true); @@ -5357,6 +5423,7 @@ export function HourAngle(body, date, observer) { hourAngle += 24.0; return hourAngle; } +exports.HourAngle = HourAngle; /** * @brief When the seasons change for a given calendar year. * @@ -5400,7 +5467,7 @@ export function HourAngle(body, date, observer) { * the beginning of winter in the northern hemisphere and * the beginning of summer in the southern hemisphere. */ -export class SeasonInfo { +class SeasonInfo { constructor(mar_equinox, jun_solstice, sep_equinox, dec_solstice) { this.mar_equinox = mar_equinox; this.jun_solstice = jun_solstice; @@ -5408,6 +5475,7 @@ export class SeasonInfo { this.dec_solstice = dec_solstice; } } +exports.SeasonInfo = SeasonInfo; /** * @brief Finds the equinoxes and solstices for a given calendar year. * @@ -5417,7 +5485,7 @@ export class SeasonInfo { * * @returns {SeasonInfo} */ -export function Seasons(year) { +function Seasons(year) { function find(targetLon, month, day) { let startDate = new Date(Date.UTC(year, month - 1, day)); let time = SearchSunLongitude(targetLon, startDate, 20); @@ -5435,6 +5503,7 @@ export function Seasons(year) { let dec_solstice = find(270, 12, 10); return new SeasonInfo(mar_equinox, jun_solstice, sep_equinox, dec_solstice); } +exports.Seasons = Seasons; /** * @brief The viewing conditions of a body relative to the Sun. * @@ -5465,7 +5534,7 @@ export function Seasons(year) { * * @see {@link Elongation} */ -export class ElongationEvent { +class ElongationEvent { constructor(time, visibility, elongation, ecliptic_separation) { this.time = time; this.visibility = visibility; @@ -5473,6 +5542,7 @@ export class ElongationEvent { this.ecliptic_separation = ecliptic_separation; } } +exports.ElongationEvent = ElongationEvent; /** * @brief Calculates the viewing conditions of a body relative to the Sun. * @@ -5494,7 +5564,7 @@ export class ElongationEvent { * * @returns {ElongationEvent} */ -export function Elongation(body, date) { +function Elongation(body, date) { let time = MakeTime(date); let lon = PairLongitude(body, Body.Sun, time); let vis; @@ -5508,6 +5578,7 @@ export function Elongation(body, date) { let angle = AngleFromSun(body, time); return new ElongationEvent(time, vis, angle, lon); } +exports.Elongation = Elongation; /** * @brief Finds the next time Mercury or Venus reaches maximum elongation. * @@ -5528,7 +5599,7 @@ export function Elongation(body, date) { * * @returns {ElongationEvent} */ -export function SearchMaxElongation(body, startDate) { +function SearchMaxElongation(body, startDate) { const dt = 0.01; function neg_slope(t) { // The slope de/dt goes from positive to negative at the maximum elongation event. @@ -5616,6 +5687,7 @@ export function SearchMaxElongation(body, startDate) { } throw `SearchMaxElongation: failed to find event after 2 tries.`; } +exports.SearchMaxElongation = SearchMaxElongation; /** * @brief Searches for the date and time Venus will next appear brightest as seen from the Earth. * @@ -5633,7 +5705,7 @@ export function SearchMaxElongation(body, startDate) { * * @returns {IlluminationInfo} */ -export function SearchPeakMagnitude(body, startDate) { +function SearchPeakMagnitude(body, startDate) { if (body !== Body.Venus) throw 'SearchPeakMagnitude currently works for Venus only.'; const dt = 0.01; @@ -5721,6 +5793,7 @@ export function SearchPeakMagnitude(body, startDate) { } throw `SearchPeakMagnitude: failed to find event after 2 tries.`; } +exports.SearchPeakMagnitude = SearchPeakMagnitude; /** * @brief The two kinds of apsis: pericenter (closest) and apocenter (farthest). * @@ -5729,11 +5802,11 @@ export function SearchPeakMagnitude(body, startDate) { * * @enum {number} */ -export var ApsisKind; +var ApsisKind; (function (ApsisKind) { ApsisKind[ApsisKind["Pericenter"] = 0] = "Pericenter"; ApsisKind[ApsisKind["Apocenter"] = 1] = "Apocenter"; -})(ApsisKind || (ApsisKind = {})); +})(ApsisKind || (exports.ApsisKind = ApsisKind = {})); /** * @brief A closest or farthest point in a body's orbit around its primary. * @@ -5758,14 +5831,15 @@ export var ApsisKind; * @see {@link SearchPlanetApsis} * @see {@link NextPlanetApsis} */ -export class Apsis { +class Apsis { constructor(time, kind, dist_au) { this.time = time; this.kind = kind; this.dist_au = dist_au; - this.dist_km = dist_au * KM_PER_AU; + this.dist_km = dist_au * exports.KM_PER_AU; } } +exports.Apsis = Apsis; /** * @brief Finds the next perigee or apogee of the Moon. * @@ -5777,7 +5851,7 @@ export class Apsis { * * @returns {Apsis} */ -export function SearchLunarApsis(startDate) { +function SearchLunarApsis(startDate) { const dt = 0.001; function distance_slope(t) { let t1 = t.AddDays(-dt / 2); @@ -5835,6 +5909,7 @@ export function SearchLunarApsis(startDate) { // It should not be possible to fail to find an apsis within 2 synodic months. throw 'SearchLunarApsis INTERNAL ERROR: could not find apsis within 2 synodic months of start date.'; } +exports.SearchLunarApsis = SearchLunarApsis; /** * @brief Finds the next lunar apsis (perigee or apogee) in a series. * @@ -5848,13 +5923,14 @@ export function SearchLunarApsis(startDate) { * @returns {Apsis} * The successor apogee for the given perigee, or the successor perigee for the given apogee. */ -export function NextLunarApsis(apsis) { +function NextLunarApsis(apsis) { const skip = 11; // number of days to skip to start looking for next apsis event let next = SearchLunarApsis(apsis.time.AddDays(skip)); if (next.kind + apsis.kind !== 1) throw `NextLunarApsis INTERNAL ERROR: did not find alternating apogee/perigee: prev=${apsis.kind} @ ${apsis.time.toString()}, next=${next.kind} @ ${next.time.toString()}`; return next; } +exports.NextLunarApsis = NextLunarApsis; function PlanetExtreme(body, kind, start_time, dayspan) { const direction = (kind === ApsisKind.Apocenter) ? +1.0 : -1.0; const npoints = 10; @@ -5972,7 +6048,7 @@ function BruteSearchPlanetApsis(body, startTime) { * @returns {Apsis} * The next perihelion or aphelion that occurs after `startTime`. */ -export function SearchPlanetApsis(body, startTime) { +function SearchPlanetApsis(body, startTime) { startTime = MakeTime(startTime); if (body === Body.Neptune || body === Body.Pluto) return BruteSearchPlanetApsis(body, startTime); @@ -6029,6 +6105,7 @@ export function SearchPlanetApsis(body, startTime) { } throw "Internal error: should have found planetary apsis within 2 orbital periods."; } +exports.SearchPlanetApsis = SearchPlanetApsis; /** * @brief Finds the next planetary perihelion or aphelion event in a series. * @@ -6048,7 +6125,7 @@ export function SearchPlanetApsis(body, startTime) { * @returns {Apsis} * Same as the return value for {@link SearchPlanetApsis}. */ -export function NextPlanetApsis(body, apsis) { +function NextPlanetApsis(body, apsis) { if (apsis.kind !== ApsisKind.Pericenter && apsis.kind !== ApsisKind.Apocenter) throw `Invalid apsis kind: ${apsis.kind}`; /* skip 1/4 of an orbit before starting search again */ @@ -6060,6 +6137,7 @@ export function NextPlanetApsis(body, apsis) { throw `Internal error: previous apsis was ${apsis.kind}, but found ${next.kind} for next apsis.`; return next; } +exports.NextPlanetApsis = NextPlanetApsis; /** * @brief Calculates the inverse of a rotation matrix. * @@ -6072,13 +6150,14 @@ export function NextPlanetApsis(body, apsis) { * @returns {RotationMatrix} * The inverse rotation matrix. */ -export function InverseRotation(rotation) { +function InverseRotation(rotation) { return new RotationMatrix([ [rotation.rot[0][0], rotation.rot[1][0], rotation.rot[2][0]], [rotation.rot[0][1], rotation.rot[1][1], rotation.rot[2][1]], [rotation.rot[0][2], rotation.rot[1][2], rotation.rot[2][2]] ]); } +exports.InverseRotation = InverseRotation; /** * @brief Creates a rotation based on applying one rotation followed by another. * @@ -6094,7 +6173,7 @@ export function InverseRotation(rotation) { * @returns {RotationMatrix} * The combined rotation matrix. */ -export function CombineRotation(a, b) { +function CombineRotation(a, b) { /* Use matrix multiplication: c = b*a. We put 'b' on the left and 'a' on the right because, @@ -6120,6 +6199,7 @@ export function CombineRotation(a, b) { ] ]); } +exports.CombineRotation = CombineRotation; /** * @brief Creates an identity rotation matrix. * @@ -6131,13 +6211,14 @@ export function CombineRotation(a, b) { * @returns {RotationMatrix} * The identity matrix. */ -export function IdentityMatrix() { +function IdentityMatrix() { return new RotationMatrix([ [1, 0, 0], [0, 1, 0], [0, 0, 1] ]); } +exports.IdentityMatrix = IdentityMatrix; /** * @brief Re-orients a rotation matrix by pivoting it by an angle around one of its axes. * @@ -6168,11 +6249,11 @@ export function IdentityMatrix() { * @returns {RotationMatrix} * A pivoted matrix object. */ -export function Pivot(rotation, axis, angle) { +function Pivot(rotation, axis, angle) { // Check for an invalid coordinate axis. if (axis !== 0 && axis !== 1 && axis !== 2) throw `Invalid axis ${axis}. Must be [0, 1, 2].`; - const radians = VerifyNumber(angle) * DEG2RAD; + const radians = VerifyNumber(angle) * exports.DEG2RAD; const c = Math.cos(radians); const s = Math.sin(radians); /* @@ -6196,6 +6277,7 @@ export function Pivot(rotation, axis, angle) { rot[k][k] = rotation.rot[k][k]; return new RotationMatrix(rot); } +exports.Pivot = Pivot; /** * @brief Converts spherical coordinates to Cartesian coordinates. * @@ -6212,13 +6294,14 @@ export function Pivot(rotation, axis, angle) { * @returns {Vector} * The vector form of the supplied spherical coordinates. */ -export function VectorFromSphere(sphere, time) { +function VectorFromSphere(sphere, time) { time = MakeTime(time); - const radlat = sphere.lat * DEG2RAD; - const radlon = sphere.lon * DEG2RAD; + const radlat = sphere.lat * exports.DEG2RAD; + const radlon = sphere.lon * exports.DEG2RAD; const rcoslat = sphere.dist * Math.cos(radlat); return new Vector(rcoslat * Math.cos(radlon), rcoslat * Math.sin(radlon), sphere.dist * Math.sin(radlat), time); } +exports.VectorFromSphere = VectorFromSphere; /** * @brief Given an equatorial vector, calculates equatorial angular coordinates. * @@ -6228,10 +6311,11 @@ export function VectorFromSphere(sphere, time) { * @returns {EquatorialCoordinates} * Angular coordinates expressed in the same equatorial system as `vec`. */ -export function EquatorFromVector(vec) { +function EquatorFromVector(vec) { const sphere = SphereFromVector(vec); return new EquatorialCoordinates(sphere.lon / 15, sphere.lat, sphere.dist, vec); } +exports.EquatorFromVector = EquatorFromVector; /** * @brief Converts Cartesian coordinates to spherical coordinates. * @@ -6243,7 +6327,7 @@ export function EquatorFromVector(vec) { * @returns {Spherical} * Spherical coordinates that are equivalent to the given vector. */ -export function SphereFromVector(vector) { +function SphereFromVector(vector) { const xyproj = vector.x * vector.x + vector.y * vector.y; const dist = Math.sqrt(xyproj + vector.z * vector.z); let lat, lon; @@ -6254,13 +6338,14 @@ export function SphereFromVector(vector) { lat = (vector.z < 0.0) ? -90.0 : +90.0; } else { - lon = RAD2DEG * Math.atan2(vector.y, vector.x); + lon = exports.RAD2DEG * Math.atan2(vector.y, vector.x); if (lon < 0.0) lon += 360.0; - lat = RAD2DEG * Math.atan2(vector.z, Math.sqrt(xyproj)); + lat = exports.RAD2DEG * Math.atan2(vector.z, Math.sqrt(xyproj)); } return new Spherical(lat, lon, dist); } +exports.SphereFromVector = SphereFromVector; function ToggleAzimuthDirection(az) { az = 360.0 - az; if (az >= 360.0) @@ -6300,12 +6385,13 @@ function ToggleAzimuthDirection(az) { * * @returns {Spherical} */ -export function HorizonFromVector(vector, refraction) { +function HorizonFromVector(vector, refraction) { const sphere = SphereFromVector(vector); sphere.lon = ToggleAzimuthDirection(sphere.lon); sphere.lat += Refraction(refraction, sphere.lat); return sphere; } +exports.HorizonFromVector = HorizonFromVector; /** * @brief Given apparent angular horizontal coordinates in `sphere`, calculate horizontal vector. * @@ -6327,7 +6413,7 @@ export function HorizonFromVector(vector, refraction) { * @returns {Vector} * A vector in the horizontal system: `x` = north, `y` = west, and `z` = zenith (up). */ -export function VectorFromHorizon(sphere, time, refraction) { +function VectorFromHorizon(sphere, time, refraction) { time = MakeTime(time); /* Convert azimuth from clockwise-from-north to counterclockwise-from-north. */ const lon = ToggleAzimuthDirection(sphere.lon); @@ -6336,6 +6422,7 @@ export function VectorFromHorizon(sphere, time, refraction) { const xsphere = new Spherical(lat, lon, sphere.dist); return VectorFromSphere(xsphere, time); } +exports.VectorFromHorizon = VectorFromHorizon; /** * @brief Calculates the amount of "lift" to an altitude angle caused by atmospheric refraction. * @@ -6358,7 +6445,7 @@ export function VectorFromHorizon(sphere, time, refraction) { * @returns {number} * The angular adjustment in degrees to be added to the altitude angle to correct for atmospheric lensing. */ -export function Refraction(refraction, altitude) { +function Refraction(refraction, altitude) { let refr; VerifyNumber(altitude); if (altitude < -90.0 || altitude > +90.0) @@ -6375,7 +6462,7 @@ export function Refraction(refraction, altitude) { let hd = altitude; if (hd < -1.0) hd = -1.0; - refr = (1.02 / Math.tan((hd + 10.3 / (hd + 5.11)) * DEG2RAD)) / 60.0; + refr = (1.02 / Math.tan((hd + 10.3 / (hd + 5.11)) * exports.DEG2RAD)) / 60.0; if (refraction === 'normal' && altitude < -1.0) { // In "normal" mode we gradually reduce refraction toward the nadir // so that we never get an altitude angle less than -90 degrees. @@ -6393,6 +6480,7 @@ export function Refraction(refraction, altitude) { } return refr; } +exports.Refraction = Refraction; /** * @brief Calculates the inverse of an atmospheric refraction angle. * @@ -6415,7 +6503,7 @@ export function Refraction(refraction, altitude) { * altitude angle to correct for atmospheric lensing. * This will be less than or equal to zero. */ -export function InverseRefraction(refraction, bent_altitude) { +function InverseRefraction(refraction, bent_altitude) { if (bent_altitude < -90.0 || bent_altitude > +90.0) return 0.0; /* no attempt to correct an invalid altitude */ /* Find the pre-adjusted altitude whose refraction correction leads to 'altitude'. */ @@ -6428,6 +6516,7 @@ export function InverseRefraction(refraction, bent_altitude) { altitude -= diff; } } +exports.InverseRefraction = InverseRefraction; /** * @brief Applies a rotation to a vector, yielding a rotated vector. * @@ -6443,9 +6532,10 @@ export function InverseRefraction(refraction, bent_altitude) { * @returns {Vector} * A vector in the orientation specified by `rotation`. */ -export function RotateVector(rotation, vector) { +function RotateVector(rotation, vector) { return new Vector(rotation.rot[0][0] * vector.x + rotation.rot[1][0] * vector.y + rotation.rot[2][0] * vector.z, rotation.rot[0][1] * vector.x + rotation.rot[1][1] * vector.y + rotation.rot[2][1] * vector.z, rotation.rot[0][2] * vector.x + rotation.rot[1][2] * vector.y + rotation.rot[2][2] * vector.z, vector.t); } +exports.RotateVector = RotateVector; /** * @brief Applies a rotation to a state vector, yielding a rotated vector. * @@ -6462,9 +6552,10 @@ export function RotateVector(rotation, vector) { * @return {StateVector} * A state vector in the orientation specified by `rotation`. */ -export function RotateState(rotation, state) { +function RotateState(rotation, state) { return new StateVector(rotation.rot[0][0] * state.x + rotation.rot[1][0] * state.y + rotation.rot[2][0] * state.z, rotation.rot[0][1] * state.x + rotation.rot[1][1] * state.y + rotation.rot[2][1] * state.z, rotation.rot[0][2] * state.x + rotation.rot[1][2] * state.y + rotation.rot[2][2] * state.z, rotation.rot[0][0] * state.vx + rotation.rot[1][0] * state.vy + rotation.rot[2][0] * state.vz, rotation.rot[0][1] * state.vx + rotation.rot[1][1] * state.vy + rotation.rot[2][1] * state.vz, rotation.rot[0][2] * state.vx + rotation.rot[1][2] * state.vy + rotation.rot[2][2] * state.vz, state.t); } +exports.RotateState = RotateState; /** * @brief Calculates a rotation matrix from J2000 mean equator (EQJ) to J2000 mean ecliptic (ECL). * @@ -6476,7 +6567,7 @@ export function RotateState(rotation, state) { * @returns {RotationMatrix} * A rotation matrix that converts EQJ to ECL. */ -export function Rotation_EQJ_ECL() { +function Rotation_EQJ_ECL() { /* ob = mean obliquity of the J2000 ecliptic = 0.40909260059599012 radians. */ const c = 0.9174821430670688; /* cos(ob) */ const s = 0.3977769691083922; /* sin(ob) */ @@ -6486,6 +6577,7 @@ export function Rotation_EQJ_ECL() { [0, +s, +c] ]); } +exports.Rotation_EQJ_ECL = Rotation_EQJ_ECL; /** * @brief Calculates a rotation matrix from J2000 mean ecliptic (ECL) to J2000 mean equator (EQJ). * @@ -6497,7 +6589,7 @@ export function Rotation_EQJ_ECL() { * @returns {RotationMatrix} * A rotation matrix that converts ECL to EQJ. */ -export function Rotation_ECL_EQJ() { +function Rotation_ECL_EQJ() { /* ob = mean obliquity of the J2000 ecliptic = 0.40909260059599012 radians. */ const c = 0.9174821430670688; /* cos(ob) */ const s = 0.3977769691083922; /* sin(ob) */ @@ -6507,6 +6599,7 @@ export function Rotation_ECL_EQJ() { [0, -s, +c] ]); } +exports.Rotation_ECL_EQJ = Rotation_ECL_EQJ; /** * @brief Calculates a rotation matrix from J2000 mean equator (EQJ) to equatorial of-date (EQD). * @@ -6521,12 +6614,13 @@ export function Rotation_ECL_EQJ() { * @returns {RotationMatrix} * A rotation matrix that converts EQJ to EQD at `time`. */ -export function Rotation_EQJ_EQD(time) { +function Rotation_EQJ_EQD(time) { time = MakeTime(time); const prec = precession_rot(time, PrecessDirection.From2000); const nut = nutation_rot(time, PrecessDirection.From2000); return CombineRotation(prec, nut); } +exports.Rotation_EQJ_EQD = Rotation_EQJ_EQD; /** * @brief Calculates a rotation matrix from J2000 mean equator (EQJ) to true ecliptic of date (ECT). * @@ -6541,12 +6635,13 @@ export function Rotation_EQJ_EQD(time) { * @returns {RotationMatrix} * A rotation matrix that converts EQJ to ECT at `time`. */ -export function Rotation_EQJ_ECT(time) { +function Rotation_EQJ_ECT(time) { const t = MakeTime(time); const rot = Rotation_EQJ_EQD(t); const step = Rotation_EQD_ECT(t); return CombineRotation(rot, step); } +exports.Rotation_EQJ_ECT = Rotation_EQJ_ECT; /** * @brief Calculates a rotation matrix from true ecliptic of date (ECT) to J2000 mean equator (EQJ). * @@ -6561,12 +6656,13 @@ export function Rotation_EQJ_ECT(time) { * @returns {RotationMatrix} * A rotation matrix that converts ECT to EQJ at `time`. */ -export function Rotation_ECT_EQJ(time) { +function Rotation_ECT_EQJ(time) { const t = MakeTime(time); const rot = Rotation_ECT_EQD(t); const step = Rotation_EQD_EQJ(t); return CombineRotation(rot, step); } +exports.Rotation_ECT_EQJ = Rotation_ECT_EQJ; /** * @brief Calculates a rotation matrix from equatorial of-date (EQD) to J2000 mean equator (EQJ). * @@ -6581,12 +6677,13 @@ export function Rotation_ECT_EQJ(time) { * @returns {RotationMatrix} * A rotation matrix that converts EQD at `time` to EQJ. */ -export function Rotation_EQD_EQJ(time) { +function Rotation_EQD_EQJ(time) { time = MakeTime(time); const nut = nutation_rot(time, PrecessDirection.Into2000); const prec = precession_rot(time, PrecessDirection.Into2000); return CombineRotation(nut, prec); } +exports.Rotation_EQD_EQJ = Rotation_EQD_EQJ; /** * @brief Calculates a rotation matrix from equatorial of-date (EQD) to horizontal (HOR). * @@ -6611,12 +6708,12 @@ export function Rotation_EQD_EQJ(time) { * These components are chosen so that the "right-hand rule" works for the vector * and so that north represents the direction where azimuth = 0. */ -export function Rotation_EQD_HOR(time, observer) { +function Rotation_EQD_HOR(time, observer) { time = MakeTime(time); - const sinlat = Math.sin(observer.latitude * DEG2RAD); - const coslat = Math.cos(observer.latitude * DEG2RAD); - const sinlon = Math.sin(observer.longitude * DEG2RAD); - const coslon = Math.cos(observer.longitude * DEG2RAD); + const sinlat = Math.sin(observer.latitude * exports.DEG2RAD); + const coslat = Math.cos(observer.latitude * exports.DEG2RAD); + const sinlon = Math.sin(observer.longitude * exports.DEG2RAD); + const coslon = Math.cos(observer.longitude * exports.DEG2RAD); const uze = [coslat * coslon, coslat * sinlon, sinlat]; const une = [-sinlat * coslon, -sinlat * sinlon, coslat]; const uwe = [sinlon, -coslon, 0]; @@ -6630,6 +6727,7 @@ export function Rotation_EQD_HOR(time, observer) { [un[2], uw[2], uz[2]], ]); } +exports.Rotation_EQD_HOR = Rotation_EQD_HOR; /** * @brief Calculates a rotation matrix from horizontal (HOR) to equatorial of-date (EQD). * @@ -6647,10 +6745,11 @@ export function Rotation_EQD_HOR(time, observer) { * @returns {RotationMatrix} * A rotation matrix that converts HOR to EQD at `time` and for `observer`. */ -export function Rotation_HOR_EQD(time, observer) { +function Rotation_HOR_EQD(time, observer) { const rot = Rotation_EQD_HOR(time, observer); return InverseRotation(rot); } +exports.Rotation_HOR_EQD = Rotation_HOR_EQD; /** * @brief Calculates a rotation matrix from horizontal (HOR) to J2000 equatorial (EQJ). * @@ -6668,12 +6767,13 @@ export function Rotation_HOR_EQD(time, observer) { * @returns {RotationMatrix} * A rotation matrix that converts HOR to EQJ at `time` and for `observer`. */ -export function Rotation_HOR_EQJ(time, observer) { +function Rotation_HOR_EQJ(time, observer) { time = MakeTime(time); const hor_eqd = Rotation_HOR_EQD(time, observer); const eqd_eqj = Rotation_EQD_EQJ(time); return CombineRotation(hor_eqd, eqd_eqj); } +exports.Rotation_HOR_EQJ = Rotation_HOR_EQJ; /** * @brief Calculates a rotation matrix from J2000 mean equator (EQJ) to horizontal (HOR). * @@ -6698,10 +6798,11 @@ export function Rotation_HOR_EQJ(time, observer) { * These components are chosen so that the "right-hand rule" works for the vector * and so that north represents the direction where azimuth = 0. */ -export function Rotation_EQJ_HOR(time, observer) { +function Rotation_EQJ_HOR(time, observer) { const rot = Rotation_HOR_EQJ(time, observer); return InverseRotation(rot); } +exports.Rotation_EQJ_HOR = Rotation_EQJ_HOR; /** * @brief Calculates a rotation matrix from equatorial of-date (EQD) to J2000 mean ecliptic (ECL). * @@ -6716,11 +6817,12 @@ export function Rotation_EQJ_HOR(time, observer) { * @returns {RotationMatrix} * A rotation matrix that converts EQD to ECL. */ -export function Rotation_EQD_ECL(time) { +function Rotation_EQD_ECL(time) { const eqd_eqj = Rotation_EQD_EQJ(time); const eqj_ecl = Rotation_EQJ_ECL(); return CombineRotation(eqd_eqj, eqj_ecl); } +exports.Rotation_EQD_ECL = Rotation_EQD_ECL; /** * @brief Calculates a rotation matrix from J2000 mean ecliptic (ECL) to equatorial of-date (EQD). * @@ -6735,10 +6837,11 @@ export function Rotation_EQD_ECL(time) { * @returns {RotationMatrix} * A rotation matrix that converts ECL to EQD. */ -export function Rotation_ECL_EQD(time) { +function Rotation_ECL_EQD(time) { const rot = Rotation_EQD_ECL(time); return InverseRotation(rot); } +exports.Rotation_ECL_EQD = Rotation_ECL_EQD; /** * @brief Calculates a rotation matrix from J2000 mean ecliptic (ECL) to horizontal (HOR). * @@ -6763,12 +6866,13 @@ export function Rotation_ECL_EQD(time) { * These components are chosen so that the "right-hand rule" works for the vector * and so that north represents the direction where azimuth = 0. */ -export function Rotation_ECL_HOR(time, observer) { +function Rotation_ECL_HOR(time, observer) { time = MakeTime(time); const ecl_eqd = Rotation_ECL_EQD(time); const eqd_hor = Rotation_EQD_HOR(time, observer); return CombineRotation(ecl_eqd, eqd_hor); } +exports.Rotation_ECL_HOR = Rotation_ECL_HOR; /** * @brief Calculates a rotation matrix from horizontal (HOR) to J2000 mean ecliptic (ECL). * @@ -6786,10 +6890,11 @@ export function Rotation_ECL_HOR(time, observer) { * @returns {RotationMatrix} * A rotation matrix that converts HOR to ECL. */ -export function Rotation_HOR_ECL(time, observer) { +function Rotation_HOR_ECL(time, observer) { const rot = Rotation_ECL_HOR(time, observer); return InverseRotation(rot); } +exports.Rotation_HOR_ECL = Rotation_HOR_ECL; /** * @brief Calculates a rotation matrix from J2000 mean equator (EQJ) to galactic (GAL). * @@ -6801,7 +6906,7 @@ export function Rotation_HOR_ECL(time, observer) { * @returns {RotationMatrix} * A rotation matrix that converts EQJ to GAL. */ -export function Rotation_EQJ_GAL() { +function Rotation_EQJ_GAL() { // This rotation matrix was calculated by the following script // in this same source code repository: // demo/python/galeqj_matrix.py @@ -6811,6 +6916,7 @@ export function Rotation_EQJ_GAL() { [-0.4838000529948520, +0.7470034631630423, +0.4559861124470794] ]); } +exports.Rotation_EQJ_GAL = Rotation_EQJ_GAL; /** * @brief Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). * @@ -6822,7 +6928,7 @@ export function Rotation_EQJ_GAL() { * @returns {RotationMatrix} * A rotation matrix that converts GAL to EQJ. */ -export function Rotation_GAL_EQJ() { +function Rotation_GAL_EQJ() { // This rotation matrix was calculated by the following script // in this same source code repository: // demo/python/galeqj_matrix.py @@ -6832,6 +6938,7 @@ export function Rotation_GAL_EQJ() { [-0.8676668813529025, -0.1980677870294097, +0.4559861124470794] ]); } +exports.Rotation_GAL_EQJ = Rotation_GAL_EQJ; /** * @brief Calculates a rotation matrix from true ecliptic of date (ECT) to equator of date (EQD). * @@ -6846,9 +6953,9 @@ export function Rotation_GAL_EQJ() { * @returns {RotationMatrix} * A rotation matrix that converts ECT to EQD. */ -export function Rotation_ECT_EQD(time) { +function Rotation_ECT_EQD(time) { const et = e_tilt(MakeTime(time)); - const tobl = et.tobl * DEG2RAD; + const tobl = et.tobl * exports.DEG2RAD; const c = Math.cos(tobl); const s = Math.sin(tobl); return new RotationMatrix([ @@ -6857,6 +6964,7 @@ export function Rotation_ECT_EQD(time) { [0.0, -s, +c] ]); } +exports.Rotation_ECT_EQD = Rotation_ECT_EQD; /** * @brief Calculates a rotation matrix from equator of date (EQD) to true ecliptic of date (ECT). * @@ -6871,9 +6979,9 @@ export function Rotation_ECT_EQD(time) { * @returns {RotationMatrix} * A rotation matrix that converts EQD to ECT. */ -export function Rotation_EQD_ECT(time) { +function Rotation_EQD_ECT(time) { const et = e_tilt(MakeTime(time)); - const tobl = et.tobl * DEG2RAD; + const tobl = et.tobl * exports.DEG2RAD; const c = Math.cos(tobl); const s = Math.sin(tobl); return new RotationMatrix([ @@ -6882,6 +6990,7 @@ export function Rotation_EQD_ECT(time) { [0.0, +s, +c] ]); } +exports.Rotation_EQD_ECT = Rotation_EQD_ECT; const ConstelNames = [ ['And', 'Andromeda'] // 0 , @@ -7791,7 +7900,7 @@ let Epoch2000; * @property {number} dec1875 * Declination expressed in B1875 coordinates. */ -export class ConstellationInfo { +class ConstellationInfo { constructor(symbol, name, ra1875, dec1875) { this.symbol = symbol; this.name = name; @@ -7799,6 +7908,7 @@ export class ConstellationInfo { this.dec1875 = dec1875; } } +exports.ConstellationInfo = ConstellationInfo; /** * @brief Determines the constellation that contains the given point in the sky. * @@ -7816,7 +7926,7 @@ export class ConstellationInfo { * of the constellation that contains the given (ra,dec), along with * the converted B1875 (ra,dec) for that point. */ -export function Constellation(ra, dec) { +function Constellation(ra, dec) { VerifyNumber(ra); VerifyNumber(dec); if (dec < -90 || dec > +90) @@ -7862,6 +7972,7 @@ export function Constellation(ra, dec) { // This should never happen! throw 'Unable to find constellation for given coordinates.'; } +exports.Constellation = Constellation; /** * @brief The different kinds of lunar/solar eclipses.. * @@ -7872,13 +7983,13 @@ export function Constellation(ra, dec) { * * @enum {string} */ -export var EclipseKind; +var EclipseKind; (function (EclipseKind) { EclipseKind["Penumbral"] = "penumbral"; EclipseKind["Partial"] = "partial"; EclipseKind["Annular"] = "annular"; EclipseKind["Total"] = "total"; -})(EclipseKind || (EclipseKind = {})); +})(EclipseKind || (exports.EclipseKind = EclipseKind = {})); /** * @brief Returns information about a lunar eclipse. * @@ -7926,7 +8037,7 @@ export var EclipseKind; * The semi-duration of the penumbral phase in minutes, or 0.0 if none. * */ -export class LunarEclipseInfo { +class LunarEclipseInfo { constructor(kind, obscuration, peak, sd_penum, sd_partial, sd_total) { this.kind = kind; this.obscuration = obscuration; @@ -7936,6 +8047,7 @@ export class LunarEclipseInfo { this.sd_total = sd_total; } } +exports.LunarEclipseInfo = LunarEclipseInfo; /** * @ignore * @@ -8000,7 +8112,7 @@ function CalcShadow(body_radius_km, time, target, dir) { const dx = (u * dir.x) - target.x; const dy = (u * dir.y) - target.y; const dz = (u * dir.z) - target.z; - const r = KM_PER_AU * Math.hypot(dx, dy, dz); + const r = exports.KM_PER_AU * Math.hypot(dx, dy, dz); const k = +SUN_RADIUS_KM - (1.0 + u) * (SUN_RADIUS_KM - body_radius_km); const p = -SUN_RADIUS_KM + (1.0 + u) * (SUN_RADIUS_KM + body_radius_km); return new ShadowInfo(time, u, r, k, p, target, dir); @@ -8122,7 +8234,7 @@ function ShadowSemiDurationMinutes(center_time, radius_limit, window_minutes) { } function MoonEclipticLatitudeDegrees(time) { const moon = CalcMoon(time); - return RAD2DEG * moon.geo_eclip_lat; + return exports.RAD2DEG * moon.geo_eclip_lat; } function Obscuration(a, // radius of first disc b, // radius of second disc @@ -8172,7 +8284,7 @@ lo // lunacentric observer // Calculate the apparent angular separation between the Sun's center and the Moon's center. const sun_moon_separation = AngleBetween(lo, ho); // Find the fraction of the Sun's apparent disc area that is covered by the Moon. - const obscuration = Obscuration(sun_radius, moon_radius, sun_moon_separation * DEG2RAD); + const obscuration = Obscuration(sun_radius, moon_radius, sun_moon_separation * exports.DEG2RAD); // HACK: In marginal cases, we need to clamp obscuration to less than 1.0. // This function is never called for total eclipses, so it should never return 1.0. return Math.min(0.9999, obscuration); @@ -8192,7 +8304,7 @@ lo // lunacentric observer * * @returns {LunarEclipseInfo} */ -export function SearchLunarEclipse(date) { +function SearchLunarEclipse(date) { const PruneLatitude = 1.8; /* full Moon's ecliptic latitude above which eclipse is impossible */ let fmtime = MakeTime(date); for (let fmcount = 0; fmcount < 12; ++fmcount) { @@ -8240,6 +8352,7 @@ export function SearchLunarEclipse(date) { /* This should never happen because there are always at least 2 full moons per year. */ throw 'Failed to find lunar eclipse within 12 full moons.'; } +exports.SearchLunarEclipse = SearchLunarEclipse; /** * @brief Reports the time and geographic location of the peak of a solar eclipse. * @@ -8298,7 +8411,7 @@ export function SearchLunarEclipse(date) { * where the center of the Moon's shadow falls on the Earth at the * time indicated by `peak`; otherwise, `longitude` holds `undefined`. */ -export class GlobalSolarEclipseInfo { +class GlobalSolarEclipseInfo { constructor(kind, obscuration, peak, distance, latitude, longitude) { this.kind = kind; this.obscuration = obscuration; @@ -8308,6 +8421,7 @@ export class GlobalSolarEclipseInfo { this.longitude = longitude; } } +exports.GlobalSolarEclipseInfo = GlobalSolarEclipseInfo; function EclipseKindFromUmbra(k) { // The umbra radius tells us what kind of eclipse the observer sees. // If the umbra radius is positive, this is a total eclipse. Otherwise, it's annular. @@ -8331,12 +8445,12 @@ function GeoidIntersect(shadow) { // But dilate the z-coordinates so that the Earth becomes a perfect sphere. // Then find the intersection of the vector with the sphere. // See p 184 in Montenbruck & Pfleger's "Astronomy on the Personal Computer", second edition. - v.x *= KM_PER_AU; - v.y *= KM_PER_AU; - v.z *= KM_PER_AU / EARTH_FLATTENING; - e.x *= KM_PER_AU; - e.y *= KM_PER_AU; - e.z *= KM_PER_AU / EARTH_FLATTENING; + v.x *= exports.KM_PER_AU; + v.y *= exports.KM_PER_AU; + v.z *= exports.KM_PER_AU / EARTH_FLATTENING; + e.x *= exports.KM_PER_AU; + e.y *= exports.KM_PER_AU; + e.z *= exports.KM_PER_AU / EARTH_FLATTENING; // Solve the quadratic equation that finds whether and where // the shadow axis intersects with the Earth in the dilated coordinate system. const R = EARTH_EQUATORIAL_RADIUS_KM; @@ -8358,10 +8472,10 @@ function GeoidIntersect(shadow) { if (proj == 0.0) latitude = (pz > 0.0) ? +90.0 : -90.0; else - latitude = RAD2DEG * Math.atan(pz / proj); + latitude = exports.RAD2DEG * Math.atan(pz / proj); // Adjust longitude for Earth's rotation at the given UT. const gast = sidereal_time(peak); - longitude = (RAD2DEG * Math.atan2(py, px) - (15 * gast)) % 360.0; + longitude = (exports.RAD2DEG * Math.atan2(py, px) - (15 * gast)) % 360.0; if (longitude <= -180.0) longitude += 360.0; else if (longitude > +180.0) @@ -8372,7 +8486,7 @@ function GeoidIntersect(shadow) { const inv = InverseRotation(rot); // Put the EQD geocentric coordinates of the observer into the vector 'o'. // Also convert back from kilometers to astronomical units. - let o = new Vector(px / KM_PER_AU, py / KM_PER_AU, pz / KM_PER_AU, shadow.time); + let o = new Vector(px / exports.KM_PER_AU, py / exports.KM_PER_AU, pz / exports.KM_PER_AU, shadow.time); // Rotate the observer's geocentric EQD back to the EQJ system. o = RotateVector(inv, o); // Convert geocentric vector to lunacentric vector. @@ -8409,11 +8523,12 @@ function GeoidIntersect(shadow) { * * @returns {LunarEclipseInfo} */ -export function NextLunarEclipse(prevEclipseTime) { +function NextLunarEclipse(prevEclipseTime) { prevEclipseTime = MakeTime(prevEclipseTime); const startTime = prevEclipseTime.AddDays(10); return SearchLunarEclipse(startTime); } +exports.NextLunarEclipse = NextLunarEclipse; /** * @brief Searches for a solar eclipse visible anywhere on the Earth's surface. * @@ -8429,7 +8544,7 @@ export function NextLunarEclipse(prevEclipseTime) { * * @returns {GlobalSolarEclipseInfo} */ -export function SearchGlobalSolarEclipse(startTime) { +function SearchGlobalSolarEclipse(startTime) { startTime = MakeTime(startTime); const PruneLatitude = 1.8; // Moon's ecliptic latitude beyond which eclipse is impossible // Iterate through consecutive new moons until we find a solar eclipse visible somewhere on Earth. @@ -8459,6 +8574,7 @@ export function SearchGlobalSolarEclipse(startTime) { // This should never happen, because at least 2 solar eclipses happen per year. throw 'Failed to find solar eclipse within 12 full moons.'; } +exports.SearchGlobalSolarEclipse = SearchGlobalSolarEclipse; /** * @brief Searches for the next global solar eclipse in a series. * @@ -8473,11 +8589,12 @@ export function SearchGlobalSolarEclipse(startTime) { * * @returns {GlobalSolarEclipseInfo} */ -export function NextGlobalSolarEclipse(prevEclipseTime) { +function NextGlobalSolarEclipse(prevEclipseTime) { prevEclipseTime = MakeTime(prevEclipseTime); const startTime = prevEclipseTime.AddDays(10.0); return SearchGlobalSolarEclipse(startTime); } +exports.NextGlobalSolarEclipse = NextGlobalSolarEclipse; /** * @brief Holds a time and the observed altitude of the Sun at that time. * @@ -8499,12 +8616,13 @@ export function NextGlobalSolarEclipse(prevEclipseTime) { * The angular altitude of the center of the Sun above/below the horizon, at `time`, * corrected for atmospheric refraction and expressed in degrees. */ -export class EclipseEvent { +class EclipseEvent { constructor(time, altitude) { this.time = time; this.altitude = altitude; } } +exports.EclipseEvent = EclipseEvent; /** * @brief Information about a solar eclipse as seen by an observer at a given time and geographic location. * @@ -8558,7 +8676,7 @@ export class EclipseEvent { * @property {EclipseEvent} partial_end * The time and Sun altitude at the end of the eclipse. */ -export class LocalSolarEclipseInfo { +class LocalSolarEclipseInfo { constructor(kind, obscuration, partial_begin, total_begin, peak, total_end, partial_end) { this.kind = kind; this.obscuration = obscuration; @@ -8569,6 +8687,7 @@ export class LocalSolarEclipseInfo { this.partial_end = partial_end; } } +exports.LocalSolarEclipseInfo = LocalSolarEclipseInfo; function local_partial_distance(shadow) { return shadow.p - shadow.r; } @@ -8643,7 +8762,7 @@ function SunAltitude(time, observer) { * * @returns {LocalSolarEclipseInfo} */ -export function SearchLocalSolarEclipse(startTime, observer) { +function SearchLocalSolarEclipse(startTime, observer) { startTime = MakeTime(startTime); VerifyObserver(observer); const PruneLatitude = 1.8; /* Moon's ecliptic latitude beyond which eclipse is impossible */ @@ -8674,6 +8793,7 @@ export function SearchLocalSolarEclipse(startTime, observer) { nmtime = newmoon.AddDays(10.0); } } +exports.SearchLocalSolarEclipse = SearchLocalSolarEclipse; /** * @brief Searches for the next local solar eclipse in a series. * @@ -8694,11 +8814,12 @@ export function SearchLocalSolarEclipse(startTime, observer) { * * @returns {LocalSolarEclipseInfo} */ -export function NextLocalSolarEclipse(prevEclipseTime, observer) { +function NextLocalSolarEclipse(prevEclipseTime, observer) { prevEclipseTime = MakeTime(prevEclipseTime); const startTime = prevEclipseTime.AddDays(10.0); return SearchLocalSolarEclipse(startTime, observer); } +exports.NextLocalSolarEclipse = NextLocalSolarEclipse; /** * @brief Information about a transit of Mercury or Venus, as seen from the Earth. * @@ -8724,7 +8845,7 @@ export function NextLocalSolarEclipse(prevEclipseTime, observer) { * The minimum angular separation, in arcminutes, between the centers of the Sun and the planet. * This angle pertains to the time stored in `peak`. */ -export class TransitInfo { +class TransitInfo { constructor(start, peak, finish, separation) { this.start = start; this.peak = peak; @@ -8732,6 +8853,7 @@ export class TransitInfo { this.separation = separation; } } +exports.TransitInfo = TransitInfo; function PlanetShadowBoundary(time, body, planet_radius_km, direction) { const shadow = PlanetShadow(body, planet_radius_km, time); return direction * (shadow.r - shadow.p); @@ -8760,7 +8882,7 @@ function PlanetTransitBoundary(body, planet_radius_km, t1, t2, direction) { * * @returns {TransitInfo} */ -export function SearchTransit(body, startTime) { +function SearchTransit(body, startTime) { startTime = MakeTime(startTime); const threshold_angle = 0.4; // maximum angular separation to attempt transit calculation const dt_days = 1.0; @@ -8804,6 +8926,7 @@ export function SearchTransit(body, startTime) { search_time = conj.AddDays(10.0); } } +exports.SearchTransit = SearchTransit; /** * @brief Searches for the next transit of Mercury or Venus in a series. * @@ -8819,11 +8942,12 @@ export function SearchTransit(body, startTime) { * * @returns {TransitInfo} */ -export function NextTransit(body, prevTransitTime) { +function NextTransit(body, prevTransitTime) { prevTransitTime = MakeTime(prevTransitTime); const startTime = prevTransitTime.AddDays(100.0); return SearchTransit(body, startTime); } +exports.NextTransit = NextTransit; /** * @brief Indicates whether a crossing through the ecliptic plane is ascending or descending. * @@ -8833,12 +8957,12 @@ export function NextTransit(body, prevTransitTime) { * * @enum {number} */ -export var NodeEventKind; +var NodeEventKind; (function (NodeEventKind) { NodeEventKind[NodeEventKind["Invalid"] = 0] = "Invalid"; NodeEventKind[NodeEventKind["Ascending"] = 1] = "Ascending"; NodeEventKind[NodeEventKind["Descending"] = -1] = "Descending"; -})(NodeEventKind || (NodeEventKind = {})); +})(NodeEventKind || (exports.NodeEventKind = NodeEventKind = {})); /** * @brief Information about an ascending or descending node of a body. * @@ -8848,12 +8972,13 @@ export var NodeEventKind; * @property {NodeEventKind} kind Whether the node is ascending (south to north) or descending (north to south). * @property {AstroTime} time The time when the body passes through the ecliptic plane. */ -export class NodeEventInfo { +class NodeEventInfo { constructor(kind, time) { this.kind = kind; this.time = time; } } +exports.NodeEventInfo = NodeEventInfo; const MoonNodeStepDays = +10.0; // a safe number of days to step without missing a Moon node /** * @brief Searches for a time when the Moon's center crosses through the ecliptic plane. @@ -8872,7 +8997,7 @@ const MoonNodeStepDays = +10.0; // a safe number of days to step without missing * * @returns {NodeEventInfo} */ -export function SearchMoonNode(startTime) { +function SearchMoonNode(startTime) { // Start at the given moment in time and sample the Moon's ecliptic latitude. // Step 10 days at a time, searching for an interval where that latitude crosses zero. let time1 = MakeTime(startTime); @@ -8893,6 +9018,7 @@ export function SearchMoonNode(startTime) { eclip1 = eclip2; } } +exports.SearchMoonNode = SearchMoonNode; /** * @brief Searches for the next time when the Moon's center crosses through the ecliptic plane. * @@ -8904,7 +9030,7 @@ export function SearchMoonNode(startTime) { * * @returns {NodeEventInfo} */ -export function NextMoonNode(prevNode) { +function NextMoonNode(prevNode) { const time = prevNode.time.AddDays(MoonNodeStepDays); const node = SearchMoonNode(time); switch (prevNode.kind) { @@ -8921,6 +9047,7 @@ export function NextMoonNode(prevNode) { } return node; } +exports.NextMoonNode = NextMoonNode; /** * @brief Information about a body's rotation axis at a given time. * @@ -8957,7 +9084,7 @@ export function NextMoonNode(prevNode) { * @property {Vector} north * A J2000 dimensionless unit vector pointing in the direction of the body's north pole. */ -export class AxisInfo { +class AxisInfo { constructor(ra, dec, spin, north) { this.ra = ra; this.dec = dec; @@ -8965,6 +9092,7 @@ export class AxisInfo { this.north = north; } } +exports.AxisInfo = AxisInfo; function EarthRotationAxis(time) { // Unlike the other planets, we have a model of precession and nutation // for the Earth's axis that provides a north pole vector. @@ -9004,7 +9132,7 @@ function EarthRotationAxis(time) { * * @returns {AxisInfo} */ -export function RotationAxis(body, date) { +function RotationAxis(body, date) { const time = MakeTime(date); const d = time.tt; const T = d / 36525.0; @@ -9020,11 +9148,11 @@ export function RotationAxis(body, date) { dec = 61.4155 - (0.0049 * T); w = (329.5988 + (6.1385108 * d) - + (0.01067257 * Math.sin(DEG2RAD * (174.7910857 + 4.092335 * d))) - - (0.00112309 * Math.sin(DEG2RAD * (349.5821714 + 8.184670 * d))) - - (0.00011040 * Math.sin(DEG2RAD * (164.3732571 + 12.277005 * d))) - - (0.00002539 * Math.sin(DEG2RAD * (339.1643429 + 16.369340 * d))) - - (0.00000571 * Math.sin(DEG2RAD * (153.9554286 + 20.461675 * d)))); + + (0.01067257 * Math.sin(exports.DEG2RAD * (174.7910857 + 4.092335 * d))) + - (0.00112309 * Math.sin(exports.DEG2RAD * (349.5821714 + 8.184670 * d))) + - (0.00011040 * Math.sin(exports.DEG2RAD * (164.3732571 + 12.277005 * d))) + - (0.00002539 * Math.sin(exports.DEG2RAD * (339.1643429 + 16.369340 * d))) + - (0.00000571 * Math.sin(exports.DEG2RAD * (153.9554286 + 20.461675 * d)))); break; case Body.Venus: ra = 272.76; @@ -9036,19 +9164,19 @@ export function RotationAxis(body, date) { case Body.Moon: // See page 8, Table 2 in: // https://astropedia.astrogeology.usgs.gov/alfresco/d/d/workspace/SpacesStore/28fd9e81-1964-44d6-a58b-fbbf61e64e15/WGCCRE2009reprint.pdf - const E1 = DEG2RAD * (125.045 - 0.0529921 * d); - const E2 = DEG2RAD * (250.089 - 0.1059842 * d); - const E3 = DEG2RAD * (260.008 + 13.0120009 * d); - const E4 = DEG2RAD * (176.625 + 13.3407154 * d); - const E5 = DEG2RAD * (357.529 + 0.9856003 * d); - const E6 = DEG2RAD * (311.589 + 26.4057084 * d); - const E7 = DEG2RAD * (134.963 + 13.0649930 * d); - const E8 = DEG2RAD * (276.617 + 0.3287146 * d); - const E9 = DEG2RAD * (34.226 + 1.7484877 * d); - const E10 = DEG2RAD * (15.134 - 0.1589763 * d); - const E11 = DEG2RAD * (119.743 + 0.0036096 * d); - const E12 = DEG2RAD * (239.961 + 0.1643573 * d); - const E13 = DEG2RAD * (25.053 + 12.9590088 * d); + const E1 = exports.DEG2RAD * (125.045 - 0.0529921 * d); + const E2 = exports.DEG2RAD * (250.089 - 0.1059842 * d); + const E3 = exports.DEG2RAD * (260.008 + 13.0120009 * d); + const E4 = exports.DEG2RAD * (176.625 + 13.3407154 * d); + const E5 = exports.DEG2RAD * (357.529 + 0.9856003 * d); + const E6 = exports.DEG2RAD * (311.589 + 26.4057084 * d); + const E7 = exports.DEG2RAD * (134.963 + 13.0649930 * d); + const E8 = exports.DEG2RAD * (276.617 + 0.3287146 * d); + const E9 = exports.DEG2RAD * (34.226 + 1.7484877 * d); + const E10 = exports.DEG2RAD * (15.134 - 0.1589763 * d); + const E11 = exports.DEG2RAD * (119.743 + 0.0036096 * d); + const E12 = exports.DEG2RAD * (239.961 + 0.1643573 * d); + const E13 = exports.DEG2RAD * (25.053 + 12.9590088 * d); ra = (269.9949 + 0.0031 * T - 3.8787 * Math.sin(E1) - 0.1204 * Math.sin(E2) @@ -9083,31 +9211,31 @@ export function RotationAxis(body, date) { break; case Body.Mars: ra = (317.269202 - 0.10927547 * T - + 0.000068 * Math.sin(DEG2RAD * (198.991226 + 19139.4819985 * T)) - + 0.000238 * Math.sin(DEG2RAD * (226.292679 + 38280.8511281 * T)) - + 0.000052 * Math.sin(DEG2RAD * (249.663391 + 57420.7251593 * T)) - + 0.000009 * Math.sin(DEG2RAD * (266.183510 + 76560.6367950 * T)) - + 0.419057 * Math.sin(DEG2RAD * (79.398797 + 0.5042615 * T))); + + 0.000068 * Math.sin(exports.DEG2RAD * (198.991226 + 19139.4819985 * T)) + + 0.000238 * Math.sin(exports.DEG2RAD * (226.292679 + 38280.8511281 * T)) + + 0.000052 * Math.sin(exports.DEG2RAD * (249.663391 + 57420.7251593 * T)) + + 0.000009 * Math.sin(exports.DEG2RAD * (266.183510 + 76560.6367950 * T)) + + 0.419057 * Math.sin(exports.DEG2RAD * (79.398797 + 0.5042615 * T))); dec = (54.432516 - 0.05827105 * T - + 0.000051 * Math.cos(DEG2RAD * (122.433576 + 19139.9407476 * T)) - + 0.000141 * Math.cos(DEG2RAD * (43.058401 + 38280.8753272 * T)) - + 0.000031 * Math.cos(DEG2RAD * (57.663379 + 57420.7517205 * T)) - + 0.000005 * Math.cos(DEG2RAD * (79.476401 + 76560.6495004 * T)) - + 1.591274 * Math.cos(DEG2RAD * (166.325722 + 0.5042615 * T))); + + 0.000051 * Math.cos(exports.DEG2RAD * (122.433576 + 19139.9407476 * T)) + + 0.000141 * Math.cos(exports.DEG2RAD * (43.058401 + 38280.8753272 * T)) + + 0.000031 * Math.cos(exports.DEG2RAD * (57.663379 + 57420.7517205 * T)) + + 0.000005 * Math.cos(exports.DEG2RAD * (79.476401 + 76560.6495004 * T)) + + 1.591274 * Math.cos(exports.DEG2RAD * (166.325722 + 0.5042615 * T))); w = (176.049863 + 350.891982443297 * d - + 0.000145 * Math.sin(DEG2RAD * (129.071773 + 19140.0328244 * T)) - + 0.000157 * Math.sin(DEG2RAD * (36.352167 + 38281.0473591 * T)) - + 0.000040 * Math.sin(DEG2RAD * (56.668646 + 57420.9295360 * T)) - + 0.000001 * Math.sin(DEG2RAD * (67.364003 + 76560.2552215 * T)) - + 0.000001 * Math.sin(DEG2RAD * (104.792680 + 95700.4387578 * T)) - + 0.584542 * Math.sin(DEG2RAD * (95.391654 + 0.5042615 * T))); + + 0.000145 * Math.sin(exports.DEG2RAD * (129.071773 + 19140.0328244 * T)) + + 0.000157 * Math.sin(exports.DEG2RAD * (36.352167 + 38281.0473591 * T)) + + 0.000040 * Math.sin(exports.DEG2RAD * (56.668646 + 57420.9295360 * T)) + + 0.000001 * Math.sin(exports.DEG2RAD * (67.364003 + 76560.2552215 * T)) + + 0.000001 * Math.sin(exports.DEG2RAD * (104.792680 + 95700.4387578 * T)) + + 0.584542 * Math.sin(exports.DEG2RAD * (95.391654 + 0.5042615 * T))); break; case Body.Jupiter: - const Ja = DEG2RAD * (99.360714 + 4850.4046 * T); - const Jb = DEG2RAD * (175.895369 + 1191.9605 * T); - const Jc = DEG2RAD * (300.323162 + 262.5475 * T); - const Jd = DEG2RAD * (114.012305 + 6070.2476 * T); - const Je = DEG2RAD * (49.511251 + 64.3000 * T); + const Ja = exports.DEG2RAD * (99.360714 + 4850.4046 * T); + const Jb = exports.DEG2RAD * (175.895369 + 1191.9605 * T); + const Jc = exports.DEG2RAD * (300.323162 + 262.5475 * T); + const Jd = exports.DEG2RAD * (114.012305 + 6070.2476 * T); + const Je = exports.DEG2RAD * (49.511251 + 64.3000 * T); ra = (268.056595 - 0.006499 * T + 0.000117 * Math.sin(Ja) + 0.000938 * Math.sin(Jb) @@ -9133,7 +9261,7 @@ export function RotationAxis(body, date) { w = 203.81 - 501.1600928 * d; break; case Body.Neptune: - const N = DEG2RAD * (357.85 + 52.316 * T); + const N = exports.DEG2RAD * (357.85 + 52.316 * T); ra = 299.36 + 0.70 * Math.sin(N); dec = 43.46 - 0.51 * Math.cos(N); w = 249.978 + 541.1397757 * d - 0.48 * Math.sin(N); @@ -9147,12 +9275,13 @@ export function RotationAxis(body, date) { throw `Invalid body: ${body}`; } // Calculate the north pole vector using the given angles. - const radlat = dec * DEG2RAD; - const radlon = ra * DEG2RAD; + const radlat = dec * exports.DEG2RAD; + const radlon = ra * exports.DEG2RAD; const rcoslat = Math.cos(radlat); const north = new Vector(rcoslat * Math.cos(radlon), rcoslat * Math.sin(radlon), Math.sin(radlat), time); return new AxisInfo(ra / 15, dec, w, north); } +exports.RotationAxis = RotationAxis; /** * @brief Calculates one of the 5 Lagrange points for a pair of co-orbiting bodies. * @@ -9197,7 +9326,7 @@ export function RotationAxis(body, date) { * @returns {StateVector} * The position and velocity of the selected Lagrange point with respect to the major body's center. */ -export function LagrangePoint(point, date, major_body, minor_body) { +function LagrangePoint(point, date, major_body, minor_body) { const time = MakeTime(date); const major_mass = MassProduct(major_body); const minor_mass = MassProduct(minor_body); @@ -9216,6 +9345,7 @@ export function LagrangePoint(point, date, major_body, minor_body) { } return LagrangePointFast(point, major_state, major_mass, minor_state, minor_mass); } +exports.LagrangePoint = LagrangePoint; /** * @brief Calculates one of the 5 Lagrange points from body masses and state vectors. * @@ -9261,7 +9391,7 @@ export function LagrangePoint(point, date, major_body, minor_body) { * @returns {StateVector} * The position and velocity of the selected Lagrange point with respect to the major body's center. */ -export function LagrangePointFast(point, major_state, major_mass, minor_state, minor_mass) { +function LagrangePointFast(point, major_state, major_mass, minor_state, minor_mass) { const cos_60 = 0.5; const sin_60 = 0.8660254037844386; /* sqrt(3) / 2 */ if (point < 1 || point > 5) @@ -9377,6 +9507,7 @@ export function LagrangePointFast(point, major_state, major_mass, minor_state, m } return p; } +exports.LagrangePointFast = LagrangePointFast; /** * @brief A simulation of zero or more small bodies moving through the Solar System. * @@ -9388,7 +9519,7 @@ export function LagrangePointFast(point, major_state, major_mass, minor_state, m * Then the class can update the positions and velocities over small * time steps. */ -export class GravitySimulator { +class GravitySimulator { /** * @brief Creates a gravity simulation object. * @@ -9665,6 +9796,7 @@ export class GravitySimulator { return new GravSimEndpoint(this.curr.time, gravitators, bodies); } } +exports.GravitySimulator = GravitySimulator; class GravSimEndpoint { constructor(time, gravitators, bodies) { this.time = time;