From d4220941333c4d7d279cf39fa9ceec974369bc5c Mon Sep 17 00:00:00 2001 From: ByteJoseph Date: Sun, 1 Sep 2024 12:29:01 +0530 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8init=20schoolbook=20app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Created schoolbook app --- .gitignore | 26 + config.xml | 11 + package-lock.json | 2235 +++++++++++++++++ package.json | 25 + www/index.html | 37 + www/index.js | 42 + www/sp-resources/student-illustration.png | Bin 0 -> 17718 bytes .../sd-resources/boywaving.mp4 | Bin 0 -> 26036 bytes .../sd-resources/girlwaving.mp4 | Bin 0 -> 25785 bytes www/student-dashboard/studentDashboard.css | 229 ++ www/student-dashboard/studentDashboard.html | 106 + www/student-dashboard/studentDashboard.js | 153 ++ www/student-portal.css | 141 ++ 13 files changed, 3005 insertions(+) create mode 100644 .gitignore create mode 100644 config.xml create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 www/index.html create mode 100644 www/index.js create mode 100644 www/sp-resources/student-illustration.png create mode 100644 www/student-dashboard/sd-resources/boywaving.mp4 create mode 100644 www/student-dashboard/sd-resources/girlwaving.mp4 create mode 100644 www/student-dashboard/studentDashboard.css create mode 100644 www/student-dashboard/studentDashboard.html create mode 100644 www/student-dashboard/studentDashboard.js create mode 100644 www/student-portal.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3292ceb --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +.DS_Store + +# Generated by package manager +node_modules/ + +# Generated by Cordova +/plugins/ +/platforms/ diff --git a/config.xml b/config.xml new file mode 100644 index 0000000..c5e67c2 --- /dev/null +++ b/config.xml @@ -0,0 +1,11 @@ + + + Schoolbook + Sample Apache Cordova App + + Apache Cordova Team + + + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..b8803ee --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2235 @@ +{ + "name": "net.govtschools.croodles", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "net.govtschools.croodles", + "version": "1.0.0", + "license": "Apache-2.0", + "devDependencies": { + "cordova-android": "^13.0.0", + "cordova-browser": "^7.0.0" + } + }, + "node_modules/@netflix/nerror": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", + "integrity": "sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "extsprintf": "^1.4.0", + "lodash": "^4.17.15" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/android-versions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/android-versions/-/android-versions-2.0.0.tgz", + "integrity": "sha512-07fhKL8EjV+ORQggGHcKmhLECwxBlRFimfvsjhfUCYqNDAbcH4qaEaN0AO3DnWtgHqRNfWAxhnWOpx+ZpRMymw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.2" + } + }, + "node_modules/ansi": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", + "integrity": "sha512-iFY7JCgHbepc0b82yLaw4IMortylNb6wG4kL+4R0C3iv6i+RHGHux/yUX5BTiRvSX/shMnngjR1YyNMnXEFh5A==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "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, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bplist-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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, + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cordova-android": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-13.0.0.tgz", + "integrity": "sha512-uQG+cSyrB1NMi2aIzihldIupHB9WGpZVvrMMMAAtnyc6tDlEk7gweSSaFsEONyGAnteRYpIvrzg/YwDW08PcUg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "android-versions": "^2.0.0", + "cordova-common": "^5.0.0", + "dedent": "^1.5.3", + "execa": "^5.1.1", + "fast-glob": "^3.3.2", + "fs-extra": "^11.2.0", + "is-path-inside": "^3.0.3", + "nopt": "^7.2.1", + "properties-parser": "^0.6.0", + "semver": "^7.6.2", + "string-argv": "^0.3.1", + "untildify": "^4.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": ">=16.13.0" + } + }, + "node_modules/cordova-android/node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/cordova-android/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/cordova-android/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/cordova-browser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cordova-browser/-/cordova-browser-7.0.0.tgz", + "integrity": "sha512-gNrjlIdtZYaQInPisTpcUdtTSSaYOApa2ew6ALXT9r8ZdsczTAlJigbVzRpOm/EP1HQw6gnMkeQhFZS9RN6nJg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "cordova-common": "^5.0.0", + "cordova-serve": "^4.0.1", + "nopt": "^7.1.0", + "shelljs": "^0.8.5" + }, + "bin": { + "cordova-browser": "bin/create" + }, + "engines": { + "node": ">=16.13.0" + } + }, + "node_modules/cordova-common": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-5.0.0.tgz", + "integrity": "sha512-6Aa7o52/iEvsKx6K94ijzFel5acCULR49KL27OUVhEpJ4oS7Dc3y2eOP1Eu0P4Wmiw/eLEDQjGXGiAa2D5zFZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@netflix/nerror": "^1.1.3", + "ansi": "^0.3.1", + "bplist-parser": "^0.3.2", + "cross-spawn": "^7.0.3", + "elementtree": "^0.1.7", + "endent": "^2.1.0", + "fast-glob": "^3.2.12", + "fs-extra": "^11.1.0", + "glob": "^7.1.6", + "lodash.assign": "^4.2.0", + "lodash.isdate": "^4.0.1", + "lodash.isobject": "^3.0.2", + "lodash.zip": "^4.2.0", + "plist": "^3.0.6", + "q": "^1.5.1", + "read-chunk": "^3.2.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/cordova-serve": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-4.0.1.tgz", + "integrity": "sha512-YbfXaZ60yr5dkqmDFQgrU7TSKnzCqYsxHgIUzDeX8RggZb6mz1F9jMfUBbaYyaU7JjcuJ0aoRPYLvwSGQVhGkw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "chalk": "^3.0.0", + "compression": "^1.7.4", + "express": "^4.17.1", + "open": "^7.0.3", + "which": "^2.0.2" + }, + "engines": { + "node": ">= 10", + "npm": ">= 5.6.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/elementtree": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "integrity": "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "sax": "1.1.4" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/endent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", + "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", + "dev": true, + "license": "MIT", + "dependencies": { + "dedent": "^0.7.0", + "fast-json-parse": "^1.0.3", + "objectorarray": "^1.0.5" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-parse": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "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, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isdate": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isdate/-/lodash.isdate-4.0.1.tgz", + "integrity": "sha512-hg5B1GD+R9egsBgMwmAhk+V53Us03TVvXT4dnyKugEfsD4QKuG9Wlyvxq8OGy2nu7qVGsh4DRSnMk33hoWBq/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isobject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", + "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", + "dev": true, + "license": "MIT" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/objectorarray": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", + "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==", + "dev": true, + "license": "ISC" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "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, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/properties-parser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.6.0.tgz", + "integrity": "sha512-qvr2cSmoA0dln0MARAKwBzPkkXn7FqwX+RVVNpMdMJc7rt9mqO2cXwluxtux9fHrLhjnPFaQkS8BM0kFrTCnSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.3.1" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-chunk": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "integrity": "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==", + "dev": true, + "license": "ISC" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/with-open-file": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", + "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "license": "ISC" + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b4caf5a --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "net.govtschools.croodles", + "displayName": "Schoolbook", + "version": "1.0.0", + "description": "A Schoolbook app for students.", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "ecosystem:cordova" + ], + "author": "croodles", + "license": "Apache-2.0", + "devDependencies": { + "cordova-android": "^13.0.0", + "cordova-browser": "^7.0.0" + }, + "cordova": { + "platforms": [ + "browser", + "android" + ] + } +} \ No newline at end of file diff --git a/www/index.html b/www/index.html new file mode 100644 index 0000000..6cd412e --- /dev/null +++ b/www/index.html @@ -0,0 +1,37 @@ + + + + + + + + + + GOVT-UPS-CHENKARA-STUDENT-PORTAL + + +
+ + +
+ Invalid credentials! +
+
+ + + + \ No newline at end of file diff --git a/www/index.js b/www/index.js new file mode 100644 index 0000000..7da2380 --- /dev/null +++ b/www/index.js @@ -0,0 +1,42 @@ +const baseURL = 'https://govt-up-school-chenkara.onrender.com'; + +document + .getElementById("login-form") + .addEventListener("submit", async function (e) { + e.preventDefault(); + + const errorPopup = document.getElementById("errorPopup"); + const studentID = document.getElementById("studentID").value; + const password = document.getElementById("password").value; + + try { + const response = await fetch( + `${baseURL}/students/student-login`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ studentID, password }), + } + ); + + const result = await response.json(); + + if (result.success) { + console.log("Redirecting to:", result.redirectUrl); + // window.open(result.redirectUrl, "_blank"); + let currentUrl = result.redirectUrl; + let newUrl = currentUrl.replace("/student-portal",""); + window.location.href = newUrl; + } else { + errorPopup.classList.add("show"); + setTimeout(function () { + errorPopup.classList.remove("show"); + }, 3000); + } + + } catch (error) { + console.error("Error Occured"); + } + }); diff --git a/www/sp-resources/student-illustration.png b/www/sp-resources/student-illustration.png new file mode 100644 index 0000000000000000000000000000000000000000..8b4bc6a6f6bfd4b956cad644a1c065bd2574b8cc GIT binary patch literal 17718 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 literal 0 HcmV?d00001 diff --git a/www/student-dashboard/sd-resources/boywaving.mp4 b/www/student-dashboard/sd-resources/boywaving.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..750d8af0708ecaf4c13966ca9cfed759ae6c4b9b GIT binary patch literal 26036 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
    8zkcGF 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 Hfk6HX&#dwu literal 0 HcmV?d00001 diff --git a/www/student-dashboard/sd-resources/girlwaving.mp4 b/www/student-dashboard/sd-resources/girlwaving.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..064a35441845b1459ea88a09593c20b4c9096cf1 GIT binary patch literal 25785 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 b5ctaxm=KsykhHdg0S7lD3nwEBGxPrgW17e9 literal 0 HcmV?d00001 diff --git a/www/student-dashboard/studentDashboard.css b/www/student-dashboard/studentDashboard.css new file mode 100644 index 0000000..2cc57f1 --- /dev/null +++ b/www/student-dashboard/studentDashboard.css @@ -0,0 +1,229 @@ +body { + margin: 0; + padding: 0; + overflow-x: hidden; +} +.header { + display: flex; + width: 100%; + justify-content: center; + text-align: center; + background-color: lightblue; + gap: 14px; +} +.header h1 { + color: #000; + font-family: "Raleway", sans-serif; +} +.face1 { + display: flex; + width: 100%; + align-items: center; + justify-content: center; + margin-bottom: 60px; +} +.vidio-div { + display: flex; + align-items: center; + justify-content: center; + margin-top: 30px; +} +.vidio-div video { + height: 400px; +} +.face2 { + display: flex; + width: 100%; + align-items: center; + justify-content: center; + text-align: center; +} +.face2-contents-container { + display: grid; + justify-content: center; + align-items: center; + width: auto; + padding: 20px; + border-radius: 30px; + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); +} + +.face2-contents { + display: flex; + justify-content: space-between; + align-items: center; + width: 900px; + height: 50px; + margin-bottom: 10px; +} +.face2-contents label { + font-family: "Montserrat", sans-serif; + font-size: 20px; + font-weight: 440; +} +.face2-contents p { + font-family: "Montserrat", sans-serif; + font-size: 20px; +} +@media (max-width: 768px) { + .face2-contents-container { + width: 100%; + margin: 30px; + } + .face2-contents{ + width: 295px; + } + .face2-contents label{ + font-size: 18px; + } + .face2-contents p{ + font-size: 18px; + } +} + +.face3 { + display: grid; + width: 100%; + align-items: center; + margin-top: 80px; + margin-bottom: 50px; + justify-content: center; + text-align: center; +} + +.face3-head { + display: grid; + align-items: center; + justify-content: center; + text-align: center; +} + +.face3-head h1 { + font-family: "Quicksand", sans-serif; + color: #333; + text-decoration: underline; +} + +#absent-dates-container { + width: 100%; + padding: 0 10px; +} + +#absent-dates-container ul { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 20px; + margin-top: 40px; + padding: 0; + list-style-type: none; +} + +#absent-dates-container ul li { + border: 2px #333 solid; + background-color: aliceblue; + border-radius: 20px; + font-size: 26px; + text-align: center; + padding: 10px 15px; +} + +@media (max-width: 768px) { + #absent-dates-container ul { + grid-template-columns: repeat(2, 1fr); + } + .face3-head h1{ + font-size: 28px; + } + #absent-dates-container ul li{ + font-size: 22px; + padding: 8.5px 11px; + } +} + + +.statistics-face{ + display: grid; + align-items: center; + justify-content: center; + text-align: center; + width: 100%; +} +.statistics-face-head{ + display: grid; + text-align: center; + margin-top: 50px; + font-family: "Quicksand", sans-serif; + color: #333; +} +@media (min-width: 768px){ + .statistics-face-head{ + margin-top: 70px; + } +} + +@media (max-width: 768px){ + #statistics-face-heading{ + font-size: 25px; + margin: 25px; + } +} +.line{ + width: 100%; + display: flex; + justify-content: center; + align-items: center; +} +.line div{ + width: 100px; + height: 5px; + background-color: black; + border-radius: 1000px; +} +.statistics-face-main-container{ + display: grid; + justify-content: center; + align-items: center; + width: auto; + padding: 20px; + border-radius: 30px; + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); + border-radius: 25px; + margin-top: 60px; +} +.statistics-face-contents{ + display: flex; + justify-content: space-between; + align-items: center; + width: 900px; + height: 50px; + margin-bottom: 10px; +} + +.statistics-face-contents label{ + text-align: left; + font-size: 23px; + font-weight: 550; + font-family: 'Mooli', sans-serif; +} +.statistics-face-contents p{ + text-align: left; + font-size: 19px; + font-family: 'Mooli', sans-serif; +} +@media (max-width: 768px) { + .statistics-face-main-container { + margin: 10px; + margin-top: 50px; + gap: 15px; + } + .statistics-face-contents{ + width: 300px; + } + .statistics-face-contents label{ + font-size: 20px; + margin-right: 80px; + } + .statistics-face-contents p{ + font-size: 17px; + } +} \ No newline at end of file diff --git a/www/student-dashboard/studentDashboard.html b/www/student-dashboard/studentDashboard.html new file mode 100644 index 0000000..c122ecc --- /dev/null +++ b/www/student-dashboard/studentDashboard.html @@ -0,0 +1,106 @@ + + + + + + + + + + + Student-Dashboard + + + + + +
    +
    + +
    +
    + +
    +
    +
    + +

    Name

    +
    + +
    + +

    Class

    +
    + +
    + +

    Name

    +
    + +
    + +

    Num

    +
    + +
    + +

    Name

    +
    + +
    + +

    Num

    +
    +
    +
    + +
    +
    +

    Your Points

    +
    +
    +
    +
    + +

    Num

    +
    + +
    + +

    -20

    +
    + +
    + +

    Num

    +
    + +
    + +

    Num

    +
    + +
    + +

    1000

    +
    +
    +
    + + +
    +
    +

    Your Absent Days

    +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/www/student-dashboard/studentDashboard.js b/www/student-dashboard/studentDashboard.js new file mode 100644 index 0000000..4cccc7c --- /dev/null +++ b/www/student-dashboard/studentDashboard.js @@ -0,0 +1,153 @@ +const baseURL = 'https://govt-up-school-chenkara.onrender.com'; +const urlParams = new URLSearchParams(window.location.search); +const studentID = urlParams.get("studentID"); +const body = document.body; + +if (studentID) { + console.log(`Login noted with id "${studentID}"`); + getStudentById(studentID); + fetchAndDisplayAbsentDates(studentID); + studentsAttendancePointsFn(studentID); + +} else { + body.style.display = "none"; + alert("Unregistered Login Detected!"); +} + +async function getStudentById(studentID) { + try { + const response = await fetch(`${baseURL}/students/dashboard`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ studentID }), + }); + + if (!response.ok) { + throw new Error("Teacher not found"); + } + + const studentData = await response.json(); + saveStudentData(studentData); + displayStudentDetails(); + + } catch (error) { + console.error("Error fetching teacher:", error); + } +} + +const globalVariables = { + studentName: null, + studentClass: null, + studentGender: null, + motherName: null, + fatherName: null, + motherNumber: null, + fatherNumber: null, +}; + +function saveStudentData(studentData) { + globalVariables.studentName = studentData.studentName; + globalVariables.studentClass = studentData.studentClass; + globalVariables.studentGender = studentData.studentGender; + globalVariables.motherName = studentData.motherName; + globalVariables.fatherName = studentData.fatherName; + globalVariables.motherNumber = studentData.motherNumber; + globalVariables.fatherNumber = studentData.fatherNumber; +} + +console.log({ globalVariables }); + +function displayStudentDetails(studentData) { + function getFirstName(studentName) { + const nameParts = studentName.split(" "); + return nameParts[0]; + } + + const firstName = getFirstName(globalVariables.studentName); + document.getElementById("student-name-header").innerText = firstName; + + const videoSource = document.getElementById("face1-video"); + const header = document.getElementById('header'); + + if (globalVariables.studentGender === "female") { + header.style.backgroundColor = "lightpink"; + videoSource.src = "/student-portal/student-dashboard/sd-resources/girlwaving.mp4"; + } else { + videoSource.src = "/student-portal/student-dashboard/sd-resources/boywaving.mp4"; + } + + videoSource.addEventListener('contextmenu', function(event) { + event.preventDefault(); + }); + + document.getElementById("student-name").innerText = globalVariables.studentName; + document.getElementById("student-class").innerText = globalVariables.studentClass; + document.getElementById("mother-name").innerText = globalVariables.motherName; + document.getElementById("father-name").innerText = globalVariables.fatherName; + document.getElementById("mother-number").innerText = globalVariables.motherNumber; + document.getElementById("father-number").innerText = globalVariables.fatherNumber; + +} + +async function fetchAndDisplayAbsentDates(studentID) { + try { + const response = await fetch(`${baseURL}/students/absentdates/${studentID}`); + if (!response.ok) { + throw new Error('Failed to fetch absent dates'); + } + + const absentDates = await response.json(); + displayAbsentDates(absentDates); + } catch (error) { + console.error('Error fetching absent dates:', error); + } +} + +function formatDateForDisplay(date) { + const options ={ year: "numeric", month: "long", day: "numeric" }; + return new Date(date).toLocaleDateString(undefined, options); +} + + +function displayAbsentDates(absentDates) { + const absentDatesContainer = document.getElementById('absent-dates-container'); + absentDatesContainer.innerHTML = ''; + + if (absentDates.length === 0) { + absentDatesContainer.innerHTML = '

    No absences recorded.

    '; + } else { + const list = document.createElement('ul'); + absentDates.forEach(date => { + const listItem = document.createElement('li'); + listItem.textContent = formatDateForDisplay(date); + list.appendChild(listItem); + }); + absentDatesContainer.appendChild(list); + } +} + +async function studentsAttendancePointsFn(studentID) { + try { + const response = await fetch(`${baseURL}/students/points/${studentID}`); + + if (!response.ok) { + throw new Error(`Failed to fetch student info: ${response.statusText}`); + } + + const studentData = await response.json(); + const attendancePoints = studentData.points; + const noOfDaysAbsent = studentData.absentDates.length; + + document.getElementById("statistics-face-heading").innerText = `You have ${attendancePoints} out of 1000 points for attendance`; + document.getElementById("daysAbsent").innerText = noOfDaysAbsent; + document.getElementById("pointsReduced").innerText = 1000-(studentData.points); + document.getElementById("pointsRemaining").innerText = studentData.points; + + console.log('Student Data:', studentData); + + } catch (error) { + console.error('Error:', error); + } +} \ No newline at end of file diff --git a/www/student-portal.css b/www/student-portal.css new file mode 100644 index 0000000..d3e1d36 --- /dev/null +++ b/www/student-portal.css @@ -0,0 +1,141 @@ +body { + overflow: hidden; + background-color:rgb(113, 218, 253); +} +main { + width: 100%; + height: 100vh; + display: flex; + align-items: center; + justify-content: center; + text-align: center; +} +.login-container { + display: grid; + align-items: center; + justify-content: center; + text-align: center; + background-color: #fff; + width: 400px; + height: 550px; + padding-left: 10px; + padding-right: 10px; + border-radius: 8px; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.9); +} + +.login-form { + display: grid; + align-items: center; + justify-content: center; + flex-direction: column; + text-align: center; +} + +.login-form h1 { + margin-top: -55px; + margin-bottom: 5px; + color: grey; + font-weight: 500; + text-align: center; + font-family: "Montserrat", sans-serif; + font-size: 30px; +} + +.form-image { + display: flex; + align-items: center; + justify-content: center; + width: auto; +} +.form-image img { + height: 250px; +} +@media(max-width: 768px){ + .login-container{ + margin-top: -80px; + } + .login-form h1{ + font-size: 25px; + } + .form-image img { + height: 230px; + } +} +.form-group { + margin-bottom: 15px; + display: flex; + justify-content: center; + align-items: center; +} + +.form-group input { + width: 100%; + padding: 10px; + border: 1px solid #ccc; + border-radius: 10px; + font-size: 16px; + margin-bottom: 10px; + text-align: center; +} +.form-group input:focus { + outline: none; + box-shadow: 0 0 15px hsl(240, 100%, 50%); +} +.form-group input::placeholder { + font-family: "Mooli", sans-serif; +} + +button { + padding: 7px; + background-color: #469ce2; + border: 2px #469ce2 solid; + border: none; + border-radius: 4px; + color: white; + font-size: 16px; + cursor: pointer; + text-align: center; + transition-duration: 0.4s; +} + +button:hover { + color: #469ce2; + background-color: white; + border: 1px #469ce2 solid; +} +button:active { + transform: scale(1.07); +} +@media (max-width: 768px) { + .login-container { + height: 600px; + width: 300px; + } +} + +.error-popup { + display: none; + position: fixed; + bottom: 20px; + left: 50%; + transform: translateX(-50%); + background-color: #f44336; + color: white; + padding: 15px; + border-radius: 5px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); + z-index: 1000; + transition: transform 0.5s ease, opacity 0.3s ease; +} + +.error-popup.show { + display: block; + opacity: 1; + transform: translateX(-50%) translateY(0); +} + +.error-popup.hide { + opacity: 0; + transform: translateX(-50%) translateY(50px); +}