From 0649507d89108e70cfddccc6a63a340125896555 Mon Sep 17 00:00:00 2001 From: tsuki_kamI_ Date: Fri, 3 May 2024 17:43:37 +0200 Subject: [PATCH] implemented timetable endpoint --- package-lock.json | 2318 ++++++++++++++++- package.json | 5 +- src/app/app.module.ts | 7 +- src/app/main/search/search.component.ts | 2 +- .../station-detail.component.html | 4 +- .../station-detail.component.ts | 20 +- .../main/timetable/timetable.component.css | 0 .../main/timetable/timetable.component.html | 1 + .../timetable/timetable.component.spec.ts | 23 + src/app/main/timetable/timetable.component.ts | 37 + ...odel.ts => result.StationData.Stations.ts} | 0 src/models/result.TimeTable.Plan.ts | 288 ++ src/services/XmlToJsonService.ts | 22 + src/services/cache.service.ts | 12 + src/services/db.service.ts | 194 +- 15 files changed, 2750 insertions(+), 183 deletions(-) create mode 100644 src/app/main/timetable/timetable.component.css create mode 100644 src/app/main/timetable/timetable.component.html create mode 100644 src/app/main/timetable/timetable.component.spec.ts create mode 100644 src/app/main/timetable/timetable.component.ts rename src/models/{resultModel.ts => result.StationData.Stations.ts} (100%) create mode 100644 src/models/result.TimeTable.Plan.ts create mode 100644 src/services/XmlToJsonService.ts diff --git a/package-lock.json b/package-lock.json index d2de95e..cea6ccc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,9 +18,11 @@ "@angular/platform-browser": "^17.3.0", "@angular/platform-browser-dynamic": "^17.3.0", "@angular/router": "^17.3.0", + "component": "^1.1.0", "cors": "^2.8.5", "rxjs": "~7.8.0", "tslib": "^2.3.0", + "xml2js": "^0.6.2", "zone.js": "~0.14.3" }, "devDependencies": { @@ -28,6 +30,7 @@ "@angular/cli": "^17.3.6", "@angular/compiler-cli": "^17.3.0", "@types/jasmine": "~5.1.0", + "@types/xml2js": "^0.4.14", "autoprefixer": "^10.4.19", "jasmine-core": "~5.1.0", "karma": "~6.4.0", @@ -4702,6 +4705,15 @@ "@types/node": "*" } }, + "node_modules/@types/xml2js": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.14.tgz", + "integrity": "sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@vitejs/plugin-basic-ssl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", @@ -4921,6 +4933,35 @@ "acorn": "^8" } }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", @@ -4948,6 +4989,14 @@ "node": ">=8.9.0" } }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "engines": { + "node": ">=0.3.0" + } + }, "node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", @@ -5018,6 +5067,46 @@ "ajv": "^8.8.2" } }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/align-text/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/alter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", + "integrity": "sha512-Wuss6JIZ6h4j2+NgU2t+9mSwS7gBSZJbU4Dg8xETguAD2veJUSuCrvTIiC78QgZE7/zX7h6OnXw2PiiCBirEGw==", + "dependencies": { + "stable": "~0.1.3" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "engines": { + "node": ">=0.4.2" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -5106,6 +5195,14 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/archy": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/archy/-/archy-0.0.2.tgz", + "integrity": "sha512-8mMsetjXv4pCPTrMbPPO2cxy9vzJn2jwbd+ug+mf8fEUZG2E78Vo5erJMjrnGuLTKqOLtS5ulFHJSfg1yaCjxA==", + "engines": { + "node": "*" + } + }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -5127,6 +5224,22 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, + "node_modules/ast-traverse": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz", + "integrity": "sha512-CPuE4BWIhJjsNMvFkrzjiBgOl56NJTuBPBkBqyRyfq/nZtx1Z1f5I+qx7G/Zt+FAOS+ABhghkEuWJrfW9Njjog==" + }, + "node_modules/ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/autoprefixer": { "version": "10.4.19", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", @@ -5164,6 +5277,35 @@ "postcss": "^8.1.0" } }, + "node_modules/autoprefixer-core": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/autoprefixer-core/-/autoprefixer-core-3.1.2.tgz", + "integrity": "sha512-zXBwCsV9nrVf2evKwUREELXvM0IL7bg9k17EVku57I+nSVKXTyH7IvL4Nqit6wZkrY9b3ca6umNxh9SY5lIsuA==", + "dependencies": { + "caniuse-db": "^1.0.30000006", + "postcss": "~2.2.5" + } + }, + "node_modules/autoprefixer-core/node_modules/postcss": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-2.2.6.tgz", + "integrity": "sha512-8zk4tZ73/ddVQ+Cg2Ca/U4CGT1SAzDYriJDYrRp9ZvNXJPWwYlJaSjHSUJLFKlmuaUjCJvtDnKTwwDpoie55Yw==", + "dependencies": { + "js-base64": "~2.1.5", + "source-map": "~0.1.40" + } + }, + "node_modules/autoprefixer-core/node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/babel-loader": { "version": "9.1.3", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", @@ -5280,8 +5422,15 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base62": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", + "integrity": "sha512-QtExujIOq/F672OkHmDi3CdkphOA1kSQ38gv03Ro3cplYQk831dq9GM3Q1oXAxpR5HNJjGjjjT2pHtBGAJu1jw==", + "engines": { + "node": "*" + } }, "node_modules/base64-js": { "version": "1.5.1", @@ -5350,6 +5499,17 @@ "readable-stream": "^3.4.0" } }, + "node_modules/block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==", + "dependencies": { + "inherits": "~2.0.0" + }, + "engines": { + "node": "0.4 || >=0.5.8" + } + }, "node_modules/body-parser": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", @@ -5409,7 +5569,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5427,6 +5586,11 @@ "node": ">=8" } }, + "node_modules/breakable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz", + "integrity": "sha512-+ityJqcjhozQNrezzTd2dtH/lkIXmE52HL+FohK2TOLQDl3QURTNkim+2C0xcso4Zehq/HM4Wkumcdz7Ue+XmA==" + }, "node_modules/browserslist": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", @@ -5489,6 +5653,23 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/builder-autoprefixer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/builder-autoprefixer/-/builder-autoprefixer-1.0.4.tgz", + "integrity": "sha512-4z2QQnrzUiA3WOTk9scxj/EfKX5y7fPbwQa3up3qRw0ve3XztPnkQ4ZyC36L2NHY4zuEwA9tlu0QgAqxRyCfgg==", + "dependencies": { + "autoprefixer-core": "^3.1.1" + } + }, + "node_modules/builder-es6-module-to-cjs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/builder-es6-module-to-cjs/-/builder-es6-module-to-cjs-1.1.0.tgz", + "integrity": "sha512-HrhpHzBl7xqfADs9OHCsOw9TdE3jiU30rlHaLGZNuELvitfow96BWCO/nO6akval3V6/4ytzH/aMmsE7PtUrrg==", + "dependencies": { + "es6-module-jstransform": "^0.1.2", + "is-module": "^1.0.0" + } + }, "node_modules/builtins": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", @@ -5631,6 +5812,11 @@ "node": ">= 6" } }, + "node_modules/caniuse-db": { + "version": "1.0.30001615", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001615.tgz", + "integrity": "sha512-fjgpqFib5e9Dvg4xuGTFCuH44dX68jTOS9n/r1/5fwpU3RvZWShO5WHKJSjzEsZy9u2p/YKGYrwRa8+IYmLGGw==" + }, "node_modules/caniuse-lite": { "version": "1.0.30001615", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001615.tgz", @@ -5651,6 +5837,18 @@ } ] }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -5665,6 +5863,16 @@ "node": ">=4" } }, + "node_modules/chanel": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chanel/-/chanel-2.2.0.tgz", + "integrity": "sha512-lI0+F41XPgIMrTBre4o0/OQUuiFMo2w8pk0ww/wpIOsRwV1s+c1fksEdnxfyK7OrBmYxDaqmTgI4YgXfXZ6UHA==", + "dependencies": { + "co": "*", + "generator-supported": "*", + "to-descriptor": "*" + } + }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -5819,61 +6027,620 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", + "integrity": "sha512-CQsjCRiNObI8AtTsNIBDRMQ4oMR83CzEswHYahClvul7gKk+lDQiOKv+5qh7LQWf5sh6jkZNispz/QlsZxyNgA==" + }, + "node_modules/cogent": { + "version": "0.4.3-fix-redirects", + "resolved": "git+ssh://git@github.com/timaschew/cogent.git#2246bd071392f5053a3a110024fd608a40a593ba", + "license": "MIT", + "dependencies": { + "debug": "*", + "generator-supported": "~0.0.1", + "netrc": "~0.1.3", + "proxy-agent": "^1.1.0", + "raw-body": "^1.1.2", + "statuses": "^1.0.2", + "write-to": "^1.0.0" + }, + "peerDependencies": { + "co": "3" + } + }, + "node_modules/cogent/node_modules/bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==" + }, + "node_modules/cogent/node_modules/iconv-lite": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.8.tgz", + "integrity": "sha512-D90rbOiZuEJGtmIBK9wcRpW//ZKLD8bTPOAx5oEsu+O+HhSOstX/HCZFBvNkuyDuiNHunb81cfsqaYzZxcUMYA==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cogent/node_modules/raw-body": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.3.4.tgz", + "integrity": "sha512-ZC2kBq6BsR0uK441H5SvGH9H+hRpTKVRjvlI6BhLOJrih3oGbGRYdFyyKKESw4/hjzJEr4cZkQgbuU52s63MOQ==", + "dependencies": { + "bytes": "1.0.0", + "iconv-lite": "0.4.8" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/commoner": { + "version": "0.10.8", + "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", + "integrity": "sha512-3/qHkNMM6o/KGXHITA14y78PcfmXh4+AOCJpSoF73h4VY1JpdGv3CHMS5+JW6SwLhfJt4RhNmLAa7+RRX/62EQ==", + "dependencies": { + "commander": "^2.5.0", + "detective": "^4.3.1", + "glob": "^5.0.15", + "graceful-fs": "^4.1.2", + "iconv-lite": "^0.4.5", + "mkdirp": "^0.5.0", + "private": "^0.1.6", + "q": "^1.1.2", + "recast": "^0.11.17" + }, + "bin": { + "commonize": "bin/commonize" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commoner/node_modules/ast-types": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", + "integrity": "sha512-qEdtR2UH78yyHX/AUNfXmJTlM48XoFZKBdwi1nzkI1mJL21cmbu0cvjxjpkXJ5NENMq42H+hNs8VLJcqXLerBQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commoner/node_modules/esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/commoner/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/commoner/node_modules/recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha512-+nixG+3NugceyR8O1bLU45qs84JgI3+8EauyRZafLgC9XbdAOIVgwV1Pe2da0YzGo62KzWoZwUpVEQf6qNAXWA==", + "dependencies": { + "ast-types": "0.9.6", + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commoner/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/component": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/component/-/component-1.1.0.tgz", + "integrity": "sha512-3729ISBnksZ0luAajVYcJFzm7lSRtaETgfWJsNkOaS1VL4pgC6T2HmEHEJtyVWvpd2H8KJUdNxe7gKXnAed/iw==", + "dependencies": { + "co": "^3.0.0", + "commander": "^2.2.0", + "component-build": "^1.2.2", + "component-consoler": "^2.0.0", + "component-flatten": "^1.0.1", + "component-ls": "^2.1.0", + "component-outdated2": "^1.0.4", + "component-pin": "^1.0.4", + "component-remotes": "^1.2.0", + "component-resolver": "^1.3.0", + "component-search2": "^1.1.1", + "component-updater": "^1.0.4", + "component-watcher": "^1.0.1", + "debug": "*", + "mkdirp": "~0.3.5", + "rimraf": "^2.2.6", + "semver": "^2.2.1", + "superagent": "~0.17.0", + "tiny-lr-fork": "0.0.5", + "win-fork": "~1.1.1" + }, + "bin": { + "component": "bin/component", + "component-build": "bin/component-build", + "component-crawl": "bin/component-crawl", + "component-duplicates": "bin/component-duplicates", + "component-help": "bin/component-help", + "component-install": "bin/component-install", + "component-link": "bin/component-link", + "component-ls": "bin/component-ls", + "component-outdated": "bin/component-outdated", + "component-pin": "bin/component-pin", + "component-search": "bin/component-search", + "component-update": "bin/component-update", + "component-validate": "bin/component-validate" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/component-build": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/component-build/-/component-build-1.2.2.tgz", + "integrity": "sha512-CpLWNhClvE68T9a3UZnAG3L3LdCiHDZlA0ufErCXUYPil9agI1d2ucejxl3h5hk1dfzzcdhAD8gPq54pxsHcuA==", + "dependencies": { + "builder-autoprefixer": "^1.0.3", + "builder-es6-module-to-cjs": "^1.1.0", + "component-builder": "^1.1.12", + "debug": "*" + } + }, + "node_modules/component-builder": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-builder/-/component-builder-1.2.1.tgz", + "integrity": "sha512-iNjEioqOs2PTnIxIn+jRaGdtEAw8ncUPwqSJ4c99A2bAwZnZSHklv1R5QPVqmZYlpYMT3SGSc2zmvmwGK3tgrw==", + "dependencies": { + "requires": "^1.0.0", + "chanel": "^2.0.0", + "co": "^3.1.0", + "component-flatten": "^1.0.1", + "component-manifest": "^1.0.0", + "component-require2": "^1.0.1", + "cp": "^0.1.1", + "debug": "*", + "generator-supported": "~0.0.1", + "graceful-fs": "^2.0.3", + "mkdirp": "^0.3.5", + "syntax-error": "^1.1.1" + } + }, + "node_modules/component-builder/node_modules/graceful-fs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", + "integrity": "sha512-hcj/NTUWv+C3MbqrVb9F+aH6lvTwEHJdx2foBxlrVq5h6zE8Bfu4pv4CAAqbDcZrw/9Ak5lsRXlY9Ao8/F0Tuw==", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/component-builder/node_modules/mkdirp": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "integrity": "sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)" + }, + "node_modules/component-consoler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/component-consoler/-/component-consoler-2.0.0.tgz", + "integrity": "sha512-gHjeG72lAgPdTssGLc7+wcE5gIEE0cDLElmsiaM1E4/feBW2bvCQlP+0H4rdS4SI6iMrDxjh9/6j32LCmUFRYQ==", + "dependencies": { + "debug": "*" + } + }, + "node_modules/component-downloader": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/component-downloader/-/component-downloader-1.2.0.tgz", + "integrity": "sha512-/diPb5TiaOh6ta1ISfwPnndq4HiKRd0pTzZIitohHyLQfxI8LOFkO0s24+UTBx/Ba11QxvH+uIi60NanSRh/rQ==", + "dependencies": { + "chanel": "^2.0.1", + "co": "^3", + "component-consoler": "^2.0.0", + "component-remotes": "^1.1.1", + "debug": "*", + "decompress": "~0.2.0", + "generator-supported": "~0.0.1", + "graceful-fs": "^2.0.2", + "mkdirp": "~0.3.5", + "rimraf": "^2.2.6", + "semver": "^2.2.0", + "unglob": "~0.1.2", + "write-to": "^1.0.0" + } + }, + "node_modules/component-downloader/node_modules/graceful-fs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", + "integrity": "sha512-hcj/NTUWv+C3MbqrVb9F+aH6lvTwEHJdx2foBxlrVq5h6zE8Bfu4pv4CAAqbDcZrw/9Ak5lsRXlY9Ao8/F0Tuw==", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/component-downloader/node_modules/mkdirp": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "integrity": "sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)" + }, + "node_modules/component-downloader/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/component-downloader/node_modules/semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/component-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/component-flatten/-/component-flatten-1.0.1.tgz", + "integrity": "sha512-n0YexLJNbA7uhbBK8j0HBVi8DxzMDDXYQZWdo3Mn2cylllHCw7ZUkL3CMtQ8b2N5VEn6X5veC8bvAmdFCwmGxw==", + "deprecated": "no longer maintained, please use a different package", + "dependencies": { + "semver": "^2.2.1" + } + }, + "node_modules/component-flatten/node_modules/semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/component-ls": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/component-ls/-/component-ls-2.1.0.tgz", + "integrity": "sha512-DurdOSfT1uMS3k6iWJ2Dm6aIuPPbmHKWoE0E/65m/84c7HCSFzHRJgWXcb4TTkXUsYCtVjaCgANAZauy4krSug==", + "dependencies": { + "archy": "~0.0.2" + } + }, + "node_modules/component-manifest": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-manifest/-/component-manifest-1.0.0.tgz", + "integrity": "sha512-4eBUmLhuTzmPccH65MaV/teGWLU4gn7duvdjksw4vpuXdLwK7bjBvGIETfv8Q46c54U2ehKCf/ueBXr4xD3alA==", + "dependencies": { + "debug": "*", + "generator-supported": "~0.0.1", + "graceful-fs": "^2.0.1", + "unglob": "~0.1.1" + } + }, + "node_modules/component-manifest/node_modules/graceful-fs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", + "integrity": "sha512-hcj/NTUWv+C3MbqrVb9F+aH6lvTwEHJdx2foBxlrVq5h6zE8Bfu4pv4CAAqbDcZrw/9Ak5lsRXlY9Ao8/F0Tuw==", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/component-outdated2": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/component-outdated2/-/component-outdated2-1.0.5.tgz", + "integrity": "sha512-dMQ1zia/HarCJa0KPW65QGlPiHQI9Dfuz8idw7YGozO3ZKcUgqYNboXnH2RhSK/rJT/tUhqhUCZ6SJTWV/aFOQ==", + "dependencies": { + "component-consoler": "^2.0.0", + "component-flatten": "^1.0.1", + "component-remotes": "^1.1.5", + "generator-supported": "~0.0.1", + "semver": "^2.2.1" + } + }, + "node_modules/component-outdated2/node_modules/semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/component-pin": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/component-pin/-/component-pin-1.0.5.tgz", + "integrity": "sha512-TJY8yz7wPEBUNNeFRYWhtXjmOJebQas2Dmd5YDOy8I0wE0Y15QvjwFSADe4mIgW2GZfkJYrd/FVTm7m4TQUcDQ==", + "dependencies": { + "component-consoler": "^2.0.0", + "component-flatten": "^1.0.1", + "component-remotes": "^1.1.5", + "generator-supported": "~0.0.1", + "semver": "^2.2.1" + } + }, + "node_modules/component-pin/node_modules/semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/component-remotes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/component-remotes/-/component-remotes-1.2.0.tgz", + "integrity": "sha512-9Z1GzJwQPPTQFp/WNGSmYr4KPGzCyork/CD2WyNAi9tLxW7x5nmXxYBruszNGw+h32DNvVyrMYsAfzLARGXYVQ==", + "dependencies": { + "co": "^3", + "cogent": "git://github.com/timaschew/cogent#fix-redirects", + "component-consoler": "^2.0.0", + "component-validator": "^1.0.0", + "debug": "*", + "generator-supported": "~0.0.1", + "graceful-fs": "^2.0.2", + "semver": "^2.2.1" + } + }, + "node_modules/component-remotes/node_modules/graceful-fs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", + "integrity": "sha512-hcj/NTUWv+C3MbqrVb9F+aH6lvTwEHJdx2foBxlrVq5h6zE8Bfu4pv4CAAqbDcZrw/9Ak5lsRXlY9Ao8/F0Tuw==", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/component-remotes/node_modules/semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/component-require2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/component-require2/-/component-require2-1.1.1.tgz", + "integrity": "sha512-FvrYPSLZxE85+jtnpyuRD9x6hfRzWWjXS6QyxMlf4ZA3miwqXbdMT+qqlYRZdwxu+POaN6dLZkMxLPqS9KR8lg==" + }, + "node_modules/component-resolver": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-resolver/-/component-resolver-1.3.0.tgz", + "integrity": "sha512-jtUNWMcVuCRKUBac+v5qMk0Ka8C9XIZ0CEJMLjg/qRr67JTXlBUbABH1pyH2DlFaST+lgLkpmUsHjymyoUAJuw==", + "dependencies": { + "chanel": "^2.0.2", + "co": "^3", + "component-consoler": "^2.0.0", + "component-downloader": "^1.2.0", + "component-flatten": "^1.0.1", + "component-remotes": "^1.2.0", + "component-validator": "^1.1.1", + "debug": "*", + "generator-supported": "~0.0.1", + "graceful-fs": "^2.0.1", + "semver": "^2.2.1", + "unglob": "~0.1.2" + } + }, + "node_modules/component-resolver/node_modules/graceful-fs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", + "integrity": "sha512-hcj/NTUWv+C3MbqrVb9F+aH6lvTwEHJdx2foBxlrVq5h6zE8Bfu4pv4CAAqbDcZrw/9Ak5lsRXlY9Ao8/F0Tuw==", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/component-resolver/node_modules/semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/component-search2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/component-search2/-/component-search2-1.1.1.tgz", + "integrity": "sha512-Wz1cL/Y1Mqk83iHhVnHhLjF29MI/FYEW61UcxnTx6wXO07np54dQIpqYx+uKOlYRq7yn2xkj4d89CrdGoscs3Q==", + "dependencies": { + "bytes": "~0.3.0", + "cogent": "~0.4.0", + "component-consoler": "^2.0.0", + "debug": "*", + "event-stream": "^3.1.1", + "generator-supported": "~0.0.1", + "JSONStream": "~0.8.0", + "stream-to-array": "^1.0.0" + } + }, + "node_modules/component-search2/node_modules/bytes": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-0.3.0.tgz", + "integrity": "sha512-koasz05sePZ8FLtyBSyGGlrvr1DYqr+D/MFXkz9afRugTCGKuqw6fjWMMmaCWEKtmWpgOnaGI4qlw/hPyyYX6g==" + }, + "node_modules/component-search2/node_modules/cogent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/cogent/-/cogent-0.4.3.tgz", + "integrity": "sha512-JJZ+vbNzXN+rcZerJRLyFlZW9voOg5cdgbCjeIpaRCk38AH2ukSUaPZyIOLDKsHaWzsnO0vu2Ikpo/bOtZ7Utw==", + "dependencies": { + "debug": "*", + "generator-supported": "~0.0.1", + "netrc": "~0.1.3", + "proxy-agent": "^1.1.0", + "raw-body": "^1.1.2", + "statuses": "^1.0.2", + "write-to": "^1.0.0" + }, + "peerDependencies": { + "co": "3" + } + }, + "node_modules/component-search2/node_modules/iconv-lite": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.8.tgz", + "integrity": "sha512-D90rbOiZuEJGtmIBK9wcRpW//ZKLD8bTPOAx5oEsu+O+HhSOstX/HCZFBvNkuyDuiNHunb81cfsqaYzZxcUMYA==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/component-search2/node_modules/raw-body": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.3.4.tgz", + "integrity": "sha512-ZC2kBq6BsR0uK441H5SvGH9H+hRpTKVRjvlI6BhLOJrih3oGbGRYdFyyKKESw4/hjzJEr4cZkQgbuU52s63MOQ==", + "dependencies": { + "bytes": "1.0.0", + "iconv-lite": "0.4.8" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/component-search2/node_modules/raw-body/node_modules/bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==" + }, + "node_modules/component-updater": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/component-updater/-/component-updater-1.0.5.tgz", + "integrity": "sha512-/aOiq2OGejudfeGPlULF7aKxImSzsjvdWLCl35vfrp1FnJcHi5zGYD1GNw39k5LZKgnitz1CCPalFPRnRV5B9w==", + "dependencies": { + "component-consoler": "^2.0.0", + "component-flatten": "^1.0.1", + "component-remotes": "^1.1.5", + "generator-supported": "~0.0.1", + "semver": "^2.2.1" + } + }, + "node_modules/component-updater/node_modules/semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", + "bin": { + "semver": "bin/semver" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, + "node_modules/component-validator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/component-validator/-/component-validator-1.1.1.tgz", + "integrity": "sha512-UBLY5SXjPvwAtrPzd8s+QSEQmICbnPkTUIPhLAYMG0y2+UPDp/W7KOkXYG+pAUHraOM1SbmE+kBSwLWudtOVBw==", "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" + "component-consoler": "^2.0.0" } }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "node_modules/component-watcher": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/component-watcher/-/component-watcher-1.0.3.tgz", + "integrity": "sha512-cjBgbrbC9LACKVycJB4A9E9VsxmwN55elgxrdYLndeXGL+g0u7O0OAlvDgTbUGvF1IJD16nVfXtFpUecUzrUUQ==", "dependencies": { - "color-name": "1.1.3" + "debug": "*", + "sane": "0" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "node_modules/component/node_modules/mkdirp": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "integrity": "sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)" }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "node_modules/component/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true + "node_modules/component/node_modules/semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", + "bin": { + "semver": "bin/semver" + } }, "node_modules/compressible": { "version": "2.0.18", @@ -5938,8 +6705,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/connect": { "version": "3.7.0", @@ -6022,6 +6788,14 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, + "node_modules/cookiejar": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.0.tgz", + "integrity": "sha512-U+NgxxtwHIokuL04FqKEkqsaWBDtnCQo+wvYjUCtBA56Lcg8vpV3SGtBx+RAmw92SV3VT8PwsYcCFK/cC3Dw+A==", + "engines": { + "node": "*" + } + }, "node_modules/copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", @@ -6086,8 +6860,7 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cors": { "version": "2.8.5", @@ -6145,6 +6918,11 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/cp": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cp/-/cp-0.1.1.tgz", + "integrity": "sha512-ht9oKVsn1lAqV8FdUuSwBUQB8AG2cSyYbPim/mEwj+Dt3d21IRu2H5diDumMpKb77tsIAGM3eU484KvcTrPvHw==" + }, "node_modules/critters": { "version": "0.0.22", "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.22.tgz", @@ -6340,6 +7118,11 @@ "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, + "node_modules/data-uri-to-buffer": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz", + "integrity": "sha512-nntmCbCupHk2zFSWe64pTt0LJ2U6Bt3K1MWgwXiEAj9IEaowSXbGLYN7m8xCb4hbpQl8QSCRBkKT9tFRUMkU7A==" + }, "node_modules/date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", @@ -6353,7 +7136,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -6366,6 +7148,85 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-0.2.5.tgz", + "integrity": "sha512-uGGydmkEBFHdJe2+d3cVzSS71+Fjd5kSuE3ZtCAqnaAgpl3zficiDW3h3iZ8l6SN9dr/SOpYJ6Xe6mR3LycpdA==", + "dependencies": { + "adm-zip": "^0.4.3", + "ext-name": "^1.0.0", + "get-stdin": "^0.1.0", + "mkdirp": "^0.3.5", + "nopt": "^2.2.0", + "rimraf": "^2.2.2", + "stream-combiner": "^0.0.4", + "tar": "^0.1.18", + "tempfile": "^0.1.2" + }, + "bin": { + "decompress": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress/node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/decompress/node_modules/mkdirp": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "integrity": "sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)" + }, + "node_modules/decompress/node_modules/nopt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz", + "integrity": "sha512-gIOTA/uJuhPwFqp+spY7VQ1satbnGlD+iQVZxI18K6hs8Evq4sX81Ml7BB5byP/LsbR2yBVtmvdEmhi7evJ6Aw==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/decompress/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/decompress/node_modules/tar": { + "version": "0.1.20", + "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", + "integrity": "sha512-RW79YhJI8vSyOcVv0OzOr7DVGkhtFhyz6cufNETPF7dmCJ/kQH+ubpCZkV8Wb7RvQlPuGplQPy0o2ihElzkEZA==", + "deprecated": "This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.", + "dependencies": { + "block-stream": "*", + "fstream": "~0.1.28", + "inherits": "2" + } + }, + "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==" + }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", @@ -6416,6 +7277,104 @@ "node": ">=8" } }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz", + "integrity": "sha512-KgGV1vmSa2UPKeDXaWE5FiXjix8BOtYMgiPGpYhd/42wxiC6YGwtscj/zU9gD5/xk4K2iLDpyGhGA5puZxaeMg==", + "dependencies": { + "alter": "~0.2.0", + "ast-traverse": "~0.1.1", + "breakable": "~1.0.0", + "esprima-fb": "~15001.1001.0-dev-harmony-fb", + "simple-fmt": "~0.1.0", + "simple-is": "~0.2.0", + "stringmap": "~0.2.2", + "stringset": "~0.2.1", + "tryor": "~0.1.2", + "yargs": "~3.27.0" + }, + "bin": { + "defs": "build/es5/defs" + } + }, + "node_modules/defs/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defs/node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/defs/node_modules/esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz", + "integrity": "sha512-m7OsYzocA8OQ3+9CxmhIv7NPHtyDR2ixaLCO7kLZ+YH+xQ/BpaZmll9EXmc+kBxzWA8BRBXbNEuEQqQ6vfsgDw==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/defs/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "node_modules/defs/node_modules/yargs": { + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz", + "integrity": "sha512-6atYjGACjX/OYWico7LwdBx9eiGlkMnIw6OwqfBb+uJQpaT82tQ7oI+BI6Dvq62qZvSbzGzQCVLQdMd59tR2eA==", + "dependencies": { + "camelcase": "^1.2.1", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "os-locale": "^1.4.0", + "window-size": "^0.1.2", + "y18n": "^3.2.0" + } + }, + "node_modules/degenerator": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha512-EMAC+riLSC64jKfOs1jp8J7M4ZXstUUwTdwFBEv6HOzL/Ae+eAzMKEK0nJnpof2fnw9IOjmE6u6qXFejVyk8AA==", + "dependencies": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + } + }, + "node_modules/degenerator/node_modules/esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -6441,6 +7400,31 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, + "node_modules/detective": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", + "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", + "dependencies": { + "acorn": "^5.2.1", + "defined": "^1.0.0" + } + }, + "node_modules/detective/node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dethroy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dethroy/-/dethroy-1.0.2.tgz", + "integrity": "sha512-oZawVs0uwJqhRBYehJsRpU0l2BhEFNXVOAIhivhjNig8QZ3/eHB2xls37rkCbg3PmSkaX0YbdLmnG83z8ZnPKA==" + }, "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -6550,6 +7534,11 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -6568,6 +7557,11 @@ "integrity": "sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==", "dev": true }, + "node_modules/emitter-component": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.0.0.tgz", + "integrity": "sha512-GZrLdp4Z7OERecoYQYElVVqf6/gcbGUs8nvaE+nmu2dGy453lLgGyPLNX9DdSyojdMqI86fCT9XQqsWJymciEw==" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -6740,6 +7734,15 @@ "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==", "dev": true }, + "node_modules/es6-module-jstransform": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/es6-module-jstransform/-/es6-module-jstransform-0.1.4.tgz", + "integrity": "sha512-jICJqz4k0qOeGgSJ9fGjvWxnuLsC69qaaLTs3rGtO2ZnARpJ+nAzaXdcj+WPzGUl9KlwtpMD5tWd8l5TRgBfaA==", + "dependencies": { + "esprima-fb": "~3001.1.0-dev-harmony-fb", + "jstransform": "~3.0.0" + } + }, "node_modules/esbuild": { "version": "0.20.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", @@ -6815,6 +7818,36 @@ "node": ">=0.8.0" } }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/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==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -6832,7 +7865,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -6841,6 +7873,18 @@ "node": ">=4" } }, + "node_modules/esprima-fb": { + "version": "3001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", + "integrity": "sha512-a3RFiCVBiy8KdO6q/C+8BQiP/sRk8XshBU3QHHDP8tNzjYwR3FKBOImu+PXfVhPoZL0JKtJLBAOWlDMCCFY8SQ==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -6866,7 +7910,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, "engines": { "node": ">=4.0" } @@ -6875,7 +7918,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -6889,6 +7931,29 @@ "node": ">= 0.6" } }, + "node_modules/event-stream": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.5.tgz", + "integrity": "sha512-vyibDcu5JL20Me1fP734QBH/kenBGLZap2n0+XXM7mvuUPzJ20Ydqj1aKcIeMdri1p+PU+4yAKugjN8KCVst+g==", + "dependencies": { + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" + } + }, + "node_modules/event-stream/node_modules/stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", + "dependencies": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -7026,11 +8091,36 @@ "node": ">= 0.8" } }, + "node_modules/ext-list": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-0.2.0.tgz", + "integrity": "sha512-5HDeVof2cxke3u+FQ3FhTVf9UZUK/07Y/5SNqOL8AjCEEcqZciaR4gP1ESIVbYxctlkClVLHddm8oPsk+Ndcrw==", + "dependencies": { + "got": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-1.0.1.tgz", + "integrity": "sha512-1FkRYVZnrkShQu6UagNtNQuTtHn1n5kGmanUsmEN0iF0+szGUREoDRpXLejAdHMA+fM+sf8S11JUq+RWJALRYw==", + "dependencies": { + "ext-list": "^0.2.0", + "underscore.string": "~2.3.3" + }, + "bin": { + "extname": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/external-editor": { "version": "3.1.0", @@ -7074,6 +8164,11 @@ "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==" + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -7110,6 +8205,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/file-uri-to-path": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-0.0.2.tgz", + "integrity": "sha512-jNmalsdk1enTf+tjxrMb3nutLleumh96WWtXJQHU700Jmjyl/CHj33Di5iFECNNfgb9GwlMNKU18tukUPlFXMg==" + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -7259,6 +8359,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/formidable": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz", + "integrity": "sha512-aOskFHEfYwkSKSzGui5jhQ+uyLo2NTwpzhndggz2YZHlv0HkAi+zG5ZEBCL3GTvqLyr/FzX9Mvx9DueCmu2HzQ==", + "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -7290,6 +8399,11 @@ "node": ">= 0.6" } }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==" + }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -7325,8 +8439,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.3", @@ -7339,9 +8452,78 @@ "darwin" ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/fstream": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "integrity": "sha512-N1pLGEHoDyCoI8uMmPXJXhn238L4nk41iipXCrqs4Ss0ooYSr5sNj2ucMo5AqJVC4OaOa7IztpBhOaaYTGZVuA==", + "dependencies": { + "graceful-fs": "~3.0.2", + "inherits": "~2.0.0", + "mkdirp": "0.5", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fstream/node_modules/graceful-fs": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz", + "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==", + "dependencies": { + "natives": "^1.1.3" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", + "dependencies": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ftp/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/ftp/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, + "node_modules/ftp/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -7351,6 +8533,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/generator-supported": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/generator-supported/-/generator-supported-0.0.1.tgz", + "integrity": "sha512-VfNqamgY6cuNhi6GF4NIYs5jtJsPZZtpMJl1lCBko5FNALeZ0WfXeG5WMke3lVwfYI6jH1BLZcXyukP9wtPhfw==" + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -7397,6 +8584,14 @@ "node": ">=8.0.0" } }, + "node_modules/get-stdin": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz", + "integrity": "sha512-/WBu3IaQZxE3bs3BhBmR10ipDY4pjN+U4EZgXULa1eqKA0B/Lka/MVoAqhTVYBkkRlCrEGDOU9itrzIgm9Ksng==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -7409,11 +8604,63 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-uri": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-0.1.4.tgz", + "integrity": "sha512-xV5cksh/mERjnnDgZe0wKO2VokqUeTe/QaKrhUHhm77eiLXhGrWi5qiz20tF6NKRTcY47YP1OzSRgTHadNY3mQ==", + "dependencies": { + "data-uri-to-buffer": "0", + "debug": "2", + "extend": "3", + "file-uri-to-path": "0", + "ftp": "~0.3.5", + "readable-stream": "2" + } + }, + "node_modules/get-uri/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/get-uri/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/get-uri/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/get-uri/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==" + }, + "node_modules/get-uri/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7487,11 +8734,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/got/-/got-0.2.0.tgz", + "integrity": "sha512-YTZ1W2+KYNuBSR2icdJIU4EXddb6NsjXcZN/e1ggfkdniQk1mrVaxyyRJL0Mi+HggW3+Ld2vH3dDl/tI2LKmag==", + "dependencies": { + "object-assign": "^0.3.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/got/node_modules/object-assign": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-0.3.1.tgz", + "integrity": "sha512-4gWmwoU6o9UImLLzq+8R+kzWT0ABYdKXuvSp08JpYzhibFvdUirMfE9nE5yYHcG1k9ClcVueR4TolZpRvwg5og==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/handle-thing": { "version": "2.0.1", @@ -7780,7 +9045,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -7931,7 +9195,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -7940,8 +9203,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "4.1.2", @@ -7990,6 +9252,19 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==" + }, "node_modules/ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", @@ -8036,6 +9311,11 @@ "node": ">=8" } }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -8108,6 +9388,11 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -8186,8 +9471,7 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/isbinaryfile": { "version": "4.0.10", @@ -8392,6 +9676,11 @@ "jiti": "bin/jiti.js" } }, + "node_modules/js-base64": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", + "integrity": "sha512-f+5mYh8iF7FlF7zgmj/yqvvYQUHI0kAxGiLjIfNxZzqJ7RQNc4sjgp8crVJw0Kzv2O6aFGZWgMTnO71I9utHSg==" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8480,6 +9769,53 @@ "node >= 0.2.0" ] }, + "node_modules/JSONStream": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.8.4.tgz", + "integrity": "sha512-l0NN3IcqrZfZBJp7JWDJIHsnPV7yzJWqsYxQzL8Fwdx1BmEMjLuvtYkv+P9pbvpyfP75/f4MeDZhWNU4is32uA==", + "dependencies": { + "jsonparse": "0.0.5", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "index.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/JSONStream/node_modules/jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha512-fw7Q/8gFR8iSekUi9I+HqWIap6mywuoe7hQIg3buTVjuZgALKj4HAmm0X6f+TaL4c9NJbvyFQdaI2ppr5p6dnQ==", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/jstransform": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-3.0.0.tgz", + "integrity": "sha512-sMwqW0EdQk2A5NjddlcSSLp6t7pIknOrJtxPU3kMN82RJXPGbdC3fcM5VhIsApNKL1hpeH38iSQsJRbgprPQZg==", + "dependencies": { + "base62": "0.1.1", + "esprima-fb": "~3001.1.0-dev-harmony-fb", + "source-map": "0.1.31" + }, + "engines": { + "node": ">=0.8.8" + } + }, + "node_modules/jstransform/node_modules/source-map": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "integrity": "sha512-qFALUiKHo35Duky0Ubmb5YKj9b3c6CcgGNGeI60sd6Nn3KaY7h9fclEOcCVk0hwszwYYP6+X2/jpS5hHqqVuig==", + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/karma": { "version": "6.4.3", "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.3.tgz", @@ -8719,6 +10055,25 @@ "shell-quote": "^1.8.1" } }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/less": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", @@ -8812,6 +10167,18 @@ "node": ">=0.10.0" } }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "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", @@ -8988,6 +10355,14 @@ "node": ">=8.0" } }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -9056,6 +10431,19 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==" + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -9204,7 +10592,6 @@ "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" }, @@ -9216,7 +10603,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9412,7 +10798,6 @@ "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, "dependencies": { "minimist": "^1.2.6" }, @@ -9432,8 +10817,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multicast-dns": { "version": "7.2.5", @@ -9486,6 +10870,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natives": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", + "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", + "deprecated": "This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x." + }, "node_modules/needle": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", @@ -9531,6 +10921,19 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "node_modules/netmask": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha512-3DWDqAtIiPSkBXZyYEjwebfK56nrlQfRGt642fu8RPaL+ePu750+HCMHxjJCG3iEHq/0aeMvX6KIzlv7nuhfrA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/netrc": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz", + "integrity": "sha512-ye8AIYWQcP9MvoM1i0Z2jV0qed31Z8EWXYnyGNkiUAd+Fo8J+7uy90xTV8g/oAbhtjkY7iZbNTizQaXdKUuwpQ==" + }, "node_modules/nice-napi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", @@ -9689,6 +11092,30 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/noptify": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz", + "integrity": "sha512-EZT35r9AuK+hig+iYv4144kwfDEDhlj3zncVHw9b9d86TUYk/67BtBApkfPD1kslAT/8TTD262xdsVbV+iCSTw==", + "dependencies": { + "nopt": "~2.0.0" + } + }, + "node_modules/noptify/node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/noptify/node_modules/nopt": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz", + "integrity": "sha512-uVTsuT8Hm3aN3VttY+BPKw4KU9lVpI0F22UAr/I1r6+kugMr3oyhMALkycikLcdfvGRsgzCYN48DYLBFcJEUVg==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, "node_modules/normalize-package-data": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", @@ -9906,7 +11333,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -9943,6 +11369,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", @@ -10036,6 +11478,17 @@ "node": ">=8" } }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -10118,6 +11571,60 @@ "node": ">=6" } }, + "node_modules/pac-proxy-agent": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-0.2.0.tgz", + "integrity": "sha512-n7a4CFNSiKfr0Kr2XbJxUEQOab5JMJk3si0SNEjKdKAorg15dW4PZWpKZ+J5rr0S91TbuyLnl37vRS0zU7K4cg==", + "dependencies": { + "agent-base": "~1.0.1", + "debug": "2", + "extend": "~1.2.1", + "get-uri": "~0.1.0", + "pac-resolver": "~1.2.1", + "proxy-agent": "1", + "stream-to-array": "~1.0.0" + } + }, + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-1.0.2.tgz", + "integrity": "sha512-IrdRInle5l28T2DjBsOojXniN91mXYkt9piDyPbPEoA/X+f7kjd0qiIb18vZThIZCJdLk2Zq/ukXxZp8NkcFsw==" + }, + "node_modules/pac-proxy-agent/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/pac-proxy-agent/node_modules/extend": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz", + "integrity": "sha512-2/JwIYRpMBDSjbQjUUppNSrmc719crhFaWIdT+TRSVA8gE+6HEobQWqJ6VkPt/H8twS7h/0WWs7veh8wmp98Ng==" + }, + "node_modules/pac-proxy-agent/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/pac-resolver": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-1.2.6.tgz", + "integrity": "sha512-hgYjw6snhgn68Rdb2Sgrd/rUKMkZ9EpXiA7G9Gqr9BsC6Bb+l1tAZ11WoYfNYzqamdkXU4m3VOb29H4VHOinyA==", + "dependencies": { + "co": "~3.0.6", + "degenerator": "~1.0.0", + "netmask": "~1.0.4", + "regenerator": "~0.8.13", + "thunkify": "~2.1.1" + } + }, + "node_modules/pac-resolver/node_modules/co": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/co/-/co-3.0.6.tgz", + "integrity": "sha512-Vj29f/AYywpPtHPhN9YqC7yK+p3rfjv7l/mTu5iOtn89a7DdccD4MYQmfU6R9wGdLXwufDIV07+PjXM0taVKvw==" + }, "node_modules/pacote": { "version": "17.0.6", "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", @@ -10255,7 +11762,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -10315,6 +11821,14 @@ "node": ">=8" } }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dependencies": { + "through": "~2.3" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -10691,6 +12205,22 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/proc-log": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", @@ -10703,8 +12233,7 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/promise-inflight": { "version": "1.0.1", @@ -10747,6 +12276,99 @@ "node": ">= 0.10" } }, + "node_modules/proxy-agent": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-1.1.1.tgz", + "integrity": "sha512-25H5ZU12cl82fjFJmlq8iYy9gHjw4jdNmJQBbdztwcpPl4URsepnlTZUqAXKwrxwtPXg4z6NbrIiB7e3arxVUw==", + "dependencies": { + "http-proxy-agent": "0", + "https-proxy-agent": "0", + "lru-cache": "~2.5.0", + "pac-proxy-agent": "0", + "socks-proxy-agent": "1" + } + }, + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-1.0.2.tgz", + "integrity": "sha512-IrdRInle5l28T2DjBsOojXniN91mXYkt9piDyPbPEoA/X+f7kjd0qiIb18vZThIZCJdLk2Zq/ukXxZp8NkcFsw==" + }, + "node_modules/proxy-agent/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/proxy-agent/node_modules/http-proxy-agent": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-0.2.7.tgz", + "integrity": "sha512-9W3grrlsrW2kRGNRbGkBNVFx4voQS1H1TxWR60MVHKQ+rw+kRtA9JXVGQiiDgYsp315Ex5HPk+3it4lBNyk4WA==", + "dependencies": { + "agent-base": "~1.0.1", + "debug": "2", + "extend": "3" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-0.3.6.tgz", + "integrity": "sha512-ZuLafAeUu97abfbpAO9Cwjl3slsx6yZ7apTYBNVtMdoDhlVzUhxXO0qh+Xxqc5FAm7oq747k2jjbICYJdEYShg==", + "dependencies": { + "agent-base": "~1.0.1", + "debug": "2", + "extend": "3" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.2.tgz", + "integrity": "sha512-wyqfj+623mgqv+bpjTdivSoC/LtY9oOrmKz2Cke0NZcgYW9Kce/qWjd9e5PDYf8wuiKfVeo8VnyOSSyeRiUsLw==" + }, + "node_modules/proxy-agent/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/proxy-agent/node_modules/smart-buffer": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", + "integrity": "sha512-1+8bxygjTsNfvQe0/0pNBesTOlSHtOeG6b6LYbvsZCCHDKYZ40zcQo6YTnZBWrBSLWOCbrHljLdEmGMYebu7aQ==", + "engines": { + "node": ">= 0.10.15", + "npm": ">= 1.3.5" + } + }, + "node_modules/proxy-agent/node_modules/socks": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", + "integrity": "sha512-ArX4vGPULWjKDKgUnW8YzfI2uXW7kzgkJuB0GnFBA/PfT3exrrOk+7Wk2oeb894Qf20u1PWv9LEgrO0Z82qAzA==", + "deprecated": "If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0", + "dependencies": { + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" + }, + "engines": { + "node": ">= 0.10.0", + "npm": ">= 1.3.5" + } + }, + "node_modules/proxy-agent/node_modules/socks-proxy-agent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-1.0.2.tgz", + "integrity": "sha512-F8xR1C4uplta4XIwHvvpIxhLO8oCWLuC48hSgFpMqps45WqtOZQ4JadJ5YGo0eGMvIp94qV3bX3Tqi2iHGlNvw==", + "dependencies": { + "agent-base": "~1.0.1", + "extend": "~1.2.1", + "socks": "~1.1.5" + } + }, + "node_modules/proxy-agent/node_modules/socks-proxy-agent/node_modules/extend": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz", + "integrity": "sha512-2/JwIYRpMBDSjbQjUUppNSrmc719crhFaWIdT+TRSVA8gE+6HEobQWqJ6VkPt/H8twS7h/0WWs7veh8wmp98Ng==" + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -10760,7 +12382,16 @@ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { - "node": ">=6" + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" } }, "node_modules/qjobs": { @@ -10970,6 +12601,53 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/recast": { + "version": "0.10.33", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz", + "integrity": "sha512-RxAVgvgWGzfFYsdc3PB6TM4/cq8HMgBH8PC9r+SkO7j1MeHZvIMxLSVlUhin3sv9wbAy8CMAPXSGSGkWPovyKQ==", + "dependencies": { + "ast-types": "0.8.12", + "esprima-fb": "~15001.1001.0-dev-harmony-fb", + "private": "~0.1.5", + "source-map": "~0.5.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/recast/node_modules/ast-types": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz", + "integrity": "sha512-rWhsoD0aHKpx+aKIP0Sf92bai1HC5iZcB1n/HCnkIMR8Bhx0gYRQySo062Y65ND4oRgcuxpLcPrcco09I1shpg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/recast/node_modules/esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz", + "integrity": "sha512-m7OsYzocA8OQ3+9CxmhIv7NPHtyDR2ixaLCO7kLZ+YH+xQ/BpaZmll9EXmc+kBxzWA8BRBXbNEuEQqQ6vfsgDw==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/recast/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz", + "integrity": "sha512-y0wyCcdQul3hI3xHfIs0vg/jSbboQc/YTOAqaxjFG7At+XSexduuOqBVL9SmOLSwa/ldkbzVzdwuk9s2EKTAZg==" + }, "node_modules/reflect-metadata": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", @@ -10994,6 +12672,26 @@ "node": ">=4" } }, + "node_modules/regenerator": { + "version": "0.8.46", + "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.46.tgz", + "integrity": "sha512-jFhAPsOnJ/UIZCG1+iISKiczjnLWaQ4RatPkg5BZIcgz0m3C+txY28U0H7ij+fLSADmY+kHj9HZff6CLq9hrVA==", + "dependencies": { + "commoner": "~0.10.3", + "defs": "~1.1.0", + "esprima-fb": "~15001.1001.0-dev-harmony-fb", + "private": "~0.1.5", + "recast": "0.10.33", + "regenerator-runtime": "~0.9.5", + "through": "~2.3.8" + }, + "bin": { + "regenerator": "bin/regenerator" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", @@ -11009,6 +12707,23 @@ "@babel/runtime": "^7.8.4" } }, + "node_modules/regenerator/node_modules/esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz", + "integrity": "sha512-m7OsYzocA8OQ3+9CxmhIv7NPHtyDR2ixaLCO7kLZ+YH+xQ/BpaZmll9EXmc+kBxzWA8BRBXbNEuEQqQ6vfsgDw==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/regenerator/node_modules/regenerator-runtime": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz", + "integrity": "sha512-D0Y/JJ4VhusyMOd/o25a3jdUqN/bC85EFsaoL9Oqmy/O4efCh+xhp7yj2EEOsj974qvMkcW8AwUzJ1jB/MbxCw==" + }, "node_modules/regex-parser": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", @@ -11053,6 +12768,14 @@ "jsesc": "bin/jsesc" } }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -11071,6 +12794,11 @@ "node": ">=0.10.0" } }, + "node_modules/requires": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/requires/-/requires-1.0.2.tgz", + "integrity": "sha512-X0owrXW/+IVhkwoYHL9ZKQQBfq+5NiPVmw6ev7LhWFecMmx9uhbBzjbR/xxv9bRSsHorSrUpQm6WNQdUxnlGtg==" + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -11180,6 +12908,17 @@ "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", "dev": true }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -11293,14 +13032,45 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/safevalues": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" }, + "node_modules/sane": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/sane/-/sane-0.8.1.tgz", + "integrity": "sha512-hWKZiIn39itnpdiiLT+Zh1gIQfS22Nwp9h4GrriMe9iCBcrcuUF264ELNADbBjiLIJqCzEIAtNR8uD+WCYVtTQ==", + "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", + "dependencies": { + "minimatch": "~0.2.14", + "walker": "~1.0.5", + "watch": "~0.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/sane/node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==" + }, + "node_modules/sane/node_modules/minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, "node_modules/sass": { "version": "1.71.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", @@ -11361,9 +13131,7 @@ "node_modules/sax": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true, - "optional": true + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "node_modules/schema-utils": { "version": "4.2.0", @@ -11678,6 +13446,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==" + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -11701,6 +13474,16 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/simple-fmt": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz", + "integrity": "sha512-9a3zTDDh9LXbTR37qBhACWIQ/mP/ry5xtmbE98BJM8GR02sanCkfMzp7AdCTqYhkBZggK/w7hJtc8Pb9nmo16A==" + }, + "node_modules/simple-is": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz", + "integrity": "sha512-GJXhv3r5vdj5tGWO+rcrWgjU2azLB+fb7Ehh3SmZpXE0o4KrrFLti0w4mdDCbR29X/z0Ls20ApjZitlpAXhAeg==" + }, "node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", @@ -11934,6 +13717,17 @@ "wbuf": "^1.7.3" } }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -11952,15 +13746,36 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, "engines": { "node": ">= 0.6" } }, + "node_modules/stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "dependencies": { + "duplexer": "~0.1.1" + } + }, + "node_modules/stream-to-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-1.0.0.tgz", + "integrity": "sha512-Z+ny0tylkXcRS4Jq49BNcKVmt0MrF3E/I500a18zckGt0ZMrOh1ILlbUz+FSjJePYeVbNUBCdvjfDDol27Ld1g==", + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/streamroller": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", @@ -12013,6 +13828,16 @@ "node": ">=8" } }, + "node_modules/stringmap": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz", + "integrity": "sha512-mR1LEHDw6TsHa+LwJeeBc9ZqZqEOm7bHidgxMmDg8HB/rbA1HhDeT08gS67CCCG/xrgIfQx5tW42pd8vFpLUow==" + }, + "node_modules/stringset": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz", + "integrity": "sha512-km3jeiRpmySChl1oLiBE2ESdG5k/4+6tjENVL6BB3mdmKBiUikI5ks4paad2WAKsxzpNiBqBBbXCC12QqlpLWA==" + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -12124,6 +13949,60 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/superagent": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-0.17.0.tgz", + "integrity": "sha512-ASGnKAf/X5HxEKjW+mpy8sk53a0Mi9XwBhQpPfqkFh+cl7K41NvUhsIJ/RAMCkQDZEfqu/FYQJoAK5JVp86p9g==", + "deprecated": "Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net", + "dependencies": { + "cookiejar": "1.3.0", + "debug": "~0.7.2", + "emitter-component": "1.0.0", + "extend": "~1.2.1", + "formidable": "1.0.14", + "methods": "0.0.1", + "mime": "1.2.5", + "qs": "0.6.5", + "reduce-component": "1.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/superagent/node_modules/debug": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "integrity": "sha512-EohAb3+DSHSGx8carOSKJe8G0ayV5/i609OD0J2orCkuyae7SyZSz2aoLmQF2s0Pj5gITDebwPH7GFBlqOUQ1Q==", + "engines": { + "node": "*" + } + }, + "node_modules/superagent/node_modules/extend": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz", + "integrity": "sha512-2/JwIYRpMBDSjbQjUUppNSrmc719crhFaWIdT+TRSVA8gE+6HEobQWqJ6VkPt/H8twS7h/0WWs7veh8wmp98Ng==" + }, + "node_modules/superagent/node_modules/methods": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/methods/-/methods-0.0.1.tgz", + "integrity": "sha512-pB8oFfci/xcfUgM6DTxc7lbTKifPPgs3mZUOsEgaH+1TTWpmcmv3sHl+5sUHIj2X2W8aPYa2+nJealRHK+Lo6A==" + }, + "node_modules/superagent/node_modules/mime": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.5.tgz", + "integrity": "sha512-QfwTOA+zRHSZXxl9Y7ue5ifKDhU1prnh0dO67Vgcl7Lcx0+79vL9A1ln0qtVur8CFSdYq5Zhnw9DDZQgwDh8Ng==", + "engines": { + "node": "*" + } + }, + "node_modules/superagent/node_modules/qs": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.5.tgz", + "integrity": "sha512-n7wA/f30O3SsOw2BVkGUDzjWMw7kXvQJWKtDdgfq5HJvDoad+Jbc6osN1AQ0Iain5plo9e7Cs5fE+xR+DVkPTw==", + "engines": { + "node": "*" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -12157,6 +14036,14 @@ "node": ">=0.10" } }, + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dependencies": { + "acorn-node": "^1.2.0" + } + }, "node_modules/tailwindcss": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", @@ -12283,6 +14170,23 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/tempfile": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-0.1.3.tgz", + "integrity": "sha512-eW5GbbQLBEpa21WNlpvJcvv/DNXLyMNOQBnhellCzQdXAf5Ctmrr8GDLc/YAymOF3t+17wmeE+kZCKBoaanEtA==", + "dependencies": { + "uuid": "~1.4.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tempfile/node_modules/uuid": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-1.4.2.tgz", + "integrity": "sha512-woV5Ei+GBJyrqMXt0mJ9p8/I+47LYKp/4urH76FNTMjl22EhLPz1tNrQufTsrFf/PYV/7ctSZYAK7fKPWQKg+Q==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." + }, "node_modules/terser": { "version": "5.29.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", @@ -12419,12 +14323,60 @@ "node": ">=0.8" } }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/thunkify": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha512-w9foI80XcGImrhMQ19pxunaEC5Rp2uzxZZg4XBAFRfiLOplk3F0l7wo+bO16vC2/nlQfR/mXZxcduo0MF2GWLg==" + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, + "node_modules/tiny-lr-fork": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/tiny-lr-fork/-/tiny-lr-fork-0.0.5.tgz", + "integrity": "sha512-vhcvny/8f46rrViKV0BOUjVl4c/rDTztnT1+kT7iyD/Igqb/uyiRsKLxMc2Z8CNvTE1Px1tuNrPM+BOUL+3vlQ==", + "dependencies": { + "debug": "~0.7.0", + "faye-websocket": "~0.4.3", + "noptify": "~0.0.3", + "qs": "~0.5.2" + }, + "bin": { + "tiny-lr-fork": "bin/tiny-lr" + } + }, + "node_modules/tiny-lr-fork/node_modules/debug": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "integrity": "sha512-EohAb3+DSHSGx8carOSKJe8G0ayV5/i609OD0J2orCkuyae7SyZSz2aoLmQF2s0Pj5gITDebwPH7GFBlqOUQ1Q==", + "engines": { + "node": "*" + } + }, + "node_modules/tiny-lr-fork/node_modules/faye-websocket": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz", + "integrity": "sha512-78pqrJbvGZSe8i+PLsPd+aJqTyGqgyWLnMw5NOwtXCTVMzEFh1zQPwIuIL/ycTj4rkDy5zZ9B6frYPqVPJBzyQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/tiny-lr-fork/node_modules/qs": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", + "integrity": "sha512-KbOrQrP5Ye+0gmq+hwxoJwAFRwExACWqwxj1IDFFgqOw9Poxy3wwSbafd9ZqP6T6ykMfnxM573kt/a4i9ybatQ==", + "engines": { + "node": "*" + } + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -12437,6 +14389,16 @@ "node": ">=0.6.0" } }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-descriptor/-/to-descriptor-1.0.1.tgz", + "integrity": "sha512-wxfaAjsoz5ptZjuqkEe7KLQ0VvdBH8a+FFzdmeVD9c7TWU9KCzLAC3li4bZ8xiPJsZMqVnZWM/7glZQngMTeEQ==" + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -12476,6 +14438,11 @@ "tree-kill": "cli.js" } }, + "node_modules/tryor": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz", + "integrity": "sha512-2+ilNA00DGvbUYYbRrm3ux+snbo7I6uPXMw8I4p/QMl7HUOWBBZFbk+Mpr8/IAPDQE+LQ8vOdlI6xEzjc+e/BQ==" + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -12501,6 +14468,17 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "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", @@ -12568,6 +14546,14 @@ "node": "*" } }, + "node_modules/underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha512-hbD5MibthuDAu4yA5wxes5bzFgqd3PpBJuClbRxaNddxfdsz+qf+1kHwrGQFrmchmDHb9iNU+6EHDn8uj0xDJg==", + "engines": { + "node": "*" + } + }, "node_modules/undici": { "version": "6.11.1", "resolved": "https://registry.npmjs.org/undici/-/undici-6.11.1.tgz", @@ -12583,6 +14569,59 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, + "node_modules/unglob": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unglob/-/unglob-0.1.2.tgz", + "integrity": "sha512-L+VIVtnV3YV9INYG6rWVXaq7yBVzecxstKEuns5niJiKh1XLC3xrOsbVEnyyHhjlTL4eEeaFCmXQhZgXAEw9pA==", + "dependencies": { + "generator-supported": "~0.0.1", + "glob": "~3.2.8", + "minimatch": "~0.2.14" + } + }, + "node_modules/unglob/node_modules/glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha512-hVb0zwEZwC1FXSKRPFTeOtN7AArJcJlI6ULGLtrstaswKNlrTJqAA+1lYlSUop4vjA423xlBzqfVS3iWGlqJ+g==", + "dependencies": { + "inherits": "2", + "minimatch": "0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/unglob/node_modules/glob/node_modules/minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha512-WFX1jI1AaxNTZVOHLBVazwTWKaQjoykSzCBNXB72vDTCzopQGtyP91tKdFK5cv1+qMwPyiTu1HqUriqplI8pcA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/unglob/node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==" + }, + "node_modules/unglob/node_modules/minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, "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", @@ -12707,8 +14746,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/utils-merge": { "version": "1.0.1", @@ -13228,6 +15266,22 @@ "node": ">=0.10.0" } }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watch": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz", + "integrity": "sha512-FAk18nzhYggg939xgRRLJjvqmAKZciO24wr8neoxNPl87w8J3m784wxL4zFBwME+0gNQ2Sv/vfsCrUxPxU2Dmg==", + "engines": [ + "node >=0.1.95" + ] + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -13577,6 +15631,43 @@ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, + "node_modules/win-fork": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/win-fork/-/win-fork-1.1.1.tgz", + "integrity": "sha512-kMnrXXHyb/Zx1ynkiMtcEgq+rxXFIfs/IhhxVBmIk+1KwPyIggZU0RAiADExhSyf0NESvCWQyfO4eGdlU9fBSw==", + "bin": { + "win-fork": "bin/win-spawn", + "win-line-endings": "bin/win-line-endings", + "win-spawn": "bin/win-spawn" + } + }, + "node_modules/window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha512-2thx4pB0cV3h+Bw7QmMXcEbdmOzv9t0HFplJH/Lz6yu60hXYy5RT8rUu+wlIreVxWsGN20mo+MHeCSfUpQBwPw==", + "bin": { + "window-size": "cli.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -13678,8 +15769,19 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-to": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/write-to/-/write-to-1.1.1.tgz", + "integrity": "sha512-pcG7jO2XQm49G+oCJhFtQC2Dh7U//K0jzXnCetNERZn57/HbyuQQ+FFDOCUq61Sw3KGHqxO9uEWVaj/tJeAhxw==", + "dependencies": { + "dethroy": "1", + "mkdirp": "0" + }, + "engines": { + "node": ">= 0.8.0" + } }, "node_modules/ws": { "version": "8.11.0", @@ -13702,6 +15804,42 @@ } } }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==", + "engines": { + "node": "*" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index e1d847a..43a9cf8 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,11 @@ "@angular/platform-browser": "^17.3.0", "@angular/platform-browser-dynamic": "^17.3.0", "@angular/router": "^17.3.0", + "component": "^1.1.0", "cors": "^2.8.5", "rxjs": "~7.8.0", "tslib": "^2.3.0", + "xml2js": "^0.6.2", "zone.js": "~0.14.3" }, "devDependencies": { @@ -30,6 +32,7 @@ "@angular/cli": "^17.3.6", "@angular/compiler-cli": "^17.3.0", "@types/jasmine": "~5.1.0", + "@types/xml2js": "^0.4.14", "autoprefixer": "^10.4.19", "jasmine-core": "~5.1.0", "karma": "~6.4.0", @@ -41,4 +44,4 @@ "tailwindcss": "^3.4.3", "typescript": "~5.4.2" } -} \ No newline at end of file +} diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 6c3b41e..77f3be2 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -23,6 +23,7 @@ import {NavbarComponent} from "./shared/navbar/navbar.component"; import {HeaderComponent} from "./shared/header/header.component"; import {FooterComponent} from "./shared/footer/footer.component"; import {CacheService} from "../services/cache.service"; +import {TimetableComponent} from "./main/timetable/timetable.component"; export const routes: Routes = [ {path: 'home', component: HomeComponent}, @@ -42,7 +43,8 @@ export const routes: Routes = [ HomeComponent, NavigationsComponent, NavbarComponent, - FooterComponent + FooterComponent, + TimetableComponent ], imports: [ HttpClientModule, @@ -79,7 +81,8 @@ export const routes: Routes = [ HomeComponent, NavigationsComponent, NavbarComponent, - FooterComponent + FooterComponent, + TimetableComponent ], schemas: [ CUSTOM_ELEMENTS_SCHEMA diff --git a/src/app/main/search/search.component.ts b/src/app/main/search/search.component.ts index 825d1d0..fdce084 100644 --- a/src/app/main/search/search.component.ts +++ b/src/app/main/search/search.component.ts @@ -1,7 +1,7 @@ import {Component, OnInit} from '@angular/core'; import {Router, ActivatedRoute} from '@angular/router'; import {DbService} from "../../../services/db.service"; -import {Station} from "../../../models/resultModel"; +import {Station} from "../../../models/result.StationData.Stations"; import {Subject} from 'rxjs'; import {debounceTime, distinctUntilChanged} from 'rxjs/operators'; import {typeCheckFilePath} from "@angular/compiler-cli/src/ngtsc/typecheck"; diff --git a/src/app/main/search/station-detail/station-detail.component.html b/src/app/main/search/station-detail/station-detail.component.html index d594ca6..c7492ec 100644 --- a/src/app/main/search/station-detail/station-detail.component.html +++ b/src/app/main/search/station-detail/station-detail.component.html @@ -1,8 +1,8 @@
-
-
{{ station.name }}
+
+
{{ station.name }}
{{ station.evaNumbers[0].number }}
diff --git a/src/app/main/search/station-detail/station-detail.component.ts b/src/app/main/search/station-detail/station-detail.component.ts index fb9862b..f10052d 100644 --- a/src/app/main/search/station-detail/station-detail.component.ts +++ b/src/app/main/search/station-detail/station-detail.component.ts @@ -1,16 +1,18 @@ import {Component, Input, OnInit} from '@angular/core'; -import {Station} from '../../../../models/resultModel'; +import {Station} from '../../../../models/result.StationData.Stations'; import {MatDialog} from '@angular/material/dialog'; import {IconExplanationDialogComponent} from "./icon-explanation-dialog/icon-explanation-dialog.component"; import {ConfigService} from "../../../../services/config.service"; -import {join} from "@angular/compiler-cli"; import { Explanation, IconExplanationConfigModel, - Explanations, ExplanationsModel } from "../../../../models/iconExplanationConfigModel"; -import {handleAutoChangeDetectionStatus} from "@angular/cdk/testing"; +import {DbService} from "../../../../services/db.service"; +import { + convertToModel, + Timetable +} from "../../../../models/result.TimeTable.Plan"; @Component({ @@ -18,16 +20,16 @@ import {handleAutoChangeDetectionStatus} from "@angular/cdk/testing"; templateUrl: './station-detail.component.html', styleUrls: ['./station-detail.component.css'] }) -export class StationDetailComponent{ +export class StationDetailComponent { @Input() station: Station; config: IconExplanationConfigModel; constructor( private dialog: MatDialog, + private dbService: DbService, private configService: ConfigService) { this.configService.fetchConfig("data/iconExplanations.json").subscribe( (value: ExplanationsModel) => { - console.log(value); this.config = new IconExplanationConfigModel(value); } ); @@ -49,9 +51,9 @@ export class StationDetailComponent{ color: color } }) - } - protected readonly HashChangeEvent = HashChangeEvent; - protected readonly handleAutoChangeDetectionStatus = handleAutoChangeDetectionStatus; + openTimeTablePage() { + + } } diff --git a/src/app/main/timetable/timetable.component.css b/src/app/main/timetable/timetable.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/main/timetable/timetable.component.html b/src/app/main/timetable/timetable.component.html new file mode 100644 index 0000000..3259e8b --- /dev/null +++ b/src/app/main/timetable/timetable.component.html @@ -0,0 +1 @@ +

