diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..88fe19e --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,18 @@ +module.exports = { + env: { + node: true, + commonjs: true, + es2021: true, + }, + extends: ['airbnb', 'prettier'], + parserOptions: { + ecmaVersion: 'latest', + }, + rules: { + 'prefer-destructuring': 'off', + 'no-bitwise': 'off', + 'class-methods-use-this': 'off', + 'import/extensions': 'off', + 'import/no-relative-packages': 'off', + }, +}; diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..e12f3b9 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +*.md +*.min.* \ No newline at end of file diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..5f6903a --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,8 @@ +module.exports = { + trailingComma: 'es5', + tabWidth: 2, + semi: true, + singleQuote: true, + bracketSameLine: true, + printWidth: 120, +}; diff --git a/karma.conf.js b/karma.conf.js deleted file mode 100644 index 7f8aa7e..0000000 --- a/karma.conf.js +++ /dev/null @@ -1,44 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client: { - jasmine: { - // you can add configuration options for Jasmine here - // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html - // for example, you can disable the random execution with `random: false` - // or set a specific seed with `seed: 4321` - }, - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - jasmineHtmlReporter: { - suppressAll: true // removes the duplicated traces - }, - coverageReporter: { - dir: require('path').join(__dirname, './coverage/itsfiveoclockwhere'), - subdir: '.', - reporters: [ - { type: 'html' }, - { type: 'text-summary' } - ] - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false, - restartOnFileChange: true - }); -}; diff --git a/package-lock.json b/package-lock.json index a48b48c..dc9980f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,18 +23,24 @@ "@angular-devkit/build-angular": "^16.2.1", "@angular/cli": "^16.2.1", "@angular/compiler-cli": "^16.2.4", - "@types/jasmine": "^4.3.5", "@types/luxon": "^3.3.2", "@types/node": "^20.5.9", - "jasmine-core": "^5.1.1", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-coverage": "^2.2.1", - "karma-jasmine": "^5.1.0", - "karma-jasmine-html-reporter": "^2.1.0", + "eslint": "^8.48.0", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-prettier": "^9.0.0", + "prettier": "^3.0.3", "typescript": "^5.1.6" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -2359,6 +2365,8 @@ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.1.90" } @@ -2724,6 +2732,162 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -3115,7 +3279,9 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@tootallnate/once": { "version": "1.1.2", @@ -3214,13 +3380,17 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/cors": { "version": "2.8.12", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/eslint": { "version": "8.4.10", @@ -3287,18 +3457,19 @@ "@types/node": "*" } }, - "node_modules/@types/jasmine": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.5.tgz", - "integrity": "sha512-9YHUdvuNDDRJYXZwHqSsO72Ok0vmqoJbNn73ttyITQp/VA60SarnZ+MPLD37rJAhVoKp+9BWOvJP5tHIRfZylQ==", - "dev": true - }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "peer": true + }, "node_modules/@types/luxon": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.2.tgz", @@ -3708,6 +3879,15 @@ "acorn": "^8" } }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", @@ -3924,12 +4104,165 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true, + "peer": true + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "peer": true, + "dependencies": { + "has-symbols": "^1.0.3" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3969,6 +4302,38 @@ "postcss": "^8.1.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.0.tgz", + "integrity": "sha512-ZtlVZobOeDQhb/y2lMK6mznDw7TJHDNcKx5/bbBkFvArIQ5CVFhSI6hWWQnMx9I8cNmNmZ30wpDyOC2E2nvgbQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dev": true, + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, "node_modules/babel-loader": { "version": "9.1.3", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", @@ -4081,6 +4446,8 @@ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "^4.5.0 || >= 5.9" } @@ -4556,6 +4923,8 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -4690,11 +5059,19 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", @@ -4719,6 +5096,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -4728,6 +5107,8 @@ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -4745,13 +5126,17 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/connect/node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ee-first": "1.1.1" }, @@ -4764,6 +5149,8 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 0.6" } @@ -4899,6 +5286,8 @@ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "object-assign": "^4", "vary": "^1" @@ -5159,7 +5548,16 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", - "dev": true + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "peer": true }, "node_modules/data-urls": { "version": "2.0.0", @@ -5180,6 +5578,8 @@ "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4.0" } @@ -5207,6 +5607,12 @@ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", @@ -5240,6 +5646,22 @@ "node": ">=8" } }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -5264,6 +5686,16 @@ "node": ">= 0.8" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -5284,7 +5716,9 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/dir-glob": { "version": "3.0.1", @@ -5316,11 +5750,25 @@ "node": ">=6" } }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", @@ -5474,6 +5922,8 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", @@ -5495,6 +5945,8 @@ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10.0.0" } @@ -5504,6 +5956,8 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 0.6" } @@ -5513,6 +5967,8 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -5546,7 +6002,9 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/entities": { "version": "4.5.0", @@ -5597,12 +6055,129 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.14.tgz", + "integrity": "sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw==", + "dev": true, + "peer": true, + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.0", + "safe-array-concat": "^1.0.0" + } + }, "node_modules/es-module-lexer": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", "dev": true }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "peer": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "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, + "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" + } + }, "node_modules/esbuild": { "version": "0.18.17", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", @@ -5716,6 +6291,397 @@ "node": ">=0.10.0" } }, + "node_modules/eslint": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz", + "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==", + "dev": true, + "dependencies": { + "eslint-config-airbnb-base": "^15.0.0", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5" + }, + "engines": { + "node": "^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.28.0", + "eslint-plugin-react-hooks": "^4.3.0" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "peer": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "dev": true, + "peer": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "has": "^1.0.3", + "is-core-module": "^2.13.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "peer": true + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dev": true, + "peer": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "peer": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -5729,6 +6695,282 @@ "node": ">=8.0.0" } }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -5742,6 +6984,27 @@ "node": ">=4" } }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -5927,7 +7190,9 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/external-editor": { "version": "3.1.0", @@ -5983,6 +7248,12 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -6019,6 +7290,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -6093,6 +7376,20 @@ "node": ">=8" } }, + "node_modules/flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dev": true, + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/flatted": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", @@ -6119,6 +7416,15 @@ } } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -6197,6 +7503,8 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -6259,6 +7567,33 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gauge": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", @@ -6297,13 +7632,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -6331,6 +7667,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -6378,6 +7730,21 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", @@ -6397,12 +7764,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/guess-parser": { "version": "0.4.22", "resolved": "https://registry.npmjs.org/guess-parser/-/guess-parser-0.4.22.tgz", @@ -6433,6 +7818,15 @@ "node": ">= 0.4.0" } }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -6442,6 +7836,30 @@ "node": ">=4" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -6454,6 +7872,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -6562,12 +7995,6 @@ } ] }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, "node_modules/htmlparser2": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", @@ -6976,6 +8403,20 @@ "node": ">=8" } }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -6991,12 +8432,54 @@ "node": ">= 10" } }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "peer": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -7009,6 +8492,34 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-core-module": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", @@ -7021,6 +8532,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -7045,6 +8571,19 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -7054,6 +8593,22 @@ "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "peer": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -7081,6 +8636,28 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -7090,6 +8667,30 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -7120,6 +8721,44 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -7132,6 +8771,51 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -7144,6 +8828,42 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -7173,6 +8893,8 @@ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 8.0.0" }, @@ -7229,75 +8951,17 @@ "semver": "bin/semver.js" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "node_modules/iterator.prototype": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.1.tgz", + "integrity": "sha512-9E+nePc8C9cnQldmNl6bgpTY6zI4OPRZd97fhJ/iVZ1GifIUDVV5F6x1nEDqpe8KaMEZGT4xgrwKQDxXnjOIZQ==", "dev": true, + "peer": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.3" } }, "node_modules/jackspeak": { @@ -7318,12 +8982,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", - "dev": true - }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -7448,6 +9106,12 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -7460,6 +9124,12 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -7483,6 +9153,8 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "optional": true, + "peer": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -7496,11 +9168,29 @@ "node >= 0.2.0" ] }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "peer": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, "node_modules/karma": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -7534,76 +9224,6 @@ "node": ">= 10" } }, - "node_modules/karma-chrome-launcher": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", - "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", - "dev": true, - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-chrome-launcher/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/karma-coverage": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", - "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.0.5", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/karma-jasmine": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", - "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", - "dev": true, - "dependencies": { - "jasmine-core": "^4.1.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "karma": "^6.0.0" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", - "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", - "dev": true, - "peerDependencies": { - "jasmine-core": "^4.0.0 || ^5.0.0", - "karma": "^6.0.0", - "karma-jasmine": "^5.0.0" - } - }, - "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true - }, "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", @@ -7618,6 +9238,8 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "optional": true, + "peer": true, "bin": { "mime": "cli.js" }, @@ -7625,20 +9247,13 @@ "node": ">=4.0.0" } }, - "node_modules/karma/node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/karma/node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minimist": "^1.2.6" }, @@ -7651,6 +9266,8 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7660,6 +9277,8 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "rimraf": "^3.0.0" }, @@ -7672,6 +9291,8 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -7690,10 +9311,21 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" } }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -7712,6 +9344,23 @@ "node": ">= 8" } }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "dev": true, + "peer": true + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dev": true, + "peer": true, + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, "node_modules/launch-editor": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", @@ -7802,6 +9451,19 @@ "node": ">=0.10.0" } }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/license-webpack-plugin": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", @@ -7867,6 +9529,12 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -7958,6 +9626,8 @@ "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.7.0.tgz", "integrity": "sha512-KA0W9ffgNBLDj6fZCq/lRbgR6ABAodRIDHrZnS48vOtfKa4PzWImb0Md1lmGCdO3n3sbCm/n1/WmrNlZ8kCI3Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -7969,6 +9639,19 @@ "node": ">=8.0" } }, + "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, + "peer": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -8007,30 +9690,6 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/make-fetch-happen": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", @@ -8221,9 +9880,9 @@ "dev": true }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -8232,6 +9891,16 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", @@ -8474,6 +10143,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, "node_modules/needle": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", @@ -8810,19 +10485,29 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "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, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/object-path": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", @@ -8832,6 +10517,101 @@ "node": ">= 10.12.0" } }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dev": true, + "peer": true, + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", @@ -8900,6 +10680,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", @@ -9545,6 +11342,30 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -9591,6 +11412,18 @@ "node": ">=10" } }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -9640,6 +11473,8 @@ "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.9" } @@ -9727,6 +11562,13 @@ "node": ">= 0.8" } }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "peer": true + }, "node_modules/read-package-json": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", @@ -9851,6 +11693,27 @@ "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", "dev": true }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -9890,6 +11753,23 @@ "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", "dev": true }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -10053,7 +11933,9 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/rimraf": { "version": "3.0.2", @@ -10126,12 +12008,50 @@ "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -10530,6 +12450,8 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.3.tgz", "integrity": "sha512-zdpnnKU+H6mOp7nYRXH4GNv1ux6HL6+lHL8g7Ds7Lj8CkdK1jJK/dlwsKDculbyOHifcJ0Pr/yeXnZQ5GeFrcg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", @@ -10546,13 +12468,17 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/socket.io-parser": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" @@ -10773,6 +12699,8 @@ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.3.tgz", "integrity": "sha512-CphIJyFx2SALGHeINanjFRKQ4l7x2c+rXYJ4BMq0gd+ZK0gi4VT8b+eHe2wi58x4UayBAKx4xtHpXT/ea1cz8w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -10840,6 +12768,71 @@ "node": ">=8" } }, + "node_modules/string.prototype.matchall": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.9.tgz", + "integrity": "sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -10865,6 +12858,16 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -10874,6 +12877,18 @@ "node": ">=6" } }, + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -11183,6 +13198,32 @@ "tree-kill": "cli.js" } }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "peer": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -11202,6 +13243,18 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -11227,6 +13280,71 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-assert": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", @@ -11261,10 +13379,27 @@ "url": "https://paypal.me/faisalman" } ], + "optional": true, + "peer": true, "engines": { "node": "*" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -11334,6 +13469,8 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 4.0.0" } @@ -11456,6 +13593,8 @@ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -11859,6 +13998,91 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "peer": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "peer": true + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "peer": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", diff --git a/package.json b/package.json index f7a333b..f51323a 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,7 @@ "ng": "ng", "start": "ng serve", "build": "ng build", - "watch": "ng build --watch --configuration development", - "test": "ng test" + "watch": "ng build --watch --configuration development" }, "private": true, "dependencies": { @@ -25,15 +24,12 @@ "@angular-devkit/build-angular": "^16.2.1", "@angular/cli": "^16.2.1", "@angular/compiler-cli": "^16.2.4", - "@types/jasmine": "^4.3.5", "@types/luxon": "^3.3.2", "@types/node": "^20.5.9", - "jasmine-core": "^5.1.1", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-coverage": "^2.2.1", - "karma-jasmine": "^5.1.0", - "karma-jasmine-html-reporter": "^2.1.0", - "typescript": "^5.1.6" + "typescript": "^5.1.6", + "eslint": "^8.48.0", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-prettier": "^9.0.0", + "prettier": "^3.0.3" } } diff --git a/src/app/app.component.html b/src/app/app.component.html index f85f4a0..e1d0adf 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,7 +1,7 @@ - + diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts deleted file mode 100644 index bd8ba70..0000000 --- a/src/app/app.component.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { TestBed } from '@angular/core/testing'; -import { AppComponent } from './app.component'; - -describe('AppComponent', () => { - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ - AppComponent - ], - }).compileComponents(); - }); - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app).toBeTruthy(); - }); - -}); diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 7871e4c..5fc1a8e 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,63 +1,61 @@ import { Component } from '@angular/core'; import { interval, startWith } from 'rxjs'; import { GoogleAnalyticsService } from './services/google-analytics.service'; -import { Timezone, GetClosestTimezoneFrom } from './timezone/models/timezone.model'; +import { GetClosestTimezoneFrom, Timezone } from './timezone/models/timezone.model'; import { TimezoneService } from './timezone/services/timezone.service'; declare let gtag: Function; @Component({ selector: 'app-root', templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'] + styleUrls: ['./app.component.scss'], }) export class AppComponent { - fiveOclocks: Timezone[] = []; fiveOclock: Timezone | undefined; showAll: boolean = false; - timezones: string[] =[] + timezones: string[] = []; constructor( private timezoneService: TimezoneService, - private googleAnalyticsService: GoogleAnalyticsService, - ){ - const currentTimezone = this.timezoneService.getCurrentTimezone() - if(currentTimezone){ - this.timezones = this.timezoneService.getTimezones() - - var second = interval(1000).pipe(startWith(0)) - - second.subscribe(()=>{ - this.fiveOclocks = []; - this.timezoneService.getCurrentTimeInTimezones(this.timezones).forEach((timezoneObj)=>{ - if(timezoneObj.time?.hour === 17){ - this.fiveOclocks.push(timezoneObj); - } - }) - this.fiveOclock = GetClosestTimezoneFrom(currentTimezone, this.fiveOclocks) - }) - } + private googleAnalyticsService: GoogleAnalyticsService + ) { + const currentTimezone = this.timezoneService.getCurrentTimezone(); + if (currentTimezone) { + this.timezones = this.timezoneService.getTimezones(); + + var second = interval(1000).pipe(startWith(0)); + + second.subscribe(() => { + this.fiveOclocks = []; + this.timezoneService.getCurrentTimeInTimezones(this.timezones).forEach((timezoneObj) => { + if (timezoneObj.time?.hour === 17) { + this.fiveOclocks.push(timezoneObj); + } + }); + this.fiveOclock = GetClosestTimezoneFrom(currentTimezone, this.fiveOclocks); + }); + } } - ngOnInit(): void { - gtag('config', 'G-48B6CKS0V6',{ - 'page_path': '/' + ngOnInit(): void { + gtag('config', 'G-48B6CKS0V6', { + page_path: '/', }); } - toggleView(){ - if(this.showAll){ + toggleView() { + if (this.showAll) { this.googleAnalyticsService.emitEvent('select_content', { - 'event_label' : 'timezone_closest', - }) - }else{ + event_label: 'timezone_closest', + }); + } else { this.googleAnalyticsService.emitEvent('select_content', { - 'event_label' : 'timezone_list', - }) + event_label: 'timezone_list', + }); } - this.showAll = !this.showAll - + this.showAll = !this.showAll; } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 10c3180..f89b78f 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -3,22 +3,13 @@ import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { AppComponent } from './app.component'; -import { TimezoneService } from './timezone/services/timezone.service'; -import { TimezoneListComponent } from './timezone/components/timezone-list/timezone-list.component'; import { GoogleAnalyticsService } from './services/google-analytics.service'; +import { TimezoneListComponent } from './timezone/components/timezone-list/timezone-list.component'; +import { TimezoneService } from './timezone/services/timezone.service'; @NgModule({ - declarations: [ - AppComponent, - TimezoneListComponent, - ], - imports: [ - BrowserModule, - BrowserAnimationsModule, - ], - providers: [ - TimezoneService, - GoogleAnalyticsService - ], - bootstrap: [AppComponent] + declarations: [AppComponent, TimezoneListComponent], + imports: [BrowserModule, BrowserAnimationsModule], + providers: [TimezoneService, GoogleAnalyticsService], + bootstrap: [AppComponent], }) -export class AppModule { } +export class AppModule {} diff --git a/src/app/services/google-analytics.service.spec.ts b/src/app/services/google-analytics.service.spec.ts deleted file mode 100644 index 3329024..0000000 --- a/src/app/services/google-analytics.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { GoogleAnalyticsService } from './google-analytics.service'; - -describe('GoogleAnalyticsService', () => { - let service: GoogleAnalyticsService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(GoogleAnalyticsService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); diff --git a/src/app/services/google-analytics.service.ts b/src/app/services/google-analytics.service.ts index c16bfd2..4aa0203 100644 --- a/src/app/services/google-analytics.service.ts +++ b/src/app/services/google-analytics.service.ts @@ -10,7 +10,6 @@ export class GoogleAnalyticsService { constructor() { } public emitEvent(name: string, event: any) { - gtag('event', name, event) } diff --git a/src/app/timezone/components/timezone-list/timezone-list.component.html b/src/app/timezone/components/timezone-list/timezone-list.component.html index 88559f3..f209945 100644 --- a/src/app/timezone/components/timezone-list/timezone-list.component.html +++ b/src/app/timezone/components/timezone-list/timezone-list.component.html @@ -1,14 +1,21 @@ -
- -
-

{{timezone.name.replace('_', ' ')}}

-

{{timezone.time?.toFormat('tt')}}

-
-
- -
-

{{closest.name.replace('_', ' ')}}

-

{{closest.time?.toFormat('tt')}}

-
-
-
\ No newline at end of file +
+ +
+

{{ timezone.name.replace('_', ' ') }}

+

{{ timezone.time?.toFormat('tt') }}

+
+
+ +
+

{{ closest.name.replace('_', ' ') }}

+

{{ closest.time?.toFormat('tt') }}

+
+
+
diff --git a/src/app/timezone/components/timezone-list/timezone-list.component.scss b/src/app/timezone/components/timezone-list/timezone-list.component.scss index 97e7fa3..b3f1901 100644 --- a/src/app/timezone/components/timezone-list/timezone-list.component.scss +++ b/src/app/timezone/components/timezone-list/timezone-list.component.scss @@ -1,57 +1,57 @@ .container { - display:flex; - align-items: center; - flex-direction: column; - justify-content: center; - width: 100%; - margin: 0; - padding: 0; + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + width: 100%; + margin: 0; + padding: 0; } .single-container { - display:flex; - align-items: center; - flex-direction: column; - justify-content: center; - height: 100%; - width: 100%; - margin: 0; - padding: 0; + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + height: 100%; + width: 100%; + margin: 0; + padding: 0; } -@media (max-width: 350px) { - .timezone { - font-size: 1.0em; - } - - .time { - font-size: 0.5em - } +@media (max-width: 350px) { + .timezone { + font-size: 1em; + } + + .time { + font-size: 0.5em; + } } -@media (min-width:350px) and (max-width: 500px) { - .timezone { - font-size: 1.5em; - } - - .time { - font-size: 1.0em - } +@media (min-width: 350px) and (max-width: 500px) { + .timezone { + font-size: 1.5em; + } + + .time { + font-size: 1em; + } } .timezone { - font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; - color: whitesmoke; - margin-bottom: 0; + font-family: 'Open Sans', 'HelveticaNeue', 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: whitesmoke; + margin-bottom: 0; } .time { - font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; - color: whitesmoke; - margin-top: 0; + font-family: 'Open Sans', 'HelveticaNeue', 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: whitesmoke; + margin-top: 0; } .background { - background: #2e2e2e; - height: 100%; -} \ No newline at end of file + background: #2e2e2e; + height: 100%; +} diff --git a/src/app/timezone/components/timezone-list/timezone-list.component.spec.ts b/src/app/timezone/components/timezone-list/timezone-list.component.spec.ts deleted file mode 100644 index 301adbd..0000000 --- a/src/app/timezone/components/timezone-list/timezone-list.component.spec.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; - -import { TimezoneListComponent } from './timezone-list.component'; - -describe('TimezoneListComponent', () => { - let component: TimezoneListComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [ BrowserAnimationsModule ], - declarations: [ TimezoneListComponent ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(TimezoneListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/timezone/components/timezone-list/timezone-list.component.ts b/src/app/timezone/components/timezone-list/timezone-list.component.ts index 6fbc841..d3f5af6 100644 --- a/src/app/timezone/components/timezone-list/timezone-list.component.ts +++ b/src/app/timezone/components/timezone-list/timezone-list.component.ts @@ -1,4 +1,4 @@ -import { trigger, state, style, transition, animate, query, stagger } from '@angular/animations'; +import { animate, state, style, transition, trigger } from '@angular/animations'; import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'; import { Timezone } from '../../models/timezone.model'; @@ -6,53 +6,53 @@ import { Timezone } from '../../models/timezone.model'; selector: 'app-timezone-list', templateUrl: './timezone-list.component.html', styleUrls: ['./timezone-list.component.scss'], - animations:[ - trigger('displayState',[ - state('show', style({ - opacity : 1 - })), - state('hide', style({ - opacity : 0 - })), + animations: [ + trigger('displayState', [ + state( + 'show', + style({ + opacity: 1, + }) + ), + state( + 'hide', + style({ + opacity: 0, + }) + ), transition('show=>hide', animate('450ms ease-out')), - transition('hide=>show', animate('450ms ease-in')) - ]) - ] + transition('hide=>show', animate('450ms ease-in')), + ]), + ], }) export class TimezoneListComponent implements OnInit, OnChanges { - @Input() timezones: Timezone[] = []; @Input() closest?: Timezone; @Input() showAll: boolean = true; showAllItems = true; - state: string = 'show' - constructor(){} - + state: string = 'show'; + constructor() {} ngOnChanges(changes: SimpleChanges): void { - if(!!changes['showAll']){ - if(changes['showAll'].previousValue != changes['showAll'].currentValue){ - this.state = 'hide' - }else{ - this.state = 'show' + if (!!changes['showAll']) { + if (changes['showAll'].previousValue != changes['showAll'].currentValue) { + this.state = 'hide'; + } else { + this.state = 'show'; } } } - ngOnInit(): void { - } + ngOnInit(): void {} - animationEvent($event: any){ + animationEvent($event: any) { // console.log(`${this.state} has entered ${$event.phaseName}`); - if(this.state == 'hide' && $event.phaseName == 'done'){ + if (this.state == 'hide' && $event.phaseName == 'done') { this.showAllItems = this.showAll; - this.state = 'show' - }else if(this.state == 'show' && $event.phaseName == 'done'){ - + this.state = 'show'; + } else if (this.state == 'show' && $event.phaseName == 'done') { } } - } - diff --git a/src/app/timezone/models/timezone.model.ts b/src/app/timezone/models/timezone.model.ts index ca0b1ae..efec35a 100644 --- a/src/app/timezone/models/timezone.model.ts +++ b/src/app/timezone/models/timezone.model.ts @@ -1,5 +1,4 @@ -import { DateTime } from "luxon"; -import { min } from "rxjs"; +import { DateTime } from 'luxon'; export interface Timezone { name: string; @@ -9,8 +8,8 @@ export interface Timezone { export function TimezoneCompare(a: Timezone, b: Timezone) { if (a.time != undefined && b.time != undefined) { - if (a.time.startOf("day") < b.time.startOf("day")) return 1; - if (a.time.startOf("day") > b.time.startOf("day")) return -1; + if (a.time.startOf('day') < b.time.startOf('day')) return 1; + if (a.time.startOf('day') > b.time.startOf('day')) return -1; return 0; } @@ -26,10 +25,7 @@ export function TimezoneCompare(a: Timezone, b: Timezone) { } // http://www.movable-type.co.uk/scripts/latlong.html -export function GetClosestTimezoneFrom( - timezone: string, - timezones: Timezone[] -): Timezone | undefined { +export function GetClosestTimezoneFrom(timezone: string, timezones: Timezone[]): Timezone | undefined { var location1 = timezoneMap[timezone]; var closestDist = Number.MAX_SAFE_INTEGER; var closestTimezone: Timezone | undefined = undefined; @@ -69,521 +65,521 @@ export interface TimezoneLocation { //TODO: This still needs to be fully populated export var timezoneMap: { [key: string]: TimezoneLocation } = { - "Africa/Abidjan": { lat: 5.359952, long: -4.008256 }, - "Africa/Accra": { lat: 5.603717, long: -0.186964 }, - "Africa/Addis_Ababa": { lat: 9.03314, long: 38.75008 }, - "Africa/Algiers": { lat: 36.753769, long: 3.058756 }, - "Africa/Asmara": { lat: 15.339, long: 38.937111 }, - "Africa/Bamako": { lat: 12.6392, long: -8.0029 }, - "Africa/Bangui": { lat: 4.3947, long: 18.5582 }, - "Africa/Banjul": { lat: 13.4544, long: -16.5753 }, - "Africa/Bissau": { lat: 11.8632, long: -15.5843 }, - "Africa/Blantyre": { lat: -15.7667, long: 35.0168 }, - "Africa/Brazzaville": { lat: -4.2634, long: 15.2429 }, - "Africa/Bujumbura": { lat: -3.3614, long: 29.3599 }, - "Africa/Cairo": { lat: 30.0444, long: 31.2357 }, - "Africa/Casablanca": { lat: 33.5731, long: -7.5898 }, - "Africa/Ceuta": { lat: 35.8894, long: -5.3213 }, - "Africa/Conakry": { lat: 9.6412, long: -13.5784 }, - "Africa/Dakar": { lat: 14.7167, long: -17.4677 }, - "Africa/Dar_es_Salaam": { lat: -6.7924, long: 39.2083 }, - "Africa/Djibouti": { lat: 11.5721, long: 43.1456 }, - "Africa/Douala": { lat: 4.0511, long: 9.7679 }, - "Africa/El_Aaiun": { lat: 27.15, long: -13.1991 }, - "Africa/Freetown": { lat: 8.4657, long: -13.2317 }, - "Africa/Gaborone": { lat: -24.6282, long: 25.9231 }, - "Africa/Harare": { lat: -17.8216, long: 31.0492 }, - "Africa/Johannesburg": { lat: -26.2041, long: 28.0473 }, - "Africa/Juba": { lat: 4.8594, long: 31.5713 }, - "Africa/Kampala": { lat: 0.3476, long: 32.5825 }, - "Africa/Khartoum": { lat: 15.5007, long: 32.5599 }, - "Africa/Kigali": { lat: -1.9579, long: 30.1127 }, - "Africa/Kinshasa": { lat: -4.4419, long: 15.2663 }, - "Africa/Lagos": { lat: 6.5244, long: 3.3792 }, - "Africa/Libreville": { lat: 0.4162, long: 9.4673 }, - "Africa/Lome": { lat: 6.1256, long: 1.2254 }, - "Africa/Luanda": { lat: -8.8147, long: 13.2302 }, - "Africa/Lubumbashi": { lat: -11.6876, long: 27.5026 }, - "Africa/Lusaka": { lat: -15.3875, long: 28.3228 }, - "Africa/Malabo": { lat: 3.755, long: 8.7821 }, - "Africa/Maputo": { lat: -25.9692, long: 32.5732 }, - "Africa/Maseru": { lat: -29.3151, long: 27.4869 }, - "Africa/Mbabane": { lat: -26.3054, long: 31.1367 }, - "Africa/Mogadishu": { lat: 2.0469, long: 45.3182 }, - "Africa/Monrovia": { lat: 6.3156, long: -10.8074 }, - "Africa/Nairobi": { lat: -1.2921, long: 36.8219 }, - "Africa/Ndjamena": { lat: 12.1348, long: 15.0557 }, - "Africa/Niamey": { lat: 13.5116, long: 2.1254 }, - "Africa/Nouakchott": { lat: 18.0735, long: -15.9582 }, - "Africa/Ouagadougou": { lat: 12.3714, long: -1.5197 }, - "Africa/Porto-Novo": { lat: 6.4969, long: 2.6289 }, - "Africa/Sao_Tome": { lat: 0.1864, long: 6.6131 }, - "Africa/Tripoli": { lat: 32.8872, long: 13.1913 }, - "Africa/Tunis": { lat: 36.8065, long: 10.1815 }, - "Africa/Windhoek": { lat: -22.5609, long: 17.0658 }, - "America/Adak": { lat: 51.88, long: -176.6581 }, - "America/Anchorage": { lat: 61.2181, long: -149.9003 }, - "America/Anguilla": { lat: 18.2206, long: -63.0686 }, - "America/Antigua": { lat: 14.5573, long: -90.7332 }, - "America/Araguaina": { lat: -7.1916, long: -48.2095 }, - "America/Argentina/Buenos_Aires": { lat: -34.6037, long: -58.3816 }, - "America/Argentina/Catamarca": { lat: -28.4696, long: -65.7795 }, - "America/Argentina/Cordoba": { lat: -31.4201, long: -64.1888 }, - "America/Argentina/Jujuy": { lat: -24.1858, long: -65.2995 }, - "America/Argentina/La_Rioja": { lat: 42.2871, long: -2.5396 }, - "America/Argentina/Mendoza": { lat: -32.8895, long: -68.8458 }, - "America/Argentina/Rio_Gallegos": { lat: -51.623, long: -69.2168 }, - "America/Argentina/Salta": { lat: -24.7821, long: -65.4232 }, - "America/Argentina/San_Juan": { lat: -31.5351, long: -68.5386 }, - "America/Argentina/San_Luis": { lat: -33.3017, long: -66.3378 }, - "America/Argentina/Tucuman": { lat: -26.8083, long: -65.2176 }, - "America/Argentina/Ushuaia": { lat: -54.8019, long: -68.303 }, - "America/Aruba": { lat: 12.5211, long: -69.9683 }, - "America/Asuncion": { lat: -25.2637, long: -57.5759 }, - "America/Atikokan": { lat: 48.7575, long: -91.6218 }, - "America/Bahia": { lat: -11.4099, long: -41.2809 }, - "America/Bahia_Banderas": { lat: 20.8075, long: -105.2481 }, - "America/Barbados": { lat: 13.1939, long: -59.5432 }, - "America/Belem": { lat: -1.4563, long: -48.5013 }, - "America/Belize": { lat: 17.5046, long: -88.1962 }, - "America/Blanc-Sablon": { lat: 51.4264, long: -57.1313 }, - "America/Boa_Vista": { lat: 2.8206, long: -60.6738 }, - "America/Bogota": { lat: 4.711, long: -74.0721 }, - "America/Boise": { lat: 43.615, long: -116.2023 }, - "America/Cambridge_Bay": { lat: 69.1169, long: -105.0597 }, - "America/Campo_Grande": { lat: -20.4649, long: -54.6218 }, - "America/Cancun": { lat: 21.1619, long: -86.8515 }, - "America/Caracas": { lat: 10.4806, long: -66.9036 }, - "America/Cayenne": { lat: 4.9224, long: -52.3135 }, - "America/Cayman": { lat: 19.3133, long: -81.2546 }, - "America/Chicago": { lat: 41.8781, long: -87.6298 }, - "America/Chihuahua": { lat: 28.633, long: -106.0691 }, - "America/Costa_Rica": { lat: 9.7489, long: -83.7534 }, - "America/Creston": { lat: 41.0586, long: -94.3613 }, - "America/Cuiaba": { lat: -15.5954, long: -56.0926 }, - "America/Curacao": { lat: 12.1696, long: -68.99 }, - "America/Danmarkshavn": { lat: 76.7667, long: -18.6667 }, - "America/Dawson": { lat: 46.8686, long: -99.7515 }, - "America/Dawson_Creek": { lat: 55.7596, long: -120.2377 }, - "America/Denver": { lat: 39.7392, long: -104.9903 }, - "America/Detroit": { lat: 42.3314, long: -83.0458 }, - "America/Dominica": { lat: 15.415, long: -61.371 }, - "America/Edmonton": { lat: 53.5461, long: -113.4938 }, - "America/Eirunepe": { lat: -6.6571, long: -69.8667 }, - "America/El_Salvador": { lat: 13.7942, long: -88.8965 }, - "America/Fort_Nelson": { lat: 58.805, long: -122.6972 }, - "America/Fortaleza": { lat: -3.7327, long: -38.527 }, - "America/Glace_Bay": { lat: 46.1969, long: -59.957 }, - "America/Goose_Bay": { lat: 53.3017, long: -60.3261 }, - "America/Grand_Turk": { lat: 21.4675, long: -71.1389 }, - "America/Grenada": { lat: 12.1165, long: -61.679 }, - "America/Guadeloupe": { lat: 16.265, long: -61.551 }, - "America/Guatemala": { lat: 15.7835, long: -90.2308 }, - "America/Guayaquil": { lat: -2.1894, long: -79.8891 }, - "America/Guyana": { lat: 4.8604, long: -58.9302 }, - "America/Halifax": { lat: 44.6488, long: -63.5752 }, - "America/Havana": { lat: 23.1136, long: -82.3666 }, - "America/Hermosillo": { lat: 29.073, long: -110.9559 }, - "America/Indiana/Indianapolis": { lat: 39.7684, long: -86.1581 }, - "America/Indiana/Knox": { lat: 41.2959, long: -86.625 }, - "America/Indiana/Marengo": { lat: 38.3692, long: -86.3436 }, - "America/Indiana/Petersburg": { lat: 38.492, long: -87.2786 }, - "America/Indiana/Tell_City": { lat: 37.9514, long: -86.7678 }, - "America/Indiana/Vevay": { lat: 38.7478, long: -85.0672 }, - "America/Indiana/Vincennes": { lat: 38.6773, long: -87.5286 }, - "America/Indiana/Winamac": { lat: 41.0514, long: -86.6031 }, - "America/Inuvik": { lat: 68.3607, long: -133.723 }, - "America/Iqaluit": { lat: 63.7467, long: -68.517 }, - "America/Jamaica": { lat: 18.1096, long: -77.2975 }, - "America/Juneau": { lat: 58.3019, long: -134.4197 }, - "America/Kentucky/Louisville": { lat: 38.2527, long: -85.7585 }, - "America/Kentucky/Monticello": { lat: 36.8298, long: -84.8491 }, - "America/Kralendijk": { lat: 12.1443, long: -68.2655 }, - "America/La_Paz": { lat: -16.4897, long: -68.1193 }, - "America/Lima": { lat: -12.0464, long: -77.0428 }, - "America/Los_Angeles": { lat: 34.0522, long: -118.2437 }, - "America/Lower_Princes": { lat: 18.0513, long: -63.0471 }, - "America/Maceio": { lat: -9.666, long: -35.7352 }, - "America/Managua": { lat: 12.115, long: -86.2362 }, - "America/Manaus": { lat: -3.119, long: -60.0217 }, - "America/Marigot": { lat: 18.0675, long: -63.0825 }, - "America/Martinique": { lat: 14.6415, long: -61.0242 }, - "America/Matamoros": { lat: 25.869, long: -97.5027 }, - "America/Mazatlan": { lat: 23.2494, long: -106.4111 }, - "America/Menominee": { lat: 45.1078, long: -87.6143 }, - "America/Merida": { lat: 20.9674, long: -89.5926 }, - "America/Metlakatla": { lat: 55.1292, long: -131.5722 }, - "America/Mexico_City": { lat: 19.4326, long: -99.1332 }, - "America/Miquelon": { lat: 46.0878, long: -64.7782 }, - "America/Moncton": { lat: 46.0878, long: -64.7782 }, - "America/Monterrey": { lat: 46.8852, long: -56.3159 }, - "America/Montevideo": { lat: -34.9011, long: -56.1645 }, - "America/Montserrat": { lat: 16.7425, long: -62.1874 }, - "America/Nassau": { lat: 25.0443, long: -77.3504 }, - "America/New_York": { lat: 40.7128, long: -74.006 }, - "America/Nipigon": { lat: 49.0125, long: -88.2633 }, - "America/Nome": { lat: 64.5011, long: -165.4064 }, - "America/Noronha": { lat: -3.8576, long: -32.4297 }, - "America/North_Dakota/Beulah": { lat: 47.2633, long: -101.7779 }, - "America/North_Dakota/Center": { lat: 47.1164, long: -101.2996 }, - "America/North_Dakota/New_Salem": { lat: 46.845, long: -101.4113 }, - "America/Nuuk": { lat: 64.1814, long: -51.6941 }, - "America/Ojinaga": { lat: 29.5459, long: -104.4083 }, - "America/Panama": { lat: 8.538, long: -80.7821 }, - "America/Pangnirtung": { lat: 66.1466, long: -65.7012 }, - "America/Paramaribo": { lat: 5.852, long: -55.2038 }, - "America/Phoenix": { lat: 33.4484, long: -112.074 }, - "America/Port-au-Prince": { lat: 18.5944, long: -72.3074 }, - "America/Port_of_Spain": { lat: 10.6603, long: -61.5086 }, - "America/Porto_Velho": { lat: -8.7636, long: -63.8972 }, - "America/Puerto_Rico": { lat: 18.2208, long: -66.5901 }, - "America/Punta_Arenas": { lat: -53.1638, long: -70.9171 }, - "America/Rainy_River": { lat: 48.7217, long: -94.5695 }, - "America/Rankin_Inlet": { lat: 62.8084, long: -92.0853 }, - "America/Recife": { lat: 8.0577, long: -34.883 }, - "America/Regina": { lat: 50.4452, long: -104.6189 }, - "America/Resolute": { lat: 74.6973, long: -94.8297 }, - "America/Rio_Branco": { lat: 9.974, long: -67.8098 }, - "America/Santarem": { lat: -2.4407, long: -54.7136 }, - "America/Santiago": { lat: 33.4489, long: -70.6693 }, - "America/Santo_Domingo": { lat: 18.4861, long: -69.9312 }, - "America/Sao_Paulo": { lat: -23.5558, long: -46.6396 }, - "America/Scoresbysund": { lat: 71.0036, long: -22.2862 }, - "America/Sitka": { lat: 57.0531, long: -135.33 }, - "America/St_Barthelemy": { lat: 17.89618, long: -62.84978 }, - "America/St_Johns": { lat: 47.5615, long: -52.7126 }, - "America/St_Kitts": { lat: 17.3578, long: -62.783 }, - "America/St_Lucia": { lat: 13.9094, long: -60.9789 }, - "America/St_Thomas": { lat: 18.3381, long: -64.8941 }, - "America/St_Vincent": { lat: 12.9843, long: -61.2872 }, - "America/Swift_Current": { lat: 50.2851, long: -107.7972 }, - "America/Tegucigalpa": { lat: 14.065, long: -87.1715 }, - "America/Thule": { lat: 77.4228, long: -68.2423 }, - "America/Thunder_Bay": { lat: 48.3809, long: -89.2477 }, - "America/Tijuana": { lat: 32.5149, long: -117.0382 }, - "America/Toronto": { lat: 43.6532, long: -79.3832 }, - "America/Tortola": { lat: 18.4335, long: -64.6333 }, - "America/Vancouver": { lat: 49.2827, long: -123.1207 }, - "America/Whitehorse": { lat: 60.7212, long: -135.0568 }, - "America/Winnipeg": { lat: 49.8951, long: -97.1384 }, - "America/Yakutat": { lat: 59.5469, long: -139.7272 }, - "America/Yellowknife": { lat: 62.454, long: -114.3718 }, - "Antarctica/Casey": { lat: -66.2821, long: 110.5285 }, - "Antarctica/Davis": { lat: -68.5762, long: 77.9696 }, - "Antarctica/DumontDUrville": { lat: -66.663, long: 140.0019 }, - "Antarctica/Macquarie": { lat: -54.6208, long: 158.8556 }, - "Antarctica/Mawson": { lat: -67.6033, long: 62.8742 }, - "Antarctica/McMurdo": { lat: -77.8419, long: 166.6863 }, - "Antarctica/Palmer": { lat: -64.7743, long: -64.0538 }, - "Antarctica/Rothera": { lat: -67.5666644, long: -68.1333328 }, - "Antarctica/Syowa": { lat: -69.0044, long: 39.5816 }, - "Antarctica/Troll": { lat: -72.0166, long: 2.5333 }, - "Antarctica/Vostok": { lat: -78.4645, long: 106.8339 }, - "Arctic/Longyearbyen": { lat: 78.2232, long: 15.6267 }, - "Asia/Aden": { lat: 12.7855, long: 45.0187 }, - "Asia/Almaty": { lat: 43.222, long: 76.8512 }, - "Asia/Amman": { lat: 31.9539, long: 35.9106 }, - "Asia/Anadyr": { lat: 64.7337, long: 177.4968 }, - "Asia/Aqtau": { lat: 43.6588, long: 51.1975 }, - "Asia/Aqtobe": { lat: 50.2839, long: 57.167 }, - "Asia/Ashgabat": { lat: 37.9601, long: 58.3261 }, - "Asia/Atyrau": { lat: 47.0945, long: 51.9238 }, - "Asia/Baghdad": { lat: 33.3152, long: 44.3661 }, - "Asia/Bahrain": { lat: 26.0667, long: 50.5577 }, - "Asia/Baku": { lat: 40.4093, long: 49.8671 }, - "Asia/Bangkok": { lat: 13.7563, long: 100.5018 }, - "Asia/Barnaul": { lat: 53.3497, long: 83.7836 }, - "Asia/Beirut": { lat: 33.8938, long: 35.5018 }, - "Asia/Bishkek": { lat: 42.8746, long: 74.5698 }, - "Asia/Brunei": { lat: 4.5353, long: 114.7277 }, - "Asia/Chita": { lat: 52.0515, long: 113.4712 }, - "Asia/Choibalsan": { lat: 48.0951, long: 114.5356 }, - "Asia/Colombo": { lat: 6.9271, long: 79.8612 }, - "Asia/Damascus": { lat: 33.5138, long: 36.2765 }, - "Asia/Dhaka": { lat: 23.8103, long: 90.4125 }, - "Asia/Dili": { lat: -8.5569, long: 125.5603 }, - "Asia/Dubai": { lat: 25.2048, long: 55.2708 }, - "Asia/Dushanbe": { lat: 38.5598, long: 68.787 }, - "Asia/Famagusta": { lat: 35.1149, long: 33.9192 }, - "Asia/Gaza": { lat: 31.3547, long: 34.3088 }, - "Asia/Hebron": { lat: 31.5326, long: 35.0998 }, - "Asia/Ho_Chi_Minh": { lat: 10.8231, long: 106.6297 }, - "Asia/Hong_Kong": { lat: 22.3193, long: 114.1694 }, - "Asia/Hovd": { lat: 47.9795, long: 91.6348 }, - "Asia/Irkutsk": { lat: 52.2855, long: 104.289 }, - "Asia/Jakarta": { lat: -6.2088, long: 106.8456 }, - "Asia/Jayapura": { lat: -2.5916, long: 140.669 }, - "Asia/Jerusalem": { lat: 31.7683, long: 35.2137 }, - "Asia/Kabul": { lat: 34.5553, long: 69.2075 }, - "Asia/Kamchatka": { lat: 56.1327, long: 159.5314 }, - "Asia/Karachi": { lat: 24.8607, long: 67.0011 }, - "Asia/Kathmandu": { lat: 27.7172, long: 85.324 }, - "Asia/Khandyga": { lat: 62.6564, long: 135.554 }, - "Asia/Kolkata": { lat: 22.5726, long: 88.3639 }, - "Asia/Krasnoyarsk": { lat: 56.0153, long: 92.8932 }, - "Asia/Kuala_Lumpur": { lat: 3.139, long: 101.6869 }, - "Asia/Kuching": { lat: 1.5535, long: 110.3593 }, - "Asia/Kuwait": { lat: 29.3117, long: 47.4818 }, - "Asia/Macau": { lat: 22.1987, long: 113.5439 }, - "Asia/Magadan": { lat: 59.5594, long: 150.8128 }, - "Asia/Makassar": { lat: -5.1477, long: 119.4327 }, - "Asia/Manila": { lat: 14.5995, long: 120.9842 }, - "Asia/Muscat": { lat: 23.588, long: 58.3829 }, - "Asia/Nicosia": { lat: 35.1856, long: 33.3823 }, - "Asia/Novokuznetsk": { lat: 53.7596, long: 87.1216 }, - "Asia/Novosibirsk": { lat: 54.9833, long: 82.8964 }, - "Asia/Omsk": { lat: 54.9914, long: 73.3645 }, - "Asia/Oral": { lat: 51.2278, long: 51.3865 }, - "Asia/Phnom_Penh": { lat: 11.5564, long: 104.9282 }, - "Asia/Pontianak": { lat: -0.0263, long: 109.3425 }, - "Asia/Pyongyang": { lat: 39.0738, long: 125.8198 }, - "Asia/Qatar": { lat: 25.3548, long: 51.1839 }, - "Asia/Qostanay": { lat: 53.2198, long: 63.6354 }, - "Asia/Qyzylorda": { lat: 44.8488, long: 65.4823 }, - "Asia/Riyadh": { lat: 24.7136, long: 46.6753 }, - "Asia/Sakhalin": { lat: 50.691, long: 142.9506 }, - "Asia/Samarkand": { lat: 39.627, long: 66.975 }, - "Asia/Seoul": { lat: 37.5665, long: 126.978 }, - "Asia/Shanghai": { lat: 31.2304, long: 121.4737 }, - "Asia/Singapore": { lat: 1.3521, long: 103.8198 }, - "Asia/Srednekolymsk": { lat: 67.4373, long: 153.7287 }, - "Asia/Taipei": { lat: 25.033, long: 121.5654 }, - "Asia/Tashkent": { lat: 41.2995, long: 69.2401 }, - "Asia/Tbilisi": { lat: 41.7151, long: 44.8271 }, - "Asia/Tehran": { lat: 35.6892, long: 35.6892 }, - "Asia/Thimphu": { lat: 27.4712, long: 89.6339 }, - "Asia/Tokyo": { lat: 35.6762, long: 139.6503 }, - "Asia/Tomsk": { lat: 56.4884, long: 84.948 }, - "Asia/Ulaanbaatar": { lat: 47.8864, long: 106.9057 }, - "Asia/Urumqi": { lat: 43.8266, long: 87.6169 }, - "Asia/Ust-Nera": { lat: 64.5672, long: 143.2265 }, - "Asia/Vientiane": { lat: 17.9757, long: 102.6331 }, - "Asia/Vladivostok": { lat: 43.1332, long: 131.9113 }, - "Asia/Yakutsk": { lat: 62.0397, long: 129.7422 }, - "Asia/Yangon": { lat: 16.8409, long: 96.1735 }, - "Asia/Yekaterinburg": { lat: 56.8431, long: 60.6454 }, - "Asia/Yerevan": { lat: 40.1872, long: 44.5152 }, - "Atlantic/Azores": { lat: 38.7216, long: -27.2206 }, - "Atlantic/Bermuda": { lat: 32.2937, long: -64.7755 }, - "Atlantic/Canary": { lat: 28.2916, long: -16.6291 }, - "Atlantic/Cape_Verde": { lat: 16.4969, long: -23.1918 }, - "Atlantic/Faroe": { lat: 61.8925022, long: -6.9729703 }, - "Atlantic/Madeira": { lat: 32.7607, long: -16.9595 }, - "Atlantic/Reykjavik": { lat: 65.4215, long: -19.0346 }, - "Atlantic/South_Georgia": { lat: -55.9654, long: -29.9202 }, - "Atlantic/St_Helena": { lat: -23.8689, long: -9.1899 }, - "Atlantic/Stanley": { lat: -51.6882, long: 59.8139 }, - "Australia/Adelaide": { lat: -34.9285, long: 138.6007 }, - "Australia/Brisbane": { lat: -27.4705, long: 153.026 }, - "Australia/Broken_Hill": { lat: -31.9596, long: 141.4608 }, - "Australia/Darwin": { lat: -12.462827, long: 130.841782 }, - "Australia/Eucla": { lat: -35.306179, long: 149.126419 }, - "Australia/Hobart": { lat: -42.880554, long: 147.324997 }, - "Australia/Lindeman": { lat: -35.306179, long: 149.126419 }, - "Australia/Lord_Howe": { lat: -31.555326, long: 159.082121 }, - "Australia/Melbourne": { lat: -37.8136, long: 144.9631 }, - "Australia/Perth": { lat: -31.9523, long: 115.8613 }, - "Australia/Sydney": { lat: -33.8688, long: 151.2093 }, - "Europe/Amsterdam": { lat: 52.3676, long: 4.9041 }, - "Europe/Andorra": { lat: 42.5063, long: 1.5218 }, - "Europe/Astrakhan": { lat: 46.3586, long: 48.0569 }, - "Europe/Athens": { lat: 37.9838, long: 23.7275 }, - "Europe/Belgrade": { lat: 44.8125, long: 20.4612 }, - "Europe/Berlin": { lat: 52.52, long: 13.405 }, - "Europe/Bratislava": { lat: 48.1486, long: 17.1077 }, - "Europe/Brussels": { lat: 50.8476, long: 4.3572 }, - "Europe/Bucharest": { lat: 44.4268, long: 26.1025 }, - "Europe/Budapest": { lat: 47.4979, long: 19.0402 }, - "Europe/Busingen": { lat: 47.697, long: 8.6904 }, - "Europe/Chisinau": { lat: 47.0105, long: 28.8638 }, - "Europe/Copenhagen": { lat: 55.6761, long: 12.5683 }, - "Europe/Dublin": { lat: 53.3498, long: -6.2603 }, - "Europe/Gibraltar": { lat: 36.1408, long: -5.3536 }, - "Europe/Guernsey": { lat: 49.4482, long: -2.5895 }, - "Europe/Helsinki": { lat: 60.1699, long: 24.9384 }, - "Europe/Isle_of_Man": { lat: 54.2361, long: -4.5481 }, - "Europe/Istanbul": { lat: 41.0082, long: 28.9784 }, - "Europe/Jersey": { lat: 49.2138, long: -2.1358 }, - "Europe/Kaliningrad": { lat: 54.7104, long: 20.4522 }, - "Europe/Kiev": { lat: 50.4501, long: 30.5234 }, - "Europe/Kirov": { lat: 58.603, long: 49.6679 }, - "Europe/Lisbon": { lat: 38.7223, long: -9.1393 }, - "Europe/Ljubljana": { lat: 46.0569, long: 14.5058 }, - "Europe/London": { lat: 51.5072, long: -0.1276 }, - "Europe/Luxembourg": { lat: 49.8153, long: 6.1296 }, - "Europe/Madrid": { lat: 40.4168, long: -3.7038 }, - "Europe/Malta": { lat: 35.9375, long: 14.3754 }, - "Europe/Mariehamn": { lat: 60.0971, long: 19.9348 }, - "Europe/Minsk": { lat: 53.9006, long: 27.559 }, - "Europe/Monaco": { lat: 3.7384, long: 7.4246 }, - "Europe/Moscow": { lat: 55.7558, long: 37.6173 }, - "Europe/Oslo": { lat: 59.9139, long: 10.7522 }, - "Europe/Paris": { lat: 48.8566, long: 2.3522 }, - "Europe/Podgorica": { lat: 42.4304, long: 19.2594 }, - "Europe/Prague": { lat: 50.0755, long: 14.4378 }, - "Europe/Riga": { lat: 56.9496, long: 24.1052 }, - "Europe/Rome": { lat: 41.9028, long: 12.4964 }, - "Europe/Samara": { lat: 53.2038, long: 50.1606 }, - "Europe/San_Marino": { lat: 43.9424, long: 12.4578 }, - "Europe/Sarajevo": { lat: 43.8563, long: 18.4131 }, - "Europe/Saratov": { lat: 51.5462, long: 46.0154 }, - "Europe/Simferopol": { lat: 44.9521, long: 34.1024 }, - "Europe/Skopje": { lat: 41.9981, long: 21.4254 }, - "Europe/Sofia": { lat: 42.6977, long: 23.3219 }, - "Europe/Stockholm": { lat: 59.3293, long: 18.0686 }, - "Europe/Tallinn": { lat: 59.437, long: 24.7536 }, - "Europe/Tirane": { lat: 41.3275, long: 19.8187 }, - "Europe/Ulyanovsk": { lat: 54.3187, long: 48.3978 }, - "Europe/Uzhgorod": { lat: 48.6208, long: 22.2879 }, - "Europe/Vaduz": { lat: 47.141, long: 9.5209 }, - "Europe/Vatican": { lat: 41.9029, long: 12.4534 }, - "Europe/Vienna": { lat: 48.2082, long: 16.3738 }, - "Europe/Vilnius": { lat: 54.6872, long: 25.2797 }, - "Europe/Volgograd": { lat: 48.708, long: 44.5133 }, - "Europe/Warsaw": { lat: 52.2297, long: 21.0122 }, - "Europe/Zagreb": { lat: 45.815, long: 15.9819 }, - "Europe/Zaporozhye": { lat: 47.8388, long: 35.1396 }, - "Europe/Zurich": { lat: 47.3769, long: 8.5417 }, - "Indian/Antananarivo": { lat: -18.8792, long: 47.5079 }, - "Indian/Chagos": { lat: -4.416665, long: 72.5999976 }, - "Indian/Christmas": { lat: -10.4475, long: 105.6904 }, - "Indian/Cocos": { lat: -12.1642, long: 96.871 }, - "Indian/Comoro": { lat: -11.6455, long: 43.3333 }, - "Indian/Kerguelen": { lat: -49.3948, long: 69.3545 }, - "Indian/Mahe": { lat: -4.6827, long: 55.4804 }, - "Indian/Maldives": { lat: 3.2028, long: 73.2207 }, - "Indian/Mauritius": { lat: -20.3484, long: 57.5522 }, - "Indian/Mayotte": { lat: -12.8275, long: 45.1662 }, - "Indian/Reunion": { lat: -21.1151, long: 55.5364 }, - "Pacific/Apia": { lat: -13.8507, long: -171.7514 }, - "Pacific/Auckland": { lat: -36.8509, long: 174.7645 }, - "Pacific/Bougainville": { lat: -6.3754, long: 155.3807 }, - "Pacific/Chatham": { lat: -44.0058, long: -176.5401 }, - "Pacific/Chuuk": { lat: 7.417, long: 151.783 }, - "Pacific/Easter": { lat: -27.1127, long: -109.3497 }, - "Pacific/Efate": { lat: -17.6577, long: 168.4297 }, - "Pacific/Fakaofo": { lat: -9.3803, long: -171.2188 }, - "Pacific/Fiji": { lat: -17.7134, long: 178.065 }, - "Pacific/Funafuti": { lat: -8.5211, long: 179.1962 }, - "Pacific/Galapagos": { lat: -0.7772, long: -91.1425 }, - "Pacific/Gambier": { lat: 40.3756, long: -82.3971 }, - "Pacific/Guadalcanal": { lat: -9.5773, long: 160.1456 }, - "Pacific/Guam": { lat: 13.4443, long: 144.7937 }, - "Pacific/Honolulu": { lat: 21.3069, long: -157.8583 }, + 'Africa/Abidjan': { lat: 5.359952, long: -4.008256 }, + 'Africa/Accra': { lat: 5.603717, long: -0.186964 }, + 'Africa/Addis_Ababa': { lat: 9.03314, long: 38.75008 }, + 'Africa/Algiers': { lat: 36.753769, long: 3.058756 }, + 'Africa/Asmara': { lat: 15.339, long: 38.937111 }, + 'Africa/Bamako': { lat: 12.6392, long: -8.0029 }, + 'Africa/Bangui': { lat: 4.3947, long: 18.5582 }, + 'Africa/Banjul': { lat: 13.4544, long: -16.5753 }, + 'Africa/Bissau': { lat: 11.8632, long: -15.5843 }, + 'Africa/Blantyre': { lat: -15.7667, long: 35.0168 }, + 'Africa/Brazzaville': { lat: -4.2634, long: 15.2429 }, + 'Africa/Bujumbura': { lat: -3.3614, long: 29.3599 }, + 'Africa/Cairo': { lat: 30.0444, long: 31.2357 }, + 'Africa/Casablanca': { lat: 33.5731, long: -7.5898 }, + 'Africa/Ceuta': { lat: 35.8894, long: -5.3213 }, + 'Africa/Conakry': { lat: 9.6412, long: -13.5784 }, + 'Africa/Dakar': { lat: 14.7167, long: -17.4677 }, + 'Africa/Dar_es_Salaam': { lat: -6.7924, long: 39.2083 }, + 'Africa/Djibouti': { lat: 11.5721, long: 43.1456 }, + 'Africa/Douala': { lat: 4.0511, long: 9.7679 }, + 'Africa/El_Aaiun': { lat: 27.15, long: -13.1991 }, + 'Africa/Freetown': { lat: 8.4657, long: -13.2317 }, + 'Africa/Gaborone': { lat: -24.6282, long: 25.9231 }, + 'Africa/Harare': { lat: -17.8216, long: 31.0492 }, + 'Africa/Johannesburg': { lat: -26.2041, long: 28.0473 }, + 'Africa/Juba': { lat: 4.8594, long: 31.5713 }, + 'Africa/Kampala': { lat: 0.3476, long: 32.5825 }, + 'Africa/Khartoum': { lat: 15.5007, long: 32.5599 }, + 'Africa/Kigali': { lat: -1.9579, long: 30.1127 }, + 'Africa/Kinshasa': { lat: -4.4419, long: 15.2663 }, + 'Africa/Lagos': { lat: 6.5244, long: 3.3792 }, + 'Africa/Libreville': { lat: 0.4162, long: 9.4673 }, + 'Africa/Lome': { lat: 6.1256, long: 1.2254 }, + 'Africa/Luanda': { lat: -8.8147, long: 13.2302 }, + 'Africa/Lubumbashi': { lat: -11.6876, long: 27.5026 }, + 'Africa/Lusaka': { lat: -15.3875, long: 28.3228 }, + 'Africa/Malabo': { lat: 3.755, long: 8.7821 }, + 'Africa/Maputo': { lat: -25.9692, long: 32.5732 }, + 'Africa/Maseru': { lat: -29.3151, long: 27.4869 }, + 'Africa/Mbabane': { lat: -26.3054, long: 31.1367 }, + 'Africa/Mogadishu': { lat: 2.0469, long: 45.3182 }, + 'Africa/Monrovia': { lat: 6.3156, long: -10.8074 }, + 'Africa/Nairobi': { lat: -1.2921, long: 36.8219 }, + 'Africa/Ndjamena': { lat: 12.1348, long: 15.0557 }, + 'Africa/Niamey': { lat: 13.5116, long: 2.1254 }, + 'Africa/Nouakchott': { lat: 18.0735, long: -15.9582 }, + 'Africa/Ouagadougou': { lat: 12.3714, long: -1.5197 }, + 'Africa/Porto-Novo': { lat: 6.4969, long: 2.6289 }, + 'Africa/Sao_Tome': { lat: 0.1864, long: 6.6131 }, + 'Africa/Tripoli': { lat: 32.8872, long: 13.1913 }, + 'Africa/Tunis': { lat: 36.8065, long: 10.1815 }, + 'Africa/Windhoek': { lat: -22.5609, long: 17.0658 }, + 'America/Adak': { lat: 51.88, long: -176.6581 }, + 'America/Anchorage': { lat: 61.2181, long: -149.9003 }, + 'America/Anguilla': { lat: 18.2206, long: -63.0686 }, + 'America/Antigua': { lat: 14.5573, long: -90.7332 }, + 'America/Araguaina': { lat: -7.1916, long: -48.2095 }, + 'America/Argentina/Buenos_Aires': { lat: -34.6037, long: -58.3816 }, + 'America/Argentina/Catamarca': { lat: -28.4696, long: -65.7795 }, + 'America/Argentina/Cordoba': { lat: -31.4201, long: -64.1888 }, + 'America/Argentina/Jujuy': { lat: -24.1858, long: -65.2995 }, + 'America/Argentina/La_Rioja': { lat: 42.2871, long: -2.5396 }, + 'America/Argentina/Mendoza': { lat: -32.8895, long: -68.8458 }, + 'America/Argentina/Rio_Gallegos': { lat: -51.623, long: -69.2168 }, + 'America/Argentina/Salta': { lat: -24.7821, long: -65.4232 }, + 'America/Argentina/San_Juan': { lat: -31.5351, long: -68.5386 }, + 'America/Argentina/San_Luis': { lat: -33.3017, long: -66.3378 }, + 'America/Argentina/Tucuman': { lat: -26.8083, long: -65.2176 }, + 'America/Argentina/Ushuaia': { lat: -54.8019, long: -68.303 }, + 'America/Aruba': { lat: 12.5211, long: -69.9683 }, + 'America/Asuncion': { lat: -25.2637, long: -57.5759 }, + 'America/Atikokan': { lat: 48.7575, long: -91.6218 }, + 'America/Bahia': { lat: -11.4099, long: -41.2809 }, + 'America/Bahia_Banderas': { lat: 20.8075, long: -105.2481 }, + 'America/Barbados': { lat: 13.1939, long: -59.5432 }, + 'America/Belem': { lat: -1.4563, long: -48.5013 }, + 'America/Belize': { lat: 17.5046, long: -88.1962 }, + 'America/Blanc-Sablon': { lat: 51.4264, long: -57.1313 }, + 'America/Boa_Vista': { lat: 2.8206, long: -60.6738 }, + 'America/Bogota': { lat: 4.711, long: -74.0721 }, + 'America/Boise': { lat: 43.615, long: -116.2023 }, + 'America/Cambridge_Bay': { lat: 69.1169, long: -105.0597 }, + 'America/Campo_Grande': { lat: -20.4649, long: -54.6218 }, + 'America/Cancun': { lat: 21.1619, long: -86.8515 }, + 'America/Caracas': { lat: 10.4806, long: -66.9036 }, + 'America/Cayenne': { lat: 4.9224, long: -52.3135 }, + 'America/Cayman': { lat: 19.3133, long: -81.2546 }, + 'America/Chicago': { lat: 41.8781, long: -87.6298 }, + 'America/Chihuahua': { lat: 28.633, long: -106.0691 }, + 'America/Costa_Rica': { lat: 9.7489, long: -83.7534 }, + 'America/Creston': { lat: 41.0586, long: -94.3613 }, + 'America/Cuiaba': { lat: -15.5954, long: -56.0926 }, + 'America/Curacao': { lat: 12.1696, long: -68.99 }, + 'America/Danmarkshavn': { lat: 76.7667, long: -18.6667 }, + 'America/Dawson': { lat: 46.8686, long: -99.7515 }, + 'America/Dawson_Creek': { lat: 55.7596, long: -120.2377 }, + 'America/Denver': { lat: 39.7392, long: -104.9903 }, + 'America/Detroit': { lat: 42.3314, long: -83.0458 }, + 'America/Dominica': { lat: 15.415, long: -61.371 }, + 'America/Edmonton': { lat: 53.5461, long: -113.4938 }, + 'America/Eirunepe': { lat: -6.6571, long: -69.8667 }, + 'America/El_Salvador': { lat: 13.7942, long: -88.8965 }, + 'America/Fort_Nelson': { lat: 58.805, long: -122.6972 }, + 'America/Fortaleza': { lat: -3.7327, long: -38.527 }, + 'America/Glace_Bay': { lat: 46.1969, long: -59.957 }, + 'America/Goose_Bay': { lat: 53.3017, long: -60.3261 }, + 'America/Grand_Turk': { lat: 21.4675, long: -71.1389 }, + 'America/Grenada': { lat: 12.1165, long: -61.679 }, + 'America/Guadeloupe': { lat: 16.265, long: -61.551 }, + 'America/Guatemala': { lat: 15.7835, long: -90.2308 }, + 'America/Guayaquil': { lat: -2.1894, long: -79.8891 }, + 'America/Guyana': { lat: 4.8604, long: -58.9302 }, + 'America/Halifax': { lat: 44.6488, long: -63.5752 }, + 'America/Havana': { lat: 23.1136, long: -82.3666 }, + 'America/Hermosillo': { lat: 29.073, long: -110.9559 }, + 'America/Indiana/Indianapolis': { lat: 39.7684, long: -86.1581 }, + 'America/Indiana/Knox': { lat: 41.2959, long: -86.625 }, + 'America/Indiana/Marengo': { lat: 38.3692, long: -86.3436 }, + 'America/Indiana/Petersburg': { lat: 38.492, long: -87.2786 }, + 'America/Indiana/Tell_City': { lat: 37.9514, long: -86.7678 }, + 'America/Indiana/Vevay': { lat: 38.7478, long: -85.0672 }, + 'America/Indiana/Vincennes': { lat: 38.6773, long: -87.5286 }, + 'America/Indiana/Winamac': { lat: 41.0514, long: -86.6031 }, + 'America/Inuvik': { lat: 68.3607, long: -133.723 }, + 'America/Iqaluit': { lat: 63.7467, long: -68.517 }, + 'America/Jamaica': { lat: 18.1096, long: -77.2975 }, + 'America/Juneau': { lat: 58.3019, long: -134.4197 }, + 'America/Kentucky/Louisville': { lat: 38.2527, long: -85.7585 }, + 'America/Kentucky/Monticello': { lat: 36.8298, long: -84.8491 }, + 'America/Kralendijk': { lat: 12.1443, long: -68.2655 }, + 'America/La_Paz': { lat: -16.4897, long: -68.1193 }, + 'America/Lima': { lat: -12.0464, long: -77.0428 }, + 'America/Los_Angeles': { lat: 34.0522, long: -118.2437 }, + 'America/Lower_Princes': { lat: 18.0513, long: -63.0471 }, + 'America/Maceio': { lat: -9.666, long: -35.7352 }, + 'America/Managua': { lat: 12.115, long: -86.2362 }, + 'America/Manaus': { lat: -3.119, long: -60.0217 }, + 'America/Marigot': { lat: 18.0675, long: -63.0825 }, + 'America/Martinique': { lat: 14.6415, long: -61.0242 }, + 'America/Matamoros': { lat: 25.869, long: -97.5027 }, + 'America/Mazatlan': { lat: 23.2494, long: -106.4111 }, + 'America/Menominee': { lat: 45.1078, long: -87.6143 }, + 'America/Merida': { lat: 20.9674, long: -89.5926 }, + 'America/Metlakatla': { lat: 55.1292, long: -131.5722 }, + 'America/Mexico_City': { lat: 19.4326, long: -99.1332 }, + 'America/Miquelon': { lat: 46.0878, long: -64.7782 }, + 'America/Moncton': { lat: 46.0878, long: -64.7782 }, + 'America/Monterrey': { lat: 46.8852, long: -56.3159 }, + 'America/Montevideo': { lat: -34.9011, long: -56.1645 }, + 'America/Montserrat': { lat: 16.7425, long: -62.1874 }, + 'America/Nassau': { lat: 25.0443, long: -77.3504 }, + 'America/New_York': { lat: 40.7128, long: -74.006 }, + 'America/Nipigon': { lat: 49.0125, long: -88.2633 }, + 'America/Nome': { lat: 64.5011, long: -165.4064 }, + 'America/Noronha': { lat: -3.8576, long: -32.4297 }, + 'America/North_Dakota/Beulah': { lat: 47.2633, long: -101.7779 }, + 'America/North_Dakota/Center': { lat: 47.1164, long: -101.2996 }, + 'America/North_Dakota/New_Salem': { lat: 46.845, long: -101.4113 }, + 'America/Nuuk': { lat: 64.1814, long: -51.6941 }, + 'America/Ojinaga': { lat: 29.5459, long: -104.4083 }, + 'America/Panama': { lat: 8.538, long: -80.7821 }, + 'America/Pangnirtung': { lat: 66.1466, long: -65.7012 }, + 'America/Paramaribo': { lat: 5.852, long: -55.2038 }, + 'America/Phoenix': { lat: 33.4484, long: -112.074 }, + 'America/Port-au-Prince': { lat: 18.5944, long: -72.3074 }, + 'America/Port_of_Spain': { lat: 10.6603, long: -61.5086 }, + 'America/Porto_Velho': { lat: -8.7636, long: -63.8972 }, + 'America/Puerto_Rico': { lat: 18.2208, long: -66.5901 }, + 'America/Punta_Arenas': { lat: -53.1638, long: -70.9171 }, + 'America/Rainy_River': { lat: 48.7217, long: -94.5695 }, + 'America/Rankin_Inlet': { lat: 62.8084, long: -92.0853 }, + 'America/Recife': { lat: 8.0577, long: -34.883 }, + 'America/Regina': { lat: 50.4452, long: -104.6189 }, + 'America/Resolute': { lat: 74.6973, long: -94.8297 }, + 'America/Rio_Branco': { lat: 9.974, long: -67.8098 }, + 'America/Santarem': { lat: -2.4407, long: -54.7136 }, + 'America/Santiago': { lat: 33.4489, long: -70.6693 }, + 'America/Santo_Domingo': { lat: 18.4861, long: -69.9312 }, + 'America/Sao_Paulo': { lat: -23.5558, long: -46.6396 }, + 'America/Scoresbysund': { lat: 71.0036, long: -22.2862 }, + 'America/Sitka': { lat: 57.0531, long: -135.33 }, + 'America/St_Barthelemy': { lat: 17.89618, long: -62.84978 }, + 'America/St_Johns': { lat: 47.5615, long: -52.7126 }, + 'America/St_Kitts': { lat: 17.3578, long: -62.783 }, + 'America/St_Lucia': { lat: 13.9094, long: -60.9789 }, + 'America/St_Thomas': { lat: 18.3381, long: -64.8941 }, + 'America/St_Vincent': { lat: 12.9843, long: -61.2872 }, + 'America/Swift_Current': { lat: 50.2851, long: -107.7972 }, + 'America/Tegucigalpa': { lat: 14.065, long: -87.1715 }, + 'America/Thule': { lat: 77.4228, long: -68.2423 }, + 'America/Thunder_Bay': { lat: 48.3809, long: -89.2477 }, + 'America/Tijuana': { lat: 32.5149, long: -117.0382 }, + 'America/Toronto': { lat: 43.6532, long: -79.3832 }, + 'America/Tortola': { lat: 18.4335, long: -64.6333 }, + 'America/Vancouver': { lat: 49.2827, long: -123.1207 }, + 'America/Whitehorse': { lat: 60.7212, long: -135.0568 }, + 'America/Winnipeg': { lat: 49.8951, long: -97.1384 }, + 'America/Yakutat': { lat: 59.5469, long: -139.7272 }, + 'America/Yellowknife': { lat: 62.454, long: -114.3718 }, + 'Antarctica/Casey': { lat: -66.2821, long: 110.5285 }, + 'Antarctica/Davis': { lat: -68.5762, long: 77.9696 }, + 'Antarctica/DumontDUrville': { lat: -66.663, long: 140.0019 }, + 'Antarctica/Macquarie': { lat: -54.6208, long: 158.8556 }, + 'Antarctica/Mawson': { lat: -67.6033, long: 62.8742 }, + 'Antarctica/McMurdo': { lat: -77.8419, long: 166.6863 }, + 'Antarctica/Palmer': { lat: -64.7743, long: -64.0538 }, + 'Antarctica/Rothera': { lat: -67.5666644, long: -68.1333328 }, + 'Antarctica/Syowa': { lat: -69.0044, long: 39.5816 }, + 'Antarctica/Troll': { lat: -72.0166, long: 2.5333 }, + 'Antarctica/Vostok': { lat: -78.4645, long: 106.8339 }, + 'Arctic/Longyearbyen': { lat: 78.2232, long: 15.6267 }, + 'Asia/Aden': { lat: 12.7855, long: 45.0187 }, + 'Asia/Almaty': { lat: 43.222, long: 76.8512 }, + 'Asia/Amman': { lat: 31.9539, long: 35.9106 }, + 'Asia/Anadyr': { lat: 64.7337, long: 177.4968 }, + 'Asia/Aqtau': { lat: 43.6588, long: 51.1975 }, + 'Asia/Aqtobe': { lat: 50.2839, long: 57.167 }, + 'Asia/Ashgabat': { lat: 37.9601, long: 58.3261 }, + 'Asia/Atyrau': { lat: 47.0945, long: 51.9238 }, + 'Asia/Baghdad': { lat: 33.3152, long: 44.3661 }, + 'Asia/Bahrain': { lat: 26.0667, long: 50.5577 }, + 'Asia/Baku': { lat: 40.4093, long: 49.8671 }, + 'Asia/Bangkok': { lat: 13.7563, long: 100.5018 }, + 'Asia/Barnaul': { lat: 53.3497, long: 83.7836 }, + 'Asia/Beirut': { lat: 33.8938, long: 35.5018 }, + 'Asia/Bishkek': { lat: 42.8746, long: 74.5698 }, + 'Asia/Brunei': { lat: 4.5353, long: 114.7277 }, + 'Asia/Chita': { lat: 52.0515, long: 113.4712 }, + 'Asia/Choibalsan': { lat: 48.0951, long: 114.5356 }, + 'Asia/Colombo': { lat: 6.9271, long: 79.8612 }, + 'Asia/Damascus': { lat: 33.5138, long: 36.2765 }, + 'Asia/Dhaka': { lat: 23.8103, long: 90.4125 }, + 'Asia/Dili': { lat: -8.5569, long: 125.5603 }, + 'Asia/Dubai': { lat: 25.2048, long: 55.2708 }, + 'Asia/Dushanbe': { lat: 38.5598, long: 68.787 }, + 'Asia/Famagusta': { lat: 35.1149, long: 33.9192 }, + 'Asia/Gaza': { lat: 31.3547, long: 34.3088 }, + 'Asia/Hebron': { lat: 31.5326, long: 35.0998 }, + 'Asia/Ho_Chi_Minh': { lat: 10.8231, long: 106.6297 }, + 'Asia/Hong_Kong': { lat: 22.3193, long: 114.1694 }, + 'Asia/Hovd': { lat: 47.9795, long: 91.6348 }, + 'Asia/Irkutsk': { lat: 52.2855, long: 104.289 }, + 'Asia/Jakarta': { lat: -6.2088, long: 106.8456 }, + 'Asia/Jayapura': { lat: -2.5916, long: 140.669 }, + 'Asia/Jerusalem': { lat: 31.7683, long: 35.2137 }, + 'Asia/Kabul': { lat: 34.5553, long: 69.2075 }, + 'Asia/Kamchatka': { lat: 56.1327, long: 159.5314 }, + 'Asia/Karachi': { lat: 24.8607, long: 67.0011 }, + 'Asia/Kathmandu': { lat: 27.7172, long: 85.324 }, + 'Asia/Khandyga': { lat: 62.6564, long: 135.554 }, + 'Asia/Kolkata': { lat: 22.5726, long: 88.3639 }, + 'Asia/Krasnoyarsk': { lat: 56.0153, long: 92.8932 }, + 'Asia/Kuala_Lumpur': { lat: 3.139, long: 101.6869 }, + 'Asia/Kuching': { lat: 1.5535, long: 110.3593 }, + 'Asia/Kuwait': { lat: 29.3117, long: 47.4818 }, + 'Asia/Macau': { lat: 22.1987, long: 113.5439 }, + 'Asia/Magadan': { lat: 59.5594, long: 150.8128 }, + 'Asia/Makassar': { lat: -5.1477, long: 119.4327 }, + 'Asia/Manila': { lat: 14.5995, long: 120.9842 }, + 'Asia/Muscat': { lat: 23.588, long: 58.3829 }, + 'Asia/Nicosia': { lat: 35.1856, long: 33.3823 }, + 'Asia/Novokuznetsk': { lat: 53.7596, long: 87.1216 }, + 'Asia/Novosibirsk': { lat: 54.9833, long: 82.8964 }, + 'Asia/Omsk': { lat: 54.9914, long: 73.3645 }, + 'Asia/Oral': { lat: 51.2278, long: 51.3865 }, + 'Asia/Phnom_Penh': { lat: 11.5564, long: 104.9282 }, + 'Asia/Pontianak': { lat: -0.0263, long: 109.3425 }, + 'Asia/Pyongyang': { lat: 39.0738, long: 125.8198 }, + 'Asia/Qatar': { lat: 25.3548, long: 51.1839 }, + 'Asia/Qostanay': { lat: 53.2198, long: 63.6354 }, + 'Asia/Qyzylorda': { lat: 44.8488, long: 65.4823 }, + 'Asia/Riyadh': { lat: 24.7136, long: 46.6753 }, + 'Asia/Sakhalin': { lat: 50.691, long: 142.9506 }, + 'Asia/Samarkand': { lat: 39.627, long: 66.975 }, + 'Asia/Seoul': { lat: 37.5665, long: 126.978 }, + 'Asia/Shanghai': { lat: 31.2304, long: 121.4737 }, + 'Asia/Singapore': { lat: 1.3521, long: 103.8198 }, + 'Asia/Srednekolymsk': { lat: 67.4373, long: 153.7287 }, + 'Asia/Taipei': { lat: 25.033, long: 121.5654 }, + 'Asia/Tashkent': { lat: 41.2995, long: 69.2401 }, + 'Asia/Tbilisi': { lat: 41.7151, long: 44.8271 }, + 'Asia/Tehran': { lat: 35.6892, long: 35.6892 }, + 'Asia/Thimphu': { lat: 27.4712, long: 89.6339 }, + 'Asia/Tokyo': { lat: 35.6762, long: 139.6503 }, + 'Asia/Tomsk': { lat: 56.4884, long: 84.948 }, + 'Asia/Ulaanbaatar': { lat: 47.8864, long: 106.9057 }, + 'Asia/Urumqi': { lat: 43.8266, long: 87.6169 }, + 'Asia/Ust-Nera': { lat: 64.5672, long: 143.2265 }, + 'Asia/Vientiane': { lat: 17.9757, long: 102.6331 }, + 'Asia/Vladivostok': { lat: 43.1332, long: 131.9113 }, + 'Asia/Yakutsk': { lat: 62.0397, long: 129.7422 }, + 'Asia/Yangon': { lat: 16.8409, long: 96.1735 }, + 'Asia/Yekaterinburg': { lat: 56.8431, long: 60.6454 }, + 'Asia/Yerevan': { lat: 40.1872, long: 44.5152 }, + 'Atlantic/Azores': { lat: 38.7216, long: -27.2206 }, + 'Atlantic/Bermuda': { lat: 32.2937, long: -64.7755 }, + 'Atlantic/Canary': { lat: 28.2916, long: -16.6291 }, + 'Atlantic/Cape_Verde': { lat: 16.4969, long: -23.1918 }, + 'Atlantic/Faroe': { lat: 61.8925022, long: -6.9729703 }, + 'Atlantic/Madeira': { lat: 32.7607, long: -16.9595 }, + 'Atlantic/Reykjavik': { lat: 65.4215, long: -19.0346 }, + 'Atlantic/South_Georgia': { lat: -55.9654, long: -29.9202 }, + 'Atlantic/St_Helena': { lat: -23.8689, long: -9.1899 }, + 'Atlantic/Stanley': { lat: -51.6882, long: 59.8139 }, + 'Australia/Adelaide': { lat: -34.9285, long: 138.6007 }, + 'Australia/Brisbane': { lat: -27.4705, long: 153.026 }, + 'Australia/Broken_Hill': { lat: -31.9596, long: 141.4608 }, + 'Australia/Darwin': { lat: -12.462827, long: 130.841782 }, + 'Australia/Eucla': { lat: -35.306179, long: 149.126419 }, + 'Australia/Hobart': { lat: -42.880554, long: 147.324997 }, + 'Australia/Lindeman': { lat: -35.306179, long: 149.126419 }, + 'Australia/Lord_Howe': { lat: -31.555326, long: 159.082121 }, + 'Australia/Melbourne': { lat: -37.8136, long: 144.9631 }, + 'Australia/Perth': { lat: -31.9523, long: 115.8613 }, + 'Australia/Sydney': { lat: -33.8688, long: 151.2093 }, + 'Europe/Amsterdam': { lat: 52.3676, long: 4.9041 }, + 'Europe/Andorra': { lat: 42.5063, long: 1.5218 }, + 'Europe/Astrakhan': { lat: 46.3586, long: 48.0569 }, + 'Europe/Athens': { lat: 37.9838, long: 23.7275 }, + 'Europe/Belgrade': { lat: 44.8125, long: 20.4612 }, + 'Europe/Berlin': { lat: 52.52, long: 13.405 }, + 'Europe/Bratislava': { lat: 48.1486, long: 17.1077 }, + 'Europe/Brussels': { lat: 50.8476, long: 4.3572 }, + 'Europe/Bucharest': { lat: 44.4268, long: 26.1025 }, + 'Europe/Budapest': { lat: 47.4979, long: 19.0402 }, + 'Europe/Busingen': { lat: 47.697, long: 8.6904 }, + 'Europe/Chisinau': { lat: 47.0105, long: 28.8638 }, + 'Europe/Copenhagen': { lat: 55.6761, long: 12.5683 }, + 'Europe/Dublin': { lat: 53.3498, long: -6.2603 }, + 'Europe/Gibraltar': { lat: 36.1408, long: -5.3536 }, + 'Europe/Guernsey': { lat: 49.4482, long: -2.5895 }, + 'Europe/Helsinki': { lat: 60.1699, long: 24.9384 }, + 'Europe/Isle_of_Man': { lat: 54.2361, long: -4.5481 }, + 'Europe/Istanbul': { lat: 41.0082, long: 28.9784 }, + 'Europe/Jersey': { lat: 49.2138, long: -2.1358 }, + 'Europe/Kaliningrad': { lat: 54.7104, long: 20.4522 }, + 'Europe/Kiev': { lat: 50.4501, long: 30.5234 }, + 'Europe/Kirov': { lat: 58.603, long: 49.6679 }, + 'Europe/Lisbon': { lat: 38.7223, long: -9.1393 }, + 'Europe/Ljubljana': { lat: 46.0569, long: 14.5058 }, + 'Europe/London': { lat: 51.5072, long: -0.1276 }, + 'Europe/Luxembourg': { lat: 49.8153, long: 6.1296 }, + 'Europe/Madrid': { lat: 40.4168, long: -3.7038 }, + 'Europe/Malta': { lat: 35.9375, long: 14.3754 }, + 'Europe/Mariehamn': { lat: 60.0971, long: 19.9348 }, + 'Europe/Minsk': { lat: 53.9006, long: 27.559 }, + 'Europe/Monaco': { lat: 3.7384, long: 7.4246 }, + 'Europe/Moscow': { lat: 55.7558, long: 37.6173 }, + 'Europe/Oslo': { lat: 59.9139, long: 10.7522 }, + 'Europe/Paris': { lat: 48.8566, long: 2.3522 }, + 'Europe/Podgorica': { lat: 42.4304, long: 19.2594 }, + 'Europe/Prague': { lat: 50.0755, long: 14.4378 }, + 'Europe/Riga': { lat: 56.9496, long: 24.1052 }, + 'Europe/Rome': { lat: 41.9028, long: 12.4964 }, + 'Europe/Samara': { lat: 53.2038, long: 50.1606 }, + 'Europe/San_Marino': { lat: 43.9424, long: 12.4578 }, + 'Europe/Sarajevo': { lat: 43.8563, long: 18.4131 }, + 'Europe/Saratov': { lat: 51.5462, long: 46.0154 }, + 'Europe/Simferopol': { lat: 44.9521, long: 34.1024 }, + 'Europe/Skopje': { lat: 41.9981, long: 21.4254 }, + 'Europe/Sofia': { lat: 42.6977, long: 23.3219 }, + 'Europe/Stockholm': { lat: 59.3293, long: 18.0686 }, + 'Europe/Tallinn': { lat: 59.437, long: 24.7536 }, + 'Europe/Tirane': { lat: 41.3275, long: 19.8187 }, + 'Europe/Ulyanovsk': { lat: 54.3187, long: 48.3978 }, + 'Europe/Uzhgorod': { lat: 48.6208, long: 22.2879 }, + 'Europe/Vaduz': { lat: 47.141, long: 9.5209 }, + 'Europe/Vatican': { lat: 41.9029, long: 12.4534 }, + 'Europe/Vienna': { lat: 48.2082, long: 16.3738 }, + 'Europe/Vilnius': { lat: 54.6872, long: 25.2797 }, + 'Europe/Volgograd': { lat: 48.708, long: 44.5133 }, + 'Europe/Warsaw': { lat: 52.2297, long: 21.0122 }, + 'Europe/Zagreb': { lat: 45.815, long: 15.9819 }, + 'Europe/Zaporozhye': { lat: 47.8388, long: 35.1396 }, + 'Europe/Zurich': { lat: 47.3769, long: 8.5417 }, + 'Indian/Antananarivo': { lat: -18.8792, long: 47.5079 }, + 'Indian/Chagos': { lat: -4.416665, long: 72.5999976 }, + 'Indian/Christmas': { lat: -10.4475, long: 105.6904 }, + 'Indian/Cocos': { lat: -12.1642, long: 96.871 }, + 'Indian/Comoro': { lat: -11.6455, long: 43.3333 }, + 'Indian/Kerguelen': { lat: -49.3948, long: 69.3545 }, + 'Indian/Mahe': { lat: -4.6827, long: 55.4804 }, + 'Indian/Maldives': { lat: 3.2028, long: 73.2207 }, + 'Indian/Mauritius': { lat: -20.3484, long: 57.5522 }, + 'Indian/Mayotte': { lat: -12.8275, long: 45.1662 }, + 'Indian/Reunion': { lat: -21.1151, long: 55.5364 }, + 'Pacific/Apia': { lat: -13.8507, long: -171.7514 }, + 'Pacific/Auckland': { lat: -36.8509, long: 174.7645 }, + 'Pacific/Bougainville': { lat: -6.3754, long: 155.3807 }, + 'Pacific/Chatham': { lat: -44.0058, long: -176.5401 }, + 'Pacific/Chuuk': { lat: 7.417, long: 151.783 }, + 'Pacific/Easter': { lat: -27.1127, long: -109.3497 }, + 'Pacific/Efate': { lat: -17.6577, long: 168.4297 }, + 'Pacific/Fakaofo': { lat: -9.3803, long: -171.2188 }, + 'Pacific/Fiji': { lat: -17.7134, long: 178.065 }, + 'Pacific/Funafuti': { lat: -8.5211, long: 179.1962 }, + 'Pacific/Galapagos': { lat: -0.7772, long: -91.1425 }, + 'Pacific/Gambier': { lat: 40.3756, long: -82.3971 }, + 'Pacific/Guadalcanal': { lat: -9.5773, long: 160.1456 }, + 'Pacific/Guam': { lat: 13.4443, long: 144.7937 }, + 'Pacific/Honolulu': { lat: 21.3069, long: -157.8583 }, // 'Pacific/Kanton': { lat: -2.8040, long: -171.6432 }, // Why is this not valid?, - "Pacific/Kiritimati": { lat: 1.8721, long: -157.4278 }, - "Pacific/Kosrae": { lat: 5.2992, long: 162.9697 }, - "Pacific/Kwajalein": { lat: 8.7167, long: 167.7333 }, - "Pacific/Majuro": { lat: 7.0667, long: 171.2667 }, - "Pacific/Marquesas": { lat: -9.7812, long: -139.0817 }, - "Pacific/Midway": { lat: 28.2072, long: -177.3735 }, - "Pacific/Nauru": { lat: -0.5228, long: 166.9315 }, - "Pacific/Niue": { lat: -19.0544, long: -169.8672 }, - "Pacific/Norfolk": { lat: -29.0408, long: 167.9547 }, - "Pacific/Noumea": { lat: -22.2735, long: 166.4481 }, - "Pacific/Pago_Pago": { lat: -14.2756, long: -170.702 }, - "Pacific/Palau": { lat: 7.515, long: 134.5825 }, - "Pacific/Pitcairn": { lat: -24.3768, long: -128.3242 }, - "Pacific/Pohnpei": { lat: 6.8541, long: 158.2624 }, - "Pacific/Port_Moresby": { lat: -9.4438, long: 147.1803 }, - "Pacific/Rarotonga": { lat: -21.2292, long: -159.7763 }, - "Pacific/Saipan": { lat: 15.185, long: 145.7467 }, - "Pacific/Tahiti": { lat: -17.6509, long: -149.426 }, - "Pacific/Tarawa": { lat: 1.4518, long: 172.9717 }, - "Pacific/Tongatapu": { lat: -21.1466, long: -175.2515 }, - "Pacific/Wake": { lat: 19.2796, long: 166.6499 }, - "Pacific/Wallis": { lat: -14.2938, long: -178.1165 }, + 'Pacific/Kiritimati': { lat: 1.8721, long: -157.4278 }, + 'Pacific/Kosrae': { lat: 5.2992, long: 162.9697 }, + 'Pacific/Kwajalein': { lat: 8.7167, long: 167.7333 }, + 'Pacific/Majuro': { lat: 7.0667, long: 171.2667 }, + 'Pacific/Marquesas': { lat: -9.7812, long: -139.0817 }, + 'Pacific/Midway': { lat: 28.2072, long: -177.3735 }, + 'Pacific/Nauru': { lat: -0.5228, long: 166.9315 }, + 'Pacific/Niue': { lat: -19.0544, long: -169.8672 }, + 'Pacific/Norfolk': { lat: -29.0408, long: 167.9547 }, + 'Pacific/Noumea': { lat: -22.2735, long: 166.4481 }, + 'Pacific/Pago_Pago': { lat: -14.2756, long: -170.702 }, + 'Pacific/Palau': { lat: 7.515, long: 134.5825 }, + 'Pacific/Pitcairn': { lat: -24.3768, long: -128.3242 }, + 'Pacific/Pohnpei': { lat: 6.8541, long: 158.2624 }, + 'Pacific/Port_Moresby': { lat: -9.4438, long: 147.1803 }, + 'Pacific/Rarotonga': { lat: -21.2292, long: -159.7763 }, + 'Pacific/Saipan': { lat: 15.185, long: 145.7467 }, + 'Pacific/Tahiti': { lat: -17.6509, long: -149.426 }, + 'Pacific/Tarawa': { lat: 1.4518, long: 172.9717 }, + 'Pacific/Tongatapu': { lat: -21.1466, long: -175.2515 }, + 'Pacific/Wake': { lat: 19.2796, long: 166.6499 }, + 'Pacific/Wallis': { lat: -14.2938, long: -178.1165 }, // update 20221201 - "Africa/Asmera": { lat: 15.3229, long: 38.9251 }, - "Africa/Timbuktu": { lat: 16.7666, long: -3.0026 }, - "America/Argentina/ComodRivadavia": { lat: -45.8656, long: -67.4822 }, - "America/Atka": { lat: 52.2100, long: -174.2030 }, - "America/Buenos_Aires": { lat: -34.6037, long: -58.3816 }, - "America/Catamarca": { lat: -28.4696, long: -65.7795 }, - "America/Coral_Harbour": { lat: 64.1388, long: -83.1699 }, - "America/Cordoba": { lat: -31.4201, long: -64.1888 }, - "America/Ensenada": { lat: 31.8667, long: -116.5964 }, - "America/Fort_Wayne": { lat: 41.0793, long: -85.1394 }, - "America/Godthab": { lat: 64.1743, long: -51.7373 }, - "America/Indianapolis": { lat: 39.7684, long: -86.1581 }, - "America/Jujuy": { lat: -24.1858, long: -65.2995 }, - "America/Knox_IN": { lat: 41.2959, long: -86.6250 }, - "America/Louisville": { lat: 38.2527, long: -85.7585 }, - "America/Mendoza": { lat: -32.8895, long: -68.8458 }, - "America/Montreal": { lat: 45.5019, long: -73.5674 }, - "America/Porto_Acre": { lat: 29.9051, long: -94.0122 }, - "America/Rosario": { lat: -32.9587, long: -60.6930 }, - "America/Santa_Isabel": { lat: 17.9661, long: -66.4049 }, - "America/Shiprock": { lat: 36.7856, long: -108.6870 }, - "America/Virgin": { lat: 37.2083, long: -113.1883 }, - "Antarctica/South_Pole": { lat: -90.0000, long: 45.0000 }, - "Asia/Ashkhabad": { lat: 37.9601, long: 58.3261 }, - "Asia/Calcutta": { lat: 22.5726, long: 88.3639 }, - "Asia/Chongqing": { lat: 29.5657, long: 106.5512 }, - "Asia/Chungking": { lat: 29.5657, long: 106.5512 }, - "Asia/Dacca": { lat: 23.8103, long: 90.4125 }, - "Asia/Harbin": { lat: 45.7567, long: 126.6424 }, - "Asia/Istanbul": { lat: 41.0082, long: 28.9784 }, - "Asia/Kashgar": { lat: 39.4677, long: 75.9938 }, - "Asia/Katmandu": { lat: 27.7172, long: 85.3240 }, - "Asia/Macao": { lat: 22.1987, long: 113.5439 }, + 'Africa/Asmera': { lat: 15.3229, long: 38.9251 }, + 'Africa/Timbuktu': { lat: 16.7666, long: -3.0026 }, + 'America/Argentina/ComodRivadavia': { lat: -45.8656, long: -67.4822 }, + 'America/Atka': { lat: 52.21, long: -174.203 }, + 'America/Buenos_Aires': { lat: -34.6037, long: -58.3816 }, + 'America/Catamarca': { lat: -28.4696, long: -65.7795 }, + 'America/Coral_Harbour': { lat: 64.1388, long: -83.1699 }, + 'America/Cordoba': { lat: -31.4201, long: -64.1888 }, + 'America/Ensenada': { lat: 31.8667, long: -116.5964 }, + 'America/Fort_Wayne': { lat: 41.0793, long: -85.1394 }, + 'America/Godthab': { lat: 64.1743, long: -51.7373 }, + 'America/Indianapolis': { lat: 39.7684, long: -86.1581 }, + 'America/Jujuy': { lat: -24.1858, long: -65.2995 }, + 'America/Knox_IN': { lat: 41.2959, long: -86.625 }, + 'America/Louisville': { lat: 38.2527, long: -85.7585 }, + 'America/Mendoza': { lat: -32.8895, long: -68.8458 }, + 'America/Montreal': { lat: 45.5019, long: -73.5674 }, + 'America/Porto_Acre': { lat: 29.9051, long: -94.0122 }, + 'America/Rosario': { lat: -32.9587, long: -60.693 }, + 'America/Santa_Isabel': { lat: 17.9661, long: -66.4049 }, + 'America/Shiprock': { lat: 36.7856, long: -108.687 }, + 'America/Virgin': { lat: 37.2083, long: -113.1883 }, + 'Antarctica/South_Pole': { lat: -90.0, long: 45.0 }, + 'Asia/Ashkhabad': { lat: 37.9601, long: 58.3261 }, + 'Asia/Calcutta': { lat: 22.5726, long: 88.3639 }, + 'Asia/Chongqing': { lat: 29.5657, long: 106.5512 }, + 'Asia/Chungking': { lat: 29.5657, long: 106.5512 }, + 'Asia/Dacca': { lat: 23.8103, long: 90.4125 }, + 'Asia/Harbin': { lat: 45.7567, long: 126.6424 }, + 'Asia/Istanbul': { lat: 41.0082, long: 28.9784 }, + 'Asia/Kashgar': { lat: 39.4677, long: 75.9938 }, + 'Asia/Katmandu': { lat: 27.7172, long: 85.324 }, + 'Asia/Macao': { lat: 22.1987, long: 113.5439 }, - "Asia/Rangoon": { lat: 16.8409, long: 96.1735 }, - "Asia/Saigon": { lat: 10.8231, long: 106.6297 }, - "Asia/Tel_Aviv": { lat: 32.0853, long: 34.7818 }, - "Asia/Thimbu": { lat: 27.4716, long: 89.6386 }, - "Asia/Ujung_Pandang": { lat: -5.1477, long: 119.4327 }, - "Asia/Ulan_Bator": { lat: 47.8864, long: 106.9057 }, - "Atlantic/Faeroe": { lat: 61.8926, long: -6.9118 }, - "Atlantic/Jan_Mayen": { lat: 71.0318, long: -8.2920 }, - "Australia/Canberra": { lat: -35.2802, long: 149.1310 }, - "Australia/Currie": { lat: -39.9301, long: 143.8538 }, - "Australia/Queensland": { lat: -22.5752, long: 144.0848 }, - "Australia/Tasmania": { lat: -42.0409, long: 146.8087 }, - "Australia/Victoria": { lat: -36.9848, long: 143.3906 }, - "Australia/Yancowinna": { lat: -32.008999964 , long: 141.138166114}, - "Brazil/Acre": { lat: -9.0238, long: -70.8120 }, - "Brazil/DeNoronha": { lat: -3.853808, long: -32.423786 }, - "Canada/Newfoundland": { lat: 53.1355, long: -57.6604 }, - "Canada/Saskatchewan": { lat: 52.9399, long: -106.4509 }, - "Canada/Yukon": { lat: 64.2823, long: -135.0000 }, - "Chile/EasterIsland": { lat: -27.1127, long: -109.3497 }, + 'Asia/Rangoon': { lat: 16.8409, long: 96.1735 }, + 'Asia/Saigon': { lat: 10.8231, long: 106.6297 }, + 'Asia/Tel_Aviv': { lat: 32.0853, long: 34.7818 }, + 'Asia/Thimbu': { lat: 27.4716, long: 89.6386 }, + 'Asia/Ujung_Pandang': { lat: -5.1477, long: 119.4327 }, + 'Asia/Ulan_Bator': { lat: 47.8864, long: 106.9057 }, + 'Atlantic/Faeroe': { lat: 61.8926, long: -6.9118 }, + 'Atlantic/Jan_Mayen': { lat: 71.0318, long: -8.292 }, + 'Australia/Canberra': { lat: -35.2802, long: 149.131 }, + 'Australia/Currie': { lat: -39.9301, long: 143.8538 }, + 'Australia/Queensland': { lat: -22.5752, long: 144.0848 }, + 'Australia/Tasmania': { lat: -42.0409, long: 146.8087 }, + 'Australia/Victoria': { lat: -36.9848, long: 143.3906 }, + 'Australia/Yancowinna': { lat: -32.008999964, long: 141.138166114 }, + 'Brazil/Acre': { lat: -9.0238, long: -70.812 }, + 'Brazil/DeNoronha': { lat: -3.853808, long: -32.423786 }, + 'Canada/Newfoundland': { lat: 53.1355, long: -57.6604 }, + 'Canada/Saskatchewan': { lat: 52.9399, long: -106.4509 }, + 'Canada/Yukon': { lat: 64.2823, long: -135.0 }, + 'Chile/EasterIsland': { lat: -27.1127, long: -109.3497 }, Cuba: { lat: 21.5218, long: -77.7812 }, Egypt: { lat: 26.8206, long: 30.8025 }, Eire: { lat: 53.1424, long: -7.6921 }, - "Europe/Belfast": { lat: 54.5973, long: -5.9301 }, - "Europe/Kyiv": { lat: 50.4501, long: 30.5234 }, - "Europe/Nicosia": { lat: 35.1856, long: 33.3823 }, - "Europe/Tiraspol": { lat: 46.8500, long: 29.6333 }, + 'Europe/Belfast': { lat: 54.5973, long: -5.9301 }, + 'Europe/Kyiv': { lat: 50.4501, long: 30.5234 }, + 'Europe/Nicosia': { lat: 35.1856, long: 33.3823 }, + 'Europe/Tiraspol': { lat: 46.85, long: 29.6333 }, Greenwich: { lat: 51.4934, long: 0.0098 }, Hongkong: { lat: 22.3193, long: 114.1694 }, Iceland: { lat: 64.9631, long: -19.0208 }, - Iran: { lat: 32.4279, long: 53.6880 }, + Iran: { lat: 32.4279, long: 53.688 }, Israel: { lat: 31.0461, long: 34.8516 }, Jamaica: { lat: 18.1096, long: -77.2975 }, Japan: { lat: 36.2048, long: 138.2529 }, Kwajalein: { lat: 8.7167, long: 167.7333 }, Libya: { lat: 26.3351, long: 17.2283 }, - "Mexico/BajaNorte": { lat: 30.8406, long: -115.2838 }, - "Mexico/BajaSur": { lat: 26.0444, long: -111.6661 }, - Navajo: { lat: 36.0672, long: -109.1880 }, - "Pacific/Enderbury": { lat: -3.1272, long: -171.0837 }, - "Pacific/Johnston": { lat: 41.6710, long: -93.7130 }, - "Pacific/Kanton": { lat: -2.8040, long: -171.6432 }, - "Pacific/Ponape": { lat: 6.8541, long: 158.2624 }, - "Pacific/Samoa": { lat: -14.2710, long: -170.1322 }, - "Pacific/Truk": { lat: 7.4469, long: 151.7473 }, - "Pacific/Yap": { lat: 9.5557, long: 138.1399 }, + 'Mexico/BajaNorte': { lat: 30.8406, long: -115.2838 }, + 'Mexico/BajaSur': { lat: 26.0444, long: -111.6661 }, + Navajo: { lat: 36.0672, long: -109.188 }, + 'Pacific/Enderbury': { lat: -3.1272, long: -171.0837 }, + 'Pacific/Johnston': { lat: 41.671, long: -93.713 }, + 'Pacific/Kanton': { lat: -2.804, long: -171.6432 }, + 'Pacific/Ponape': { lat: 6.8541, long: 158.2624 }, + 'Pacific/Samoa': { lat: -14.271, long: -170.1322 }, + 'Pacific/Truk': { lat: 7.4469, long: 151.7473 }, + 'Pacific/Yap': { lat: 9.5557, long: 138.1399 }, Poland: { lat: 51.9194, long: 19.1451 }, Portugal: { lat: 39.3999, long: -8.2245 }, Singapore: { lat: 1.3521, long: 103.8198 }, - Turkey: { lat: 38.9637, long: 35.2433 }, - "US/Alaska": { lat: 64.2008, long: -149.4937 }, - "US/Aleutian": { lat: 52.096813, long: -173.500556 }, - "US/Arizona": { lat: 34.0489, long: -111.0937 }, - "US/Hawaii": { lat: 19.8968, long: -155.5828 }, - "US/Indiana-Starke": { lat: 41.2716, long: -86.6208 }, - "US/Michigan": { lat: 44.3148, long: -85.6024 }, - "US/Samoa": { lat: -14.2710, long: -170.1322 }, + Turkey: { lat: 38.9637, long: 35.2433 }, + 'US/Alaska': { lat: 64.2008, long: -149.4937 }, + 'US/Aleutian': { lat: 52.096813, long: -173.500556 }, + 'US/Arizona': { lat: 34.0489, long: -111.0937 }, + 'US/Hawaii': { lat: 19.8968, long: -155.5828 }, + 'US/Indiana-Starke': { lat: 41.2716, long: -86.6208 }, + 'US/Michigan': { lat: 44.3148, long: -85.6024 }, + 'US/Samoa': { lat: -14.271, long: -170.1322 }, }; diff --git a/src/app/timezone/services/timezone.service.spec.ts b/src/app/timezone/services/timezone.service.spec.ts deleted file mode 100644 index ed02f22..0000000 --- a/src/app/timezone/services/timezone.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { TimezoneService } from './timezone.service'; - -describe('TimezoneService', () => { - let service: TimezoneService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(TimezoneService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); diff --git a/src/index.html b/src/index.html index 686daf4..992c0c6 100644 --- a/src/index.html +++ b/src/index.html @@ -1,25 +1,25 @@ + + + itsfiveoclockwhere + + + + + + - - - - - - + gtag('config', 'G-48B6CKS0V6'); + + + + + diff --git a/src/main.ts b/src/main.ts index c7b673c..d9a2e7e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,5 +8,6 @@ if (environment.production) { enableProdMode(); } -platformBrowserDynamic().bootstrapModule(AppModule) - .catch(err => console.error(err)); +platformBrowserDynamic() + .bootstrapModule(AppModule) + .catch((err) => console.error(err)); diff --git a/src/polyfills.ts b/src/polyfills.ts index 429bb9e..e4555ed 100644 --- a/src/polyfills.ts +++ b/src/polyfills.ts @@ -45,8 +45,7 @@ /*************************************************************************************************** * Zone JS is required by default for Angular itself. */ -import 'zone.js'; // Included with Angular CLI. - +import 'zone.js'; // Included with Angular CLI. /*************************************************************************************************** * APPLICATION IMPORTS diff --git a/src/styles.scss b/src/styles.scss index 368036f..f124d75 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,10 +1,10 @@ /* You can add global styles to this file, and also import other style files */ body { - height: 100%; - margin:0; - padding:0; - background: #2e2e2e; + height: 100%; + margin: 0; + padding: 0; + background: #2e2e2e; } html { - height: 100%; -} \ No newline at end of file + height: 100%; +} diff --git a/src/test.ts b/src/test.ts deleted file mode 100644 index 51bb020..0000000 --- a/src/test.ts +++ /dev/null @@ -1,14 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'zone.js/testing'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), -); diff --git a/tsconfig.app.json b/tsconfig.app.json index 82d91dc..ff396d4 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -5,11 +5,6 @@ "outDir": "./out-tsc/app", "types": [] }, - "files": [ - "src/main.ts", - "src/polyfills.ts" - ], - "include": [ - "src/**/*.d.ts" - ] + "files": ["src/main.ts", "src/polyfills.ts"], + "include": ["src/**/*.d.ts"] } diff --git a/tsconfig.json b/tsconfig.json index 1407cb6..c6c687c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,10 +18,7 @@ "importHelpers": true, "target": "ES2022", "module": "es2020", - "lib": [ - "es2020", - "dom" - ], + "lib": ["es2020", "dom"], "useDefineForClassFields": false }, "angularCompilerOptions": { diff --git a/tsconfig.spec.json b/tsconfig.spec.json index 092345b..669344f 100644 --- a/tsconfig.spec.json +++ b/tsconfig.spec.json @@ -3,16 +3,8 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/spec", - "types": [ - "jasmine" - ] + "types": ["jasmine"] }, - "files": [ - "src/test.ts", - "src/polyfills.ts" - ], - "include": [ - "src/**/*.spec.ts", - "src/**/*.d.ts" - ] + "files": ["src/test.ts", "src/polyfills.ts"], + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] }