timetable works!

diff --git a/src/app/main/timetable/timetable.component.spec.ts b/src/app/main/timetable/timetable.component.spec.ts new file mode 100644 index 0000000..c1cba85 --- /dev/null +++ b/src/app/main/timetable/timetable.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TimetableComponent } from './timetable.component'; + +describe('TimetableComponent', () => { + let component: TimetableComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [TimetableComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(TimetableComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/main/timetable/timetable.component.ts b/src/app/main/timetable/timetable.component.ts new file mode 100644 index 0000000..9979459 --- /dev/null +++ b/src/app/main/timetable/timetable.component.ts @@ -0,0 +1,37 @@ +import {Component, Input} from '@angular/core'; +import {convertToModel, Timetable} from "../../../models/result.TimeTable.Plan"; +import {DbService} from "../../../services/db.service"; +import {Station} from "../../../models/result.StationData.Stations"; + +@Component({ + selector: 'app-timetable', + templateUrl: './timetable.component.html', + styleUrl: './timetable.component.css' +}) +export class TimetableComponent { + @Input() station: Station; + + constructor( + private dbService: DbService + ) { + } + + getTimeTable(station: Station) { + const now = new Date(); + const year = now.getUTCFullYear().toString().slice(-2); // Get last two digits of year + const month = (now.getUTCMonth() + 1).toString().padStart(2, '0'); // Months are 0-indexed in JavaScript + const date = now.getUTCDate().toString().padStart(2, '0'); + const hour = now.getUTCHours().toString().padStart(2, '0'); + const formattedDate = year + month + date; + const formattedHour = hour; + this.dbService.getTimeTablesPlan( + station.evaNumbers[0].number.toString(), + formattedDate, + formattedHour, + true, + false) + .subscribe((value: any) => { + const timetable: Timetable = convertToModel(value?.data?.timetable); + }); + } +} diff --git a/src/models/resultModel.ts b/src/models/result.StationData.Stations.ts similarity index 100% rename from src/models/resultModel.ts rename to src/models/result.StationData.Stations.ts diff --git a/src/models/result.TimeTable.Plan.ts b/src/models/result.TimeTable.Plan.ts new file mode 100644 index 0000000..0c4da50 --- /dev/null +++ b/src/models/result.TimeTable.Plan.ts @@ -0,0 +1,288 @@ +export interface TimetableStopEvent { + cde?: string; + clt?: string; + cp?: string; + cpth?: string; + cs: 'p' | 'a' | 'c'; + ct?: string; + dc?: number; + hi?: number; + l?: string; + m?: Message[]; + pde?: string; + pp?: string; + ppth?: string; + ps?: TimetableStopEvent['cs']; + pt?: string; + tra?: string; + wings?: string; +} + +export interface HistoricDelay { + ar: string; + cod?: string; + dp: string; + src: 'L' | 'NA' | 'NM' | 'V' | 'IA' | 'IM' | 'A'; + ts: string; +} + +export interface HistoricPlatformChange { + ar: string; + cot?: string; + dp: string; + ts: string; +} + +export interface ConnectionElement { + cs: 'w' | 'n' | 'a'; + eva: number; + id: string; + ref: TimetableStop; + s: TimetableStop; + ts: string; +} + +interface ReferenceTrip { + cancellationFlag: string; + ea: { + eva: string; + index: number; + name: string; + plannedTime: string; + }; + id: string; + rtl: { + category: string; + number: string; + }; + sd: ReferenceTrip['ea']; + tl: { + c: string; + f: string; + n: string; + o: string; + t: 'p' | 'e' | 'z' | 's' | 'h' | 'n'; + }[]; +} + + +export interface ReferenceTripRelation { + referenceType: ReferenceTrip; + rts: 'b' | 'e' | 'c' | 's' | 'a'; +} + +export interface Message { + code?: number; + category?: string; + deleted?: number | boolean; + distributorMessages?: { + internalText?: string; + name: string; + type: 's' | 'r' | 'f' | 'x'; + timestamp: string; + }[]; + externalCategory?: string; + externalLink?: string; + externalText?: string; + from?: string; + id: string; + internalText?: string; + owner?: string; + priority: '1' | '2' | '3' | '4'; + status: 'h' | 'q' | 'f' | 'd' | 'i' | 'u' | 'r' | 'c'; + tripLabel?: { + category: string; + filterFlags: string; + number: string; + owner: string; + type: 'p' | 'e' | 'z' | 's' | 'h' | 'n'; + }[]; + to?: string; + timestamp: string; +} + +export interface TimetableStop { + arrivalStopEvent?: TimetableStopEvent; + connections?: ConnectionElement[]; + departureStopEvent?: TimetableStopEvent; + evaStationNumber: number; + historicDelays?: HistoricDelay[]; + historicPlatformChanges?: HistoricPlatformChange[]; + id: string; + messages?: Message[]; + tripReferences?: { + referenceTrip?: ReferenceTrip[]; + tl: ReferenceTrip['tl']; + }; + referenceTripRelations?: ReferenceTripRelation[]; + stops?: TimetableStop[]; + tl?: { + c: string; + f: string; + n: string; + o: string; + t: 'p' | 'e' | 'z' | 's' | 'h' | 'n'; + }[]; +} + +export interface Timetable { + station: string; + evaStationNumber: string; + stops: TimetableStop[]; +} + +export function convertToModel(data: any): Timetable { + const timetable: Timetable = { + station: data.$.station, + evaStationNumber: data.$.eva, + stops: data.s.map((stop: any) => { + const timetableStop: TimetableStop = { + id: stop.$.id, + evaStationNumber: stop.$.eva, + arrivalStopEvent: stop.ar ? stop.ar.map((ar: any) => ({ + l: ar.$.l, + pp: ar.$.pp, + ppth: ar.$.ppth, + pt: ar.$.pt + })) : undefined, + departureStopEvent: stop.dp ? stop.dp.map((dp: any) => ({ + l: dp.$.l, + pp: dp.$.pp, + ppth: dp.$.ppth, + pt: dp.$.pt + })) : undefined, + tl: stop.tl ? stop.tl.map((tl: any) => ({ + c: tl.$.c, + f: tl.$.f, + n: tl.$.n, + o: tl.$.o, + t: tl.$.t as 'p' | 'e' | 'z' | 's' | 'h' | 'n' + })) : undefined, + connections: stop.conn ? stop.conn.map((conn: any) => ({ + cs: conn.$.cs as 'w' | 'n' | 'a', + eva: conn.$.eva, + id: conn.$.id, + ref: { + eva: conn.ref.$.eva, + id: conn.ref.$.id + }, + s: { + eva: conn.s.$.eva, + id: conn.s.$.id + }, + ts: conn.$.ts + })) : undefined, + messages: stop.m ? stop.m.map((msg: any) => ({ + code: msg.$.c, + category: msg.$.cat, + deleted: msg.$.del, + distributorMessages: msg.dm ? msg.dm.map((dm: any) => ({ + int: dm.$.int, + n: dm.$.n, + t: dm.$.t as 's' | 'r' | 'f' | 'x', + ts: dm.$.ts + })) : undefined, + externalCategory: msg.$.ec, + externalLink: msg.$.elnk, + externalText: msg.$.ext, + from: msg.$.from, + id: msg.$.id, + internalText: msg.$.int, + owner: msg.$.o, + priority: msg.$.pr as '1' | '2' | '3' | '4', + status: msg.$.t as 'h' | 'q' | 'f' | 'd' | 'i' | 'u' | 'r' | 'c', + tripLabel: msg.tl ? msg.tl.map((tl: any) => ({ + c: tl.$.c, + f: tl.$.f, + n: tl.$.n, + o: tl.$.o, + t: tl.$.t as 'p' | 'e' | 'z' | 's' | 'h' | 'n' + })) : undefined, + to: msg.$.to, + timestamp: msg.$.ts + })) : undefined, + historicDelays: stop.hd ? stop.hd.map((delay: any) => ({ + ar: delay.ar, + cod: delay.$.cod, + dp: delay.dp, + src: delay.$.src as 'L' | 'NA' | 'NM' | 'V' | 'IA' | 'IM' | 'A', + ts: delay.$.ts + })) : undefined, + historicPlatformChanges: stop.hpc ? stop.hpc.map((platformChange: any) => ({ + ar: platformChange.ar, + cot: platformChange.$.cot, + dp: platformChange.dp, + ts: platformChange.$.ts + })) : undefined, + referenceTripRelations: stop.rtr ? stop.rtr.map((relation: any) => ({ + rt: { + c: relation.rt.$.c, + ea: { + eva: relation.rt.ea.$.eva, + i: Number(relation.rt.ea.$.i), + n: relation.rt.ea.$.n, + pt: relation.rt.ea.$.pt + }, + id: relation.rt.$.id, + rtl: { + c: relation.rt.rtl.$.c, + n: relation.rt.rtl.$.n + }, + sd: { + eva: relation.rt.sd.$.eva, + i: Number(relation.rt.sd.$.i), + n: relation.rt.sd.$.n, + pt: relation.rt.sd.$.pt + }, + tl: relation.rt.tl.map((tl: any) => ({ + c: tl.$.c, + f: tl.$.f, + n: tl.$.n, + o: tl.$.o, + t: tl.$.t as 'p' | 'e' | 'z' | 's' | 'h' | 'n' + })) + }, + rts: relation.$.rts as 'b' | 'e' | 'c' | 's' | 'a' + })) : undefined, + tripReferences: stop.ref ? { + referenceTrip: stop.ref.rt ? stop.ref.rt.map((rt: any) => ({ + c: rt.$.c, + ea: { + eva: rt.ea.$.eva, + i: Number(rt.ea.$.i), + n: rt.ea.$.n, + pt: rt.ea.$.pt + }, + id: rt.$.id, + rtl: { + c: rt.rtl.$.c, + n: rt.rtl.$.n + }, + sd: { + eva: rt.sd.$.eva, + i: Number(rt.sd.$.i), + n: rt.sd.$.n, + pt: rt.sd.$.pt + }, + tl: rt.tl.map((tl: any) => ({ + c: tl.$.c, + f: tl.$.f, + n: tl.$.n, + o: tl.$.o, + t: tl.$.t as 'p' | 'e' | 'z' | 's' | 'h' | 'n' + })) + })) : undefined, + tl: stop.ref.tl.map((tl: any) => ({ + c: tl.$.c, + f: tl.$.f, + n: tl.$.n, + o: tl.$.o, + t: tl.$.t as 'p' | 'e' | 'z' | 's' | 'h' | 'n' + })) + } : undefined + }; + return timetableStop; + }) + }; + return timetable; +} diff --git a/src/services/XmlToJsonService.ts b/src/services/XmlToJsonService.ts new file mode 100644 index 0000000..1c6cf10 --- /dev/null +++ b/src/services/XmlToJsonService.ts @@ -0,0 +1,22 @@ +import { Injectable } from '@angular/core'; +import * as xml2js from 'xml2js'; + +@Injectable({ + providedIn: 'root' +}) +export class XmlToJsonService { + + constructor() { } + + convert(xml: string): Promise { + return new Promise((resolve, reject) => { + xml2js.parseString(xml, { explicitArray: false }, (error, result) => { + if (error) { + reject(error); + } else { + resolve(result); + } + }); + }); + } +} diff --git a/src/services/cache.service.ts b/src/services/cache.service.ts index 6d968af..114a09e 100644 --- a/src/services/cache.service.ts +++ b/src/services/cache.service.ts @@ -12,6 +12,7 @@ export class CacheService { private cache = new Map(); constructor() { + setInterval(() => this.removeExpiredEntries(), 10000); } get(key: string): any { @@ -61,4 +62,15 @@ export class CacheService { entries(): IterableIterator<[string, CacheContent]> { return this.cache.entries(); } + + private removeExpiredEntries(): void { + let removedCount = 0; + for (const [key, cacheContent] of this.cache.entries()) { + if (cacheContent.expiry < Date.now()) { + this.cache.delete(key); + removedCount++; + } + } + console.log(`Removed ${removedCount} expired cache entries.`); + } } diff --git a/src/services/db.service.ts b/src/services/db.service.ts index 64ede1c..34504fb 100644 --- a/src/services/db.service.ts +++ b/src/services/db.service.ts @@ -1,8 +1,12 @@ import {Injectable} from "@angular/core"; import {HttpClient, HttpParams} from "@angular/common/http"; import {map, shareReplay} from "rxjs"; -import {data} from "../models/resultModel"; +import {data} from "../models/result.StationData.Stations"; import {CacheService} from "./cache.service"; +import {parseString} from 'xml2js'; +import {of, from} from 'rxjs'; +import {switchMap} from 'rxjs/operators'; +import * as stream from "node:stream"; @Injectable() export class DbService { @@ -14,45 +18,11 @@ export class DbService { private cacheService: CacheService) { } - getSearchStationData( - searchString: string = '', - limit: number = 15, - offset: null | number = null, - category: null | string = null, - federalstate: null | string = null, - eva: null | number = null, - ril: null | string = null, - logicaloperator: null | string = null, - forceRequest: boolean = false - ): any { - const params = new HttpParams() - .set('searchstring', `*${searchString}*`) - .set('limit', limit.toString()); - - if (offset !== null) { - params.set('offset', offset.toString()); - } - if (category !== null) { - params.set('category', category); - } - if (federalstate !== null) { - params.set('federalstate', federalstate); - } - if (eva !== null) { - params.set('eva', eva.toString()); - } - if (ril !== null) { - params.set('ril', ril); - } - if (logicaloperator !== null) { - params.set('logicaloperator', logicaloperator); - } - - const url = 'https://apis.deutschebahn.com/db-api-marketplace/apis/station-data/v2/stations'; + private fetchJsonData(url: string, params: HttpParams, forceRequest: boolean = false, addToCache: boolean = true): any { const headers = { 'DB-Api-Key': this.api_key, 'DB-Client-ID': this.client_id, - 'accept': 'application/json' + 'accept': 'application/json', }; const cacheKey = url + params.toString(); @@ -60,13 +30,13 @@ export class DbService { const cachedResponse = this.cacheService.get(cacheKey); if (cachedResponse) { console.log("cache hit"); - return cachedResponse; + return of(cachedResponse); } } - const response = this.http.get(url, {headers, params, observe: 'response'}).pipe( + let response; + response = this.http.get(url, {headers, params, observe: 'response', responseType: 'json'}).pipe( map(response => { - console.log("send request"); if (response.body === undefined || response.status !== 200) { return { data: null, @@ -80,50 +50,49 @@ export class DbService { } } }; - } - - return { - data: response.body as data, - msg: { - error: false, - message: 'Data fetched successfully', - statusCode: response.status.toString(), - req: { - url: response.url, - method: 'GET' + } else { + return { + data: response.body as string, + msg: { + error: false, + message: 'Data fetched successfully', + statusCode: response.status.toString(), + req: { + url: response.url, + method: 'GET' + } } - } - }; + }; + } }), shareReplay(1) ); - this.cacheService.set(cacheKey, response, 60000); + + if (addToCache) this.cacheService.set(cacheKey, response, 60000); return response; } - getStationDataById( - stationId: number, - forceRequest: boolean = false): any { - const url = `https://apis.deutschebahn.com/db-api-marketplace/apis/station-data/v2/stations/${stationId}`; + private fetchXmlData(url: string, params: HttpParams, forceRequest: boolean = false, addToCache: boolean = true): any { const headers = { 'DB-Api-Key': this.api_key, 'DB-Client-ID': this.client_id, - 'accept': 'application/json' + 'accept': 'application/xml', }; - const cacheKey = url; + const cacheKey = url + params.toString(); if (!forceRequest) { const cachedResponse = this.cacheService.get(cacheKey); if (cachedResponse) { console.log("cache hit"); - return cachedResponse; + return of(cachedResponse); } } - const response = this.http.get(url, {headers, observe: 'response'}).pipe( - map(response => { + let response; + response = this.http.get(url, {headers, params, observe: 'response', responseType: 'text'}).pipe( + switchMap(response => { if (response.body === undefined || response.status !== 200) { - return { + return of({ data: null, msg: { error: true, @@ -134,25 +103,94 @@ export class DbService { method: 'GET' } } - }; + }); + } else { + return from(new Promise((resolve, reject) => { + parseString(response.body as string, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + })).pipe( + map(data => ({ + data, + msg: { + error: false, + message: 'Data fetched successfully', + statusCode: response.status.toString(), + req: { + url: response.url, + method: 'GET' + } + } + })) + ); } - return { - data: response.body as data, - msg: { - error: false, - message: 'Data fetched successfully', - statusCode: response.status.toString(), - req: { - url: response.url, - method: 'GET' - } - } - }; }), shareReplay(1) ); - this.cacheService.set(cacheKey, response, 60000); // Cache for 60 seconds + if (addToCache) this.cacheService.set(cacheKey, response, 60000); return response; } + + getSearchStationData( + searchString: string = '', + limit: number = 15, + offset: null | number = null, + category: null | string = null, + federalstate: null | string = null, + eva: null | number = null, + ril: null | string = null, + logicaloperator: null | string = null, + forceRequest: boolean = false, + addToCache: boolean = true): + any { + const params = new HttpParams() + .set('searchstring', `*${searchString}*`) + .set('limit', limit.toString()); + + if (offset !== null) params.set('offset', offset.toString()); + if (category !== null) params.set('category', category); + if (federalstate !== null) params.set('federalstate', federalstate); + if (eva !== null) params.set('eva', eva.toString()); + if (ril !== null) params.set('ril', ril); + if (logicaloperator !== null) params.set('logicaloperator', logicaloperator); + + const url = 'https://apis.deutschebahn.com/db-api-marketplace/apis/station-data/v2/stations'; + return this.fetchJsonData(url, params, forceRequest, addToCache); + } + + getStationDataById( + stationId: number, + forceRequest: boolean = false, + addToCache: boolean = true + ): + any { + const url = `https://apis.deutschebahn.com/db-api-marketplace/apis/station-data/v2/stations/${stationId}`; + const params = new HttpParams(); + return this.fetchJsonData(url, params, forceRequest, addToCache); + } + + getTimeTablesPlan( + evaNo: string, + date: string, + hour: string, + forceRequest: boolean = false + , addToCache: boolean = true + ): any { + const url = `https://apis.deutschebahn.com/db-api-marketplace/apis/timetables/v1/plan/${evaNo}/${date}/${hour}`; + const params = new HttpParams(); + return this.fetchXmlData(url, params, forceRequest, addToCache); + } +} + +interface ResponseObject { + body: any; + status: number; + statusText: string; + url: string; } +