From afdc9fa828ec7f61e0b7f4b6968ded7751a1cefd Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:18:56 +0530 Subject: [PATCH 01/56] Create Dockerfile.prod --- v1.0/backend/Dockerfile.prod | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 v1.0/backend/Dockerfile.prod diff --git a/v1.0/backend/Dockerfile.prod b/v1.0/backend/Dockerfile.prod new file mode 100644 index 000000000..101fbe31b --- /dev/null +++ b/v1.0/backend/Dockerfile.prod @@ -0,0 +1,27 @@ +FROM node:16.8 + +LABEL maintainer="dileep.gadiraju@tarento.com" + +ENV PROFILE=dev +ENV PORT=3000 +ENV MONGODB_URL=mongodb://10.0.0.185:27017/saraldata_dev +ENV JWT_SECRET=SARALDATA_NODE +WORKDIR /app +COPY package*.json ./ +RUN npm install +COPY . . +RUN npm run test + +RUN echo JWT_SECRET=$JWT_SECRET + +RUN chmod +x ./entrypoint.sh + +RUN mkdir ./config && touch ./config/$PROFILE.env \ + && echo PORT=$PORT >> ./config/$PROFILE.env \ + && echo MONGODB_URL=$MONGODB_URL >> ./config/$PROFILE.env \ + && echo JWT_SECRET=$JWT_SECRET >> ./config/$PROFILE.env \ + && chmod 777 ./config/$PROFILE.env + +EXPOSE $PORT + +CMD ["/bin/bash","-c","./entrypoint.sh $PROFILE $PORT $MONGODB_URL $JWT_SECRET"] From cdd2ce20ca88447b2b6507faa39d5ba789ee9952 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:19:47 +0530 Subject: [PATCH 02/56] Update build_image.sh --- build_image.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_image.sh b/build_image.sh index 0f22cd181..69aceccee 100644 --- a/build_image.sh +++ b/build_image.sh @@ -24,7 +24,7 @@ image_tag="2.0" image_tag="${image_tag}-$BUILD_NUMBER" # Build and tag the Docker image -docker build -t "saaral123/$image_name:$image_tag" . --network="host" +docker build -t "saaral123/$image_name:$image_tag" Dockerfile.prod . --network="host" #login to dockerhub docker login -u saaral123 -p Saral@123 From f89416e327da78ddaaea50a98774c1c9b67113e6 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:20:55 +0530 Subject: [PATCH 03/56] Update Jenkinsfile-prod --- Jenkinsfile-prod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile-prod b/Jenkinsfile-prod index 9f4a00070..743eed464 100644 --- a/Jenkinsfile-prod +++ b/Jenkinsfile-prod @@ -5,7 +5,7 @@ pipeline { stages{ stage ('checkout') { steps { - git branch: 'feature/saveMarks-v1', url: 'https://github.com/Sunbird-Saral/Project-Saral.git' + git branch: 'feature/performanceimprovement-v2', url: 'https://github.com/Sunbird-Saral/Project-Saral.git' } } From ac225c43a204572fef6beab1ed0526f8e7bba5c8 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:35:23 +0530 Subject: [PATCH 04/56] Update Jenkinsfile-prod --- Jenkinsfile-prod | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Jenkinsfile-prod b/Jenkinsfile-prod index 743eed464..66c930755 100644 --- a/Jenkinsfile-prod +++ b/Jenkinsfile-prod @@ -35,5 +35,12 @@ pipeline { sh './deploy_EKS.sh' } } + stage('SonarQube analysis') { + steps{ + withSonarQubeEnv('saralsonar9.0.1') { + sh "npm sonar:sonar" + } + } + } } } From a12754e2ca57b15924d6f83ed7426b7f4284fce3 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:52:42 +0530 Subject: [PATCH 05/56] Update build_image.sh --- build_image.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_image.sh b/build_image.sh index 69aceccee..abb04a833 100644 --- a/build_image.sh +++ b/build_image.sh @@ -24,7 +24,7 @@ image_tag="2.0" image_tag="${image_tag}-$BUILD_NUMBER" # Build and tag the Docker image -docker build -t "saaral123/$image_name:$image_tag" Dockerfile.prod . --network="host" +docker buildx build -t "saaral123/$image_name:$image_tag" Dockerfile.prod . --network="host" #login to dockerhub docker login -u saaral123 -p Saral@123 From 4f22c6e3f2d22cf62fa46124422eb3ecd21405d2 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:56:24 +0530 Subject: [PATCH 06/56] Update build_image.sh --- build_image.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_image.sh b/build_image.sh index abb04a833..69aceccee 100644 --- a/build_image.sh +++ b/build_image.sh @@ -24,7 +24,7 @@ image_tag="2.0" image_tag="${image_tag}-$BUILD_NUMBER" # Build and tag the Docker image -docker buildx build -t "saaral123/$image_name:$image_tag" Dockerfile.prod . --network="host" +docker build -t "saaral123/$image_name:$image_tag" Dockerfile.prod . --network="host" #login to dockerhub docker login -u saaral123 -p Saral@123 From 6f66386289b9cde0f8859e50d46754d8320a8119 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:59:06 +0530 Subject: [PATCH 07/56] Update build_image.sh --- build_image.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_image.sh b/build_image.sh index 69aceccee..bad629be5 100644 --- a/build_image.sh +++ b/build_image.sh @@ -24,7 +24,7 @@ image_tag="2.0" image_tag="${image_tag}-$BUILD_NUMBER" # Build and tag the Docker image -docker build -t "saaral123/$image_name:$image_tag" Dockerfile.prod . --network="host" +docker build -t "saaral123/$image_name:$image_tag" -f Dockerfile.prod . --network="host" #login to dockerhub docker login -u saaral123 -p Saral@123 From 0349e7e3afcbb951126ddd39edfd3ec54443afee Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 12:18:15 +0530 Subject: [PATCH 08/56] Update Jenkinsfile-prod --- Jenkinsfile-prod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile-prod b/Jenkinsfile-prod index 66c930755..37bc91ae4 100644 --- a/Jenkinsfile-prod +++ b/Jenkinsfile-prod @@ -38,7 +38,7 @@ pipeline { stage('SonarQube analysis') { steps{ withSonarQubeEnv('saralsonar9.0.1') { - sh "npm sonar:sonar" + sh "npm run sonar" } } } From ac158b137a32ea65833fb9ac114f810f441460ab Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Wed, 16 Aug 2023 12:22:44 +0530 Subject: [PATCH 09/56] add sonar script to package.json --- v1.0/backend/package-lock.json | 373 +++++++++++++++++++++- v1.0/backend/package.json | 6 +- v1.0/backend/sonar-project.properties | 4 +- v1.0/backend/src/sonar-project.properties | 4 +- 4 files changed, 380 insertions(+), 7 deletions(-) diff --git a/v1.0/backend/package-lock.json b/v1.0/backend/package-lock.json index 34af27eff..dc7bff5e9 100644 --- a/v1.0/backend/package-lock.json +++ b/v1.0/backend/package-lock.json @@ -33,7 +33,8 @@ "devDependencies": { "env-cmd": "^8.0.2", "jest": "^29.3.1", - "nodemon": "^2.0.6" + "nodemon": "^2.0.6", + "sonarqube-scanner": "^3.0.1" } }, "node_modules/@ampproject/remapping": { @@ -3259,6 +3260,22 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -3272,6 +3289,12 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -3588,6 +3611,15 @@ "simple-swizzle": "^0.2.2" } }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, "node_modules/color/node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -3610,6 +3642,12 @@ "text-hex": "1.0.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/compress-commons": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.0.2.tgz", @@ -3845,6 +3883,25 @@ "ms": "2.0.0" } }, + "node_modules/decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "dev": true, + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -3857,6 +3914,172 @@ "node": ">=4" } }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dev": true, + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar/node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dev": true, + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/decompress-tar/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-tar/node_modules/tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "dependencies": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dev": true, + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dev": true, + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "dev": true, + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -4407,6 +4630,18 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/fancy-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-2.0.0.tgz", + "integrity": "sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==", + "dev": true, + "dependencies": { + "color-support": "^1.1.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/fast-csv": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", @@ -4445,6 +4680,15 @@ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" }, + "node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -5025,6 +5269,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", + "dev": true + }, "node_modules/is-npm": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", @@ -7196,6 +7446,18 @@ "isarray": "0.0.1" } }, + "node_modules/node-downloader-helper": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/node-downloader-helper/-/node-downloader-helper-2.1.9.tgz", + "integrity": "sha512-FSvAol2Z8UP191sZtsUZwHIN0eGoGue3uEXGdWIH5228e9KH1YHXT7fN8Oa33UGf+FbqGTQg3sJfrRGzmVCaJA==", + "dev": true, + "bin": { + "ndh": "bin/ndh" + }, + "engines": { + "node": ">=14.18" + } + }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -7548,6 +7810,36 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -8160,6 +8452,19 @@ "node": ">=10" } }, + "node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dev": true, + "dependencies": { + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -8355,6 +8660,48 @@ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sonarqube-scanner": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sonarqube-scanner/-/sonarqube-scanner-3.0.1.tgz", + "integrity": "sha512-u8HJITRe6E6HJWzerbSNAaH20rymSb8TJtnGd5H41jFxQm1hM+87+CqJaWDGzzkyufe2u8TdbTV4vb/4sFfqCA==", + "dev": true, + "dependencies": { + "decompress": "^4.2.1", + "fancy-log": "^2.0.0", + "https-proxy-agent": "^5.0.1", + "mkdirp": "^1.0.4", + "node-downloader-helper": "^2.1.5", + "progress": "^2.0.3", + "slugify": "^1.6.5" + }, + "bin": { + "sonar-scanner": "src/bin/sonar-scanner" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/sonarqube-scanner/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -8525,6 +8872,15 @@ "node": ">=8" } }, + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dev": true, + "dependencies": { + "is-natural-number": "^4.0.1" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -8688,6 +9044,12 @@ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, + "node_modules/to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -9247,6 +9609,15 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "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/v1.0/backend/package.json b/v1.0/backend/package.json index e08a310cf..fa8072452 100644 --- a/v1.0/backend/package.json +++ b/v1.0/backend/package.json @@ -9,7 +9,8 @@ "uat": "env-cmd ./config/uat.env nodemon src/index.js -e js,pug", "prod": "env-cmd ./config/prod.env node src/index.js -e js,pug", "test": "jest --collectCoverage=true", - "coverage": "jest --coverage" + "coverage": "jest --coverage", + "sonar": "npx sonarqube-scanner -Dsonar.host.url=http://localhost:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" }, "jest": { "collectCoverageFrom": [ @@ -54,6 +55,7 @@ "devDependencies": { "env-cmd": "^8.0.2", "jest": "^29.3.1", - "nodemon": "^2.0.6" + "nodemon": "^2.0.6", + "sonarqube-scanner": "^3.0.1" } } diff --git a/v1.0/backend/sonar-project.properties b/v1.0/backend/sonar-project.properties index a1f3626fe..e5cb346d4 100644 --- a/v1.0/backend/sonar-project.properties +++ b/v1.0/backend/sonar-project.properties @@ -1,5 +1,5 @@ -sonar.projectKey=ProjectSaral -sonar.projectName=ProjectSaral +sonar.projectKey=saral +sonar.projectName=saral sonar.sourceEncoding=UTF-8 sonar.sources=src sonar.exclusions=**/node_modules/**,**/*.spec.t diff --git a/v1.0/backend/src/sonar-project.properties b/v1.0/backend/src/sonar-project.properties index b69b75609..bd49bec7f 100644 --- a/v1.0/backend/src/sonar-project.properties +++ b/v1.0/backend/src/sonar-project.properties @@ -1,5 +1,5 @@ -sonar.projectKey=ProjectSaral -sonar.projectName=ProjectSaral +sonar.projectKey=saral +sonar.projectName=saral sonar.sourceEncoding=UTF-8 sonar.sources= src sonar.exclusions=**/node_modules/**,**/*.spec.t From 3f2025da8e5553f76182f151aef2ecc5bd43e249 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 12:29:50 +0530 Subject: [PATCH 10/56] Update Jenkinsfile-prod --- Jenkinsfile-prod | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile-prod b/Jenkinsfile-prod index 37bc91ae4..05b2ac663 100644 --- a/Jenkinsfile-prod +++ b/Jenkinsfile-prod @@ -37,6 +37,7 @@ pipeline { } stage('SonarQube analysis') { steps{ + cd v1.0/backend/src withSonarQubeEnv('saralsonar9.0.1') { sh "npm run sonar" } From 37146995c6b19033066cafa6f04f6426a52e5608 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 12:33:09 +0530 Subject: [PATCH 11/56] Update Jenkinsfile-prod --- Jenkinsfile-prod | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile-prod b/Jenkinsfile-prod index 05b2ac663..4e08e0305 100644 --- a/Jenkinsfile-prod +++ b/Jenkinsfile-prod @@ -37,9 +37,11 @@ pipeline { } stage('SonarQube analysis') { steps{ - cd v1.0/backend/src withSonarQubeEnv('saralsonar9.0.1') { - sh "npm run sonar" + sh ''' + cd v1.0/backend/src + npm run sonar + ''' } } } From 6d97829984f4d964f8156c23693a943881d553af Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Wed, 16 Aug 2023 17:09:29 +0530 Subject: [PATCH 12/56] add npx to dev dependency --- v1.0/backend/package-lock.json | 4550 ++++++++++++++++++++++++++++++++ v1.0/backend/package.json | 1 + 2 files changed, 4551 insertions(+) diff --git a/v1.0/backend/package-lock.json b/v1.0/backend/package-lock.json index dc7bff5e9..169cb2511 100644 --- a/v1.0/backend/package-lock.json +++ b/v1.0/backend/package-lock.json @@ -34,6 +34,7 @@ "env-cmd": "^8.0.2", "jest": "^29.3.1", "nodemon": "^2.0.6", + "npx": "^10.2.2", "sonarqube-scanner": "^3.0.1" } }, @@ -7582,6 +7583,4555 @@ "node": ">=8" } }, + "node_modules/npx": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/npx/-/npx-10.2.2.tgz", + "integrity": "sha512-eImmySusyeWphzs5iNh791XbZnZG0FSNvM4KSah34pdQQIDsdTDhIwg1sjN3AIVcjGLpbQ/YcfqHPshKZQK1fA==", + "bundleDependencies": [ + "npm", + "libnpx" + ], + "dev": true, + "dependencies": { + "libnpx": "10.2.2", + "npm": "5.1.0" + }, + "bin": { + "npx": "index.js" + } + }, + "node_modules/npx/node_modules/ansi-align": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^2.0.0" + } + }, + "node_modules/npx/node_modules/ansi-regex": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/ansi-styles": { + "version": "3.2.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/balanced-match": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/boxen": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/brace-expansion": { + "version": "1.1.11", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npx/node_modules/builtins": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/camelcase": { + "version": "4.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/capture-stack-trace": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/chalk": { + "version": "2.4.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/ci-info": { + "version": "1.6.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/cli-boxes": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/cliui": { + "version": "4.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/npx/node_modules/code-point-at": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/color-convert": { + "version": "1.9.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npx/node_modules/color-name": { + "version": "1.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/configstore": { + "version": "3.1.2", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/create-error-class": { + "version": "3.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "capture-stack-trace": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/cross-spawn": { + "version": "5.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/npx/node_modules/crypto-random-string": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/decamelize": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/deep-extend": { + "version": "0.6.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/npx/node_modules/dot-prop": { + "version": "4.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/dotenv": { + "version": "5.0.1", + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.6.0" + } + }, + "node_modules/npx/node_modules/duplexer3": { + "version": "0.1.4", + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npx/node_modules/end-of-stream": { + "version": "1.4.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/npx/node_modules/escape-string-regexp": { + "version": "1.0.5", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npx/node_modules/execa": { + "version": "0.7.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/find-up": { + "version": "2.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/fs.realpath": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/get-caller-file": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/get-stream": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/glob": { + "version": "7.1.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npx/node_modules/global-dirs": { + "version": "0.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/got": { + "version": "6.7.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/graceful-fs": { + "version": "4.2.3", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/has-flag": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/hosted-git-info": { + "version": "2.8.5", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/import-lazy": { + "version": "2.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/imurmurhash": { + "version": "0.1.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npx/node_modules/inflight": { + "version": "1.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npx/node_modules/inherits": { + "version": "2.0.4", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/ini": { + "version": "1.3.5", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/invert-kv": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/is-ci": { + "version": "1.2.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/npx/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/is-installed-globally": { + "version": "0.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/is-npm": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/is-obj": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/is-path-inside": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/is-redirect": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/is-retry-allowed": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/is-stream": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/isexe": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/latest-version": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "package-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/lcid": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npx/node_modules/libnpx": { + "version": "10.2.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^11.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/locate-path": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/lowercase-keys": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/lru-cache": { + "version": "4.1.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/npx/node_modules/make-dir": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/map-age-cleaner": { + "version": "0.1.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npx/node_modules/mem": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npx/node_modules/mimic-fn": { + "version": "2.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npx/node_modules/minimatch": { + "version": "3.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/minimist": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/nice-try": { + "version": "1.0.5", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm": { + "version": "5.1.0", + "bundleDependencies": [ + "abbrev", + "ansi-regex", + "ansicolors", + "ansistyles", + "aproba", + "archy", + "cacache", + "call-limit", + "bluebird", + "chownr", + "cmd-shim", + "columnify", + "config-chain", + "debuglog", + "detect-indent", + "dezalgo", + "editor", + "fs-vacuum", + "fs-write-stream-atomic", + "fstream", + "fstream-npm", + "glob", + "graceful-fs", + "has-unicode", + "hosted-git-info", + "iferr", + "imurmurhash", + "inflight", + "inherits", + "ini", + "init-package-json", + "JSONStream", + "lazy-property", + "lockfile", + "lodash._baseindexof", + "lodash._baseuniq", + "lodash._bindcallback", + "lodash._cacheindexof", + "lodash._createcache", + "lodash._getnative", + "lodash.clonedeep", + "lodash.restparam", + "lodash.union", + "lodash.uniq", + "lodash.without", + "lru-cache", + "mkdirp", + "mississippi", + "move-concurrently", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-cache-filename", + "npm-install-checks", + "npm-package-arg", + "npm-registry-client", + "npm-user-validate", + "npmlog", + "once", + "opener", + "osenv", + "pacote", + "path-is-inside", + "promise-inflight", + "read", + "read-cmd-shim", + "read-installed", + "read-package-json", + "read-package-tree", + "readable-stream", + "readdir-scoped-modules", + "request", + "retry", + "rimraf", + "semver", + "sha", + "slide", + "sorted-object", + "sorted-union-stream", + "ssri", + "strip-ansi", + "tar", + "text-table", + "uid-number", + "umask", + "unique-filename", + "unpipe", + "update-notifier", + "uuid", + "validate-npm-package-license", + "validate-npm-package-name", + "which", + "wrappy", + "write-file-atomic", + "safe-buffer", + "worker-farm" + ], + "inBundle": true, + "license": "Artistic-2.0", + "dependencies": { + "abbrev": "~1.1.0", + "ansi-regex": "~3.0.0", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "~1.1.2", + "archy": "~1.0.0", + "bluebird": "~3.5.0", + "cacache": "~9.2.9", + "call-limit": "~1.1.0", + "chownr": "~1.0.1", + "cmd-shim": "~2.0.2", + "columnify": "~1.5.4", + "config-chain": "~1.1.11", + "debuglog": "*", + "detect-indent": "~5.0.0", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "fstream": "~1.0.11", + "fstream-npm": "~1.2.1", + "glob": "~7.1.2", + "graceful-fs": "~4.1.11", + "has-unicode": "~2.0.1", + "hosted-git-info": "~2.5.0", + "iferr": "~0.1.5", + "imurmurhash": "*", + "inflight": "~1.0.6", + "inherits": "~2.0.3", + "ini": "~1.3.4", + "init-package-json": "~1.10.1", + "JSONStream": "~1.3.1", + "lazy-property": "~1.0.0", + "lockfile": "~1.0.3", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "~4.1.1", + "mississippi": "~1.3.0", + "mkdirp": "~0.5.1", + "move-concurrently": "~1.0.1", + "node-gyp": "~3.6.2", + "nopt": "~4.0.1", + "normalize-package-data": "~2.4.0", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "~3.0.0", + "npm-package-arg": "~5.1.2", + "npm-registry-client": "~8.4.0", + "npm-user-validate": "~1.0.0", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "~1.4.3", + "osenv": "~0.1.4", + "pacote": "~2.7.38", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "read": "~1.0.7", + "read-cmd-shim": "~1.0.1", + "read-installed": "~4.0.3", + "read-package-json": "~2.0.9", + "read-package-tree": "~5.1.6", + "readable-stream": "~2.3.2", + "readdir-scoped-modules": "*", + "request": "~2.81.0", + "retry": "~0.10.1", + "rimraf": "~2.6.1", + "safe-buffer": "~5.1.1", + "semver": "~5.3.0", + "sha": "~2.0.1", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "~4.1.6", + "strip-ansi": "~4.0.0", + "tar": "~2.2.1", + "text-table": "~0.2.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "~1.1.0", + "unpipe": "~1.0.0", + "update-notifier": "~2.2.0", + "uuid": "~3.1.0", + "validate-npm-package-license": "*", + "validate-npm-package-name": "~3.0.0", + "which": "~1.2.14", + "worker-farm": "~1.3.1", + "wrappy": "~1.0.2", + "write-file-atomic": "~2.1.0" + }, + "bin": { + "npm": "bin/npm-cli.js" + } + }, + "node_modules/npx/node_modules/npm-package-arg": { + "version": "6.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npx/node_modules/npm-run-path": { + "version": "2.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/abbrev": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/ansi-regex": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/ansicolors": { + "version": "0.3.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/ansistyles": { + "version": "0.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/aproba": { + "version": "1.1.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/bluebird": { + "version": "3.5.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/cacache": { + "version": "9.2.9", + "inBundle": true, + "license": "CC0-1.0", + "dependencies": { + "bluebird": "^3.5.0", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^1.3.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.1", + "ssri": "^4.1.6", + "unique-filename": "^1.1.0", + "y18n": "^3.2.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/cacache/node_modules/lru-cache": { + "version": "4.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/cacache/node_modules/lru-cache/node_modules/pseudomap": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/cacache/node_modules/lru-cache/node_modules/yallist": { + "version": "2.1.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/cacache/node_modules/y18n": { + "version": "3.2.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/call-limit": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/chownr": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/cmd-shim": { + "version": "2.0.2", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/columnify": { + "version": "1.5.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/columnify/node_modules/strip-ansi": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/columnify/node_modules/wcwidth": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/npx/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npx/node_modules/npm/node_modules/config-chain": { + "version": "1.1.11", + "inBundle": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/config-chain/node_modules/proto-list": { + "version": "1.2.4", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/debuglog": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/detect-indent": { + "version": "5.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/dezalgo": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/dezalgo/node_modules/asap": { + "version": "2.0.5", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/editor": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/fs-vacuum": { + "version": "1.2.10", + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/fstream": { + "version": "1.0.11", + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/npx/node_modules/npm/node_modules/fstream-npm": { + "version": "1.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "fstream-ignore": "^1.0.0", + "inherits": "2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore": { + "version": "1.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch": { + "version": "3.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.8", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/glob": { + "version": "7.1.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/fs.realpath": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/minimatch": { + "version": "3.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.8", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/path-is-absolute": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/graceful-fs": { + "version": "4.1.11", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/hosted-git-info": { + "version": "2.5.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/iferr": { + "version": "0.1.5", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npx/node_modules/npm/node_modules/inflight": { + "version": "1.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/inherits": { + "version": "2.0.3", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/ini": { + "version": "1.3.4", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/init-package-json": { + "version": "1.10.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/init-package-json/node_modules/promzard": { + "version": "0.3.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/JSONStream": { + "version": "1.3.1", + "inBundle": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "index.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/JSONStream/node_modules/jsonparse": { + "version": "1.3.1", + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/JSONStream/node_modules/through": { + "version": "2.3.8", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lazy-property": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lockfile": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash._baseindexof": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash._baseuniq": { + "version": "4.6.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset": { + "version": "4.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash._bindcallback": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash._cacheindexof": { + "version": "3.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash._createcache": { + "version": "3.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash._getnative": "^3.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/lodash._getnative": { + "version": "3.9.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash.clonedeep": { + "version": "4.5.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash.restparam": { + "version": "3.6.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash.union": { + "version": "4.6.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash.uniq": { + "version": "4.5.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lodash.without": { + "version": "4.4.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/lru-cache": { + "version": "4.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/lru-cache/node_modules/pseudomap": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/lru-cache/node_modules/yallist": { + "version": "2.1.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi": { + "version": "1.3.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^1.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/concat-stream": { + "version": "1.6.0", + "engines": [ + "node >= 0.8" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray": { + "version": "0.0.6", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/duplexify": { + "version": "3.5.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once": { + "version": "1.3.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/end-of-stream": { + "version": "1.4.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/flush-write-stream": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/from2": { + "version": "2.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/parallel-transform": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist": { + "version": "0.2.2", + "inBundle": true + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/pump": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/pumpify": { + "version": "1.3.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.1.2", + "inherits": "^2.0.1", + "pump": "^1.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/stream-each": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/through2": { + "version": "2.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend": { + "version": "4.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mkdirp": { + "version": "0.5.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/npx/node_modules/npm/node_modules/mkdirp/node_modules/minimist": { + "version": "0.0.8", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/move-concurrently": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/npx/node_modules/npm/node_modules/move-concurrently/node_modules/copy-concurrently": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/move-concurrently/node_modules/run-queue": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/node-gyp": { + "version": "3.6.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "2", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { + "version": "3.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.8", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/node-gyp/node_modules/nopt": { + "version": "3.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/npx/node_modules/npm/node_modules/nopt": { + "version": "4.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/npx/node_modules/npm/node_modules/normalize-package-data": { + "version": "2.4.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules": { + "version": "1.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npm-cache-filename": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/npm-install-checks": { + "version": "3.0.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npm-package-arg": { + "version": "5.1.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^2.4.2", + "osenv": "^0.1.4", + "semver": "^5.1.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npm-registry-client": { + "version": "8.4.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3", + "ssri": "^4.1.2" + }, + "optionalDependencies": { + "npmlog": "2 || ^3.1.0 || ^4.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream": { + "version": "1.6.0", + "engines": [ + "node >= 0.8" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray": { + "version": "0.0.6", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/npm-user-validate": { + "version": "1.0.0", + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog": { + "version": "4.1.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet": { + "version": "1.1.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/console-control-strings": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge": { + "version": "2.7.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign": { + "version": "4.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit": { + "version": "3.0.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align": { + "version": "1.1.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/set-blocking": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/once": { + "version": "1.4.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/opener": { + "version": "1.4.3", + "inBundle": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "opener.js" + } + }, + "node_modules/npx/node_modules/npm/node_modules/osenv": { + "version": "0.1.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/osenv/node_modules/os-homedir": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote": { + "version": "2.7.38", + "inBundle": true, + "license": "CC0-1.0", + "dependencies": { + "bluebird": "^3.5.0", + "cacache": "^9.2.9", + "glob": "^7.1.2", + "lru-cache": "^4.1.1", + "make-fetch-happen": "^2.4.13", + "minimatch": "^3.0.4", + "mississippi": "^1.2.0", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^5.1.2", + "npm-pick-manifest": "^1.0.4", + "osenv": "^0.1.4", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^4.0.0", + "safe-buffer": "^5.1.1", + "semver": "^5.3.0", + "ssri": "^4.1.6", + "tar-fs": "^1.15.3", + "tar-stream": "^1.5.4", + "unique-filename": "^1.1.0", + "which": "^1.2.12" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen": { + "version": "2.4.13", + "inBundle": true, + "license": "CC0-1.0", + "dependencies": { + "agentkeepalive": "^3.3.0", + "cacache": "^9.2.9", + "http-cache-semantics": "^3.7.3", + "http-proxy-agent": "^2.0.0", + "https-proxy-agent": "^2.0.0", + "lru-cache": "^4.1.1", + "mississippi": "^1.2.0", + "node-fetch-npm": "^2.0.1", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^3.0.0", + "ssri": "^4.1.6" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive": { + "version": "3.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms": { + "version": "1.2.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics": { + "version": "3.7.3", + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "4", + "debug": "2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "4.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify": { + "version": "5.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise": { + "version": "4.1.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug": { + "version": "2.6.8", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^4.1.0", + "debug": "^2.4.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base": { + "version": "4.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify": { + "version": "5.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise": { + "version": "4.1.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug": { + "version": "2.6.8", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "encoding": "^0.1.11", + "json-parse-helpfulerror": "^1.0.3", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding": { + "version": "0.1.12", + "inBundle": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "~0.4.13" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite": { + "version": "0.4.18", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-helpfulerror": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "jju": "^1.1.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-helpfulerror/node_modules/jju": { + "version": "1.3.0", + "inBundle": true, + "license": "WTFPL" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^4.0.1", + "socks": "^1.1.10" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "4.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify": { + "version": "5.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise": { + "version": "4.1.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks": { + "version": "1.1.10", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" + }, + "engines": { + "node": ">= 0.10.0", + "npm": ">= 1.3.5" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip": { + "version": "1.1.5", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer": { + "version": "1.1.15", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.10.15", + "npm": ">= 1.3.5" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/minimatch": { + "version": "3.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.8", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/npm-pick-manifest": { + "version": "1.0.4", + "inBundle": true, + "license": "CC0-1.0", + "dependencies": { + "npm-package-arg": "^5.1.2", + "semver": "^5.3.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/promise-retry": { + "version": "1.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code": { + "version": "1.1.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/protoduck": { + "version": "4.0.0", + "inBundle": true, + "license": "CC0-1.0", + "dependencies": { + "genfun": "^4.0.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun": { + "version": "4.0.1", + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-fs": { + "version": "1.15.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.0.1", + "mkdirp": "^0.5.1", + "pump": "^1.0.0", + "tar-stream": "^1.1.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-fs/node_modules/pump": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-fs/node_modules/pump/node_modules/end-of-stream": { + "version": "1.4.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-stream": { + "version": "1.5.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "bl": "^1.0.0", + "end-of-stream": "^1.0.0", + "readable-stream": "^2.0.0", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-stream/node_modules/bl": { + "version": "1.2.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-stream/node_modules/end-of-stream": { + "version": "1.4.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-stream/node_modules/xtend": { + "version": "4.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/path-is-inside": { + "version": "1.0.2", + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npx/node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/read": { + "version": "1.0.7", + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npx/node_modules/npm/node_modules/read-cmd-shim": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/read-installed": { + "version": "4.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/read-installed/node_modules/util-extend": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/read-package-json": { + "version": "2.0.9", + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-helpfulerror": "^1.0.2", + "normalize-package-data": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "jju": "^1.1.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju": { + "version": "1.3.0", + "inBundle": true, + "license": "WTFPL" + }, + "node_modules/npx/node_modules/npm/node_modules/read-package-tree": { + "version": "5.1.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/read/node_modules/mute-stream": { + "version": "0.0.7", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/readable-stream": { + "version": "2.3.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.0", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args": { + "version": "1.0.7", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/readdir-scoped-modules": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request": { + "version": "2.81.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/aws-sign2": { + "version": "0.6.0", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/aws4": { + "version": "1.6.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/caseless": { + "version": "0.12.0", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/combined-stream": { + "version": "1.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/extend": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/forever-agent": { + "version": "0.6.1", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/form-data": { + "version": "2.1.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/asynckit": { + "version": "0.4.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator": { + "version": "4.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/ajv": { + "version": "4.11.8", + "inBundle": true, + "license": "MIT", + "dependencies": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co": { + "version": "4.6.0", + "inBundle": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify": { + "version": "0.0.0", + "inBundle": true, + "license": "Public Domain", + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema": { + "version": "1.0.5", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/hawk": { + "version": "3.1.3", + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + }, + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom": { + "version": "2.10.1", + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles": { + "version": "2.0.5", + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "boom": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek": { + "version": "2.16.3", + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp": { + "version": "1.0.9", + "inBundle": true, + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature": { + "version": "1.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim": { + "version": "1.4.0", + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/assert-plus": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf": { + "version": "1.0.2", + "engines": [ + "node >=0.6.0" + ], + "inBundle": true + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema": { + "version": "0.2.3", + "inBundle": true + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror": { + "version": "1.3.6", + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "dependencies": { + "extsprintf": "1.0.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk": { + "version": "1.13.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "dashdash": "^1.12.0", + "getpass": "^0.1.1" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + }, + "optionalDependencies": { + "bcrypt-pbkdf": "^1.0.0", + "ecc-jsbn": "~0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1": { + "version": "0.2.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/assert-plus": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf": { + "version": "1.0.1", + "inBundle": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash": { + "version": "1.14.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn": { + "version": "0.1.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "jsbn": "~0.1.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass": { + "version": "0.1.7", + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.1", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "inBundle": true, + "license": "Unlicense", + "optional": true + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/is-typedarray": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/isstream": { + "version": "0.1.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/json-stringify-safe": { + "version": "5.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/mime-types": { + "version": "2.1.15", + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "~1.27.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db": { + "version": "1.27.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/oauth-sign": { + "version": "0.8.2", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/performance-now": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/qs": { + "version": "6.4.0", + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/stringstream": { + "version": "0.0.5", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/tough-cookie": { + "version": "2.3.2", + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode": { + "version": "1.4.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/request/node_modules/tunnel-agent": { + "version": "0.6.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/retry": { + "version": "0.10.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/rimraf": { + "version": "2.6.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/npx/node_modules/npm/node_modules/safe-buffer": { + "version": "5.1.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/semver": { + "version": "5.3.0", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npx/node_modules/npm/node_modules/sha": { + "version": "2.0.1", + "inBundle": true, + "license": "(BSD-2-Clause OR MIT)", + "dependencies": { + "graceful-fs": "^4.1.2", + "readable-stream": "^2.0.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/slide": { + "version": "1.1.6", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/sorted-object": { + "version": "2.0.1", + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream": { + "version": "2.1.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/from2": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream": { + "version": "1.1.14", + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder": { + "version": "0.10.31", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/stream-iterate": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/ssri": { + "version": "4.1.6", + "inBundle": true, + "license": "CC0-1.0", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/strip-ansi": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/tar": { + "version": "2.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/tar/node_modules/block-stream": { + "version": "0.0.9", + "inBundle": true, + "license": "ISC", + "dependencies": { + "inherits": "~2.0.0" + }, + "engines": { + "node": "0.4 || >=0.5.8" + } + }, + "node_modules/npx/node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/uid-number": { + "version": "0.0.6", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npx/node_modules/npm/node_modules/umask": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/unique-filename": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/unpipe": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier": { + "version": "2.2.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^1.0.0", + "chalk": "^1.0.0", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^1.1.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^0.1.0", + "widest-line": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^2.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase": { + "version": "4.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width": { + "version": "2.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size": { + "version": "0.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "execa": "^0.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa": { + "version": "0.4.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cross-spawn-async": "^2.1.1", + "is-stream": "^1.1.0", + "npm-run-path": "^1.0.0", + "object-assign": "^4.0.1", + "path-key": "^1.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async": { + "version": "2.2.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.0", + "which": "^1.2.8" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign": { + "version": "4.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk": { + "version": "1.1.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles": { + "version": "2.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp": { + "version": "1.0.5", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore": { + "version": "3.1.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop": { + "version": "4.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify": { + "version": "2.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/import-lazy": { + "version": "2.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/is-npm": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "package-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json": { + "version": "4.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got": { + "version": "6.7.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class": { + "version": "3.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "capture-stack-trace": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/node_modules/capture-stack-trace": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3": { + "version": "0.1.4", + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out": { + "version": "4.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token": { + "version": "3.3.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc": { + "version": "1.2.1", + "inBundle": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "index.js" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend": { + "version": "0.4.2", + "inBundle": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.12.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc": { + "version": "1.2.1", + "inBundle": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "index.js" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend": { + "version": "0.4.2", + "inBundle": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.12.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/semver-diff": { + "version": "2.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/xdg-basedir": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/uuid": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.1", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct": { + "version": "1.0.2", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-license-ids": "^1.0.2" + } + }, + "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids": { + "version": "1.2.2", + "inBundle": true, + "license": "Unlicense" + }, + "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "1.0.4", + "inBundle": true, + "license": "(MIT AND CC-BY-3.0)" + }, + "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-name": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/which": { + "version": "1.2.14", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npx/node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/worker-farm": { + "version": "1.3.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "errno": ">=0.1.1 <0.2.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/npx/node_modules/npm/node_modules/worker-farm/node_modules/errno": { + "version": "0.1.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "prr": "~0.0.0" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/npx/node_modules/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr": { + "version": "0.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/npm/node_modules/worker-farm/node_modules/xtend": { + "version": "4.0.1", + "inBundle": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/npx/node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/npm/node_modules/write-file-atomic": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "node_modules/npx/node_modules/number-is-nan": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/once": { + "version": "1.4.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npx/node_modules/os-homedir": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/os-locale": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npx/node_modules/os-locale/node_modules/cross-spawn": { + "version": "6.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npx/node_modules/os-locale/node_modules/execa": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npx/node_modules/os-locale/node_modules/get-stream": { + "version": "4.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npx/node_modules/os-tmpdir": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/osenv": { + "version": "0.1.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/npx/node_modules/p-defer": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/p-finally": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/p-is-promise": { + "version": "2.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npx/node_modules/p-limit": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/p-locate": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/p-try": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/package-json": { + "version": "4.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/path-exists": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/path-is-absolute": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/path-is-inside": { + "version": "1.0.2", + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npx/node_modules/path-key": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/pify": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/prepend-http": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/pseudomap": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/pump": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/npx/node_modules/rc": { + "version": "1.2.8", + "inBundle": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/npx/node_modules/registry-auth-token": { + "version": "3.4.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/npx/node_modules/registry-url": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/require-directory": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/require-main-filename": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/rimraf": { + "version": "2.7.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/npx/node_modules/safe-buffer": { + "version": "5.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npx/node_modules/semver": { + "version": "5.7.1", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npx/node_modules/semver-diff": { + "version": "2.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/set-blocking": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/shebang-command": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/shebang-regex": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/signal-exit": { + "version": "3.0.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/string-width": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/strip-ansi": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/strip-eof": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/strip-json-comments": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/supports-color": { + "version": "5.5.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/term-size": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "execa": "^0.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/timed-out": { + "version": "4.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/unique-string": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/unzip-response": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/update-notifier": { + "version": "2.5.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/url-parse-lax": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/validate-npm-package-name": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/npx/node_modules/which": { + "version": "1.3.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npx/node_modules/which-module": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/widest-line": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/wrap-ansi": { + "version": "2.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npx/node_modules/wrappy": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/write-file-atomic": { + "version": "2.4.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/npx/node_modules/xdg-basedir": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npx/node_modules/y18n": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/yallist": { + "version": "2.1.2", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npx/node_modules/yargs": { + "version": "11.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + } + }, + "node_modules/npx/node_modules/yargs-parser": { + "version": "9.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "camelcase": "^4.1.0" + } + }, + "node_modules/npx/node_modules/yargs/node_modules/y18n": { + "version": "3.2.1", + "inBundle": true, + "license": "ISC" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", diff --git a/v1.0/backend/package.json b/v1.0/backend/package.json index fa8072452..5fda6b751 100644 --- a/v1.0/backend/package.json +++ b/v1.0/backend/package.json @@ -56,6 +56,7 @@ "env-cmd": "^8.0.2", "jest": "^29.3.1", "nodemon": "^2.0.6", + "npx": "^10.2.2", "sonarqube-scanner": "^3.0.1" } } From 5ca95511b58e53afa3ffddf85d99740595ab7b02 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 17:31:06 +0530 Subject: [PATCH 13/56] Update Jenkinsfile-prod --- Jenkinsfile-prod | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile-prod b/Jenkinsfile-prod index 4e08e0305..1ca31f5d3 100644 --- a/Jenkinsfile-prod +++ b/Jenkinsfile-prod @@ -39,7 +39,8 @@ pipeline { steps{ withSonarQubeEnv('saralsonar9.0.1') { sh ''' - cd v1.0/backend/src + cd v1.0/backend/ + npm install npm run sonar ''' } From 59787581dacd6fa960b1e0329513064fffc000f0 Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Wed, 16 Aug 2023 17:48:10 +0530 Subject: [PATCH 14/56] remove npx --- v1.0/backend/package-lock.json | 4550 -------------------------------- v1.0/backend/package.json | 3 +- 2 files changed, 1 insertion(+), 4552 deletions(-) diff --git a/v1.0/backend/package-lock.json b/v1.0/backend/package-lock.json index 169cb2511..dc7bff5e9 100644 --- a/v1.0/backend/package-lock.json +++ b/v1.0/backend/package-lock.json @@ -34,7 +34,6 @@ "env-cmd": "^8.0.2", "jest": "^29.3.1", "nodemon": "^2.0.6", - "npx": "^10.2.2", "sonarqube-scanner": "^3.0.1" } }, @@ -7583,4555 +7582,6 @@ "node": ">=8" } }, - "node_modules/npx": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/npx/-/npx-10.2.2.tgz", - "integrity": "sha512-eImmySusyeWphzs5iNh791XbZnZG0FSNvM4KSah34pdQQIDsdTDhIwg1sjN3AIVcjGLpbQ/YcfqHPshKZQK1fA==", - "bundleDependencies": [ - "npm", - "libnpx" - ], - "dev": true, - "dependencies": { - "libnpx": "10.2.2", - "npm": "5.1.0" - }, - "bin": { - "npx": "index.js" - } - }, - "node_modules/npx/node_modules/ansi-align": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^2.0.0" - } - }, - "node_modules/npx/node_modules/ansi-regex": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/ansi-styles": { - "version": "3.2.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/balanced-match": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/boxen": { - "version": "1.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/brace-expansion": { - "version": "1.1.11", - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npx/node_modules/builtins": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/camelcase": { - "version": "4.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/capture-stack-trace": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/chalk": { - "version": "2.4.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/ci-info": { - "version": "1.6.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/cli-boxes": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/cliui": { - "version": "4.1.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/npx/node_modules/code-point-at": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/color-convert": { - "version": "1.9.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/npx/node_modules/color-name": { - "version": "1.1.3", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/concat-map": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/configstore": { - "version": "3.1.2", - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/create-error-class": { - "version": "3.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "capture-stack-trace": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/cross-spawn": { - "version": "5.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/npx/node_modules/crypto-random-string": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/decamelize": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/deep-extend": { - "version": "0.6.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/npx/node_modules/dot-prop": { - "version": "4.2.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "is-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/dotenv": { - "version": "5.0.1", - "inBundle": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.6.0" - } - }, - "node_modules/npx/node_modules/duplexer3": { - "version": "0.1.4", - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/npx/node_modules/end-of-stream": { - "version": "1.4.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/npx/node_modules/escape-string-regexp": { - "version": "1.0.5", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npx/node_modules/execa": { - "version": "0.7.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/find-up": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/fs.realpath": { - "version": "1.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/get-caller-file": { - "version": "1.0.3", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/get-stream": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/glob": { - "version": "7.1.6", - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npx/node_modules/global-dirs": { - "version": "0.1.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/got": { - "version": "6.7.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/graceful-fs": { - "version": "4.2.3", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/has-flag": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/hosted-git-info": { - "version": "2.8.5", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/import-lazy": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/imurmurhash": { - "version": "0.1.4", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/npx/node_modules/inflight": { - "version": "1.0.6", - "inBundle": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/npx/node_modules/inherits": { - "version": "2.0.4", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/ini": { - "version": "1.3.5", - "inBundle": true, - "license": "ISC", - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/invert-kv": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/is-ci": { - "version": "1.2.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ci-info": "^1.5.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/npx/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/is-installed-globally": { - "version": "0.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/is-npm": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/is-obj": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/is-path-inside": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/is-redirect": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/is-retry-allowed": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/is-stream": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/isexe": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/latest-version": { - "version": "3.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "package-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/lcid": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "invert-kv": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npx/node_modules/libnpx": { - "version": "10.2.2", - "inBundle": true, - "license": "ISC", - "dependencies": { - "dotenv": "^5.0.1", - "npm-package-arg": "^6.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.0", - "update-notifier": "^2.3.0", - "which": "^1.3.0", - "y18n": "^4.0.0", - "yargs": "^11.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/locate-path": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/lowercase-keys": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/lru-cache": { - "version": "4.1.5", - "inBundle": true, - "license": "ISC", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/npx/node_modules/make-dir": { - "version": "1.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/map-age-cleaner": { - "version": "0.1.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npx/node_modules/mem": { - "version": "4.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npx/node_modules/mimic-fn": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npx/node_modules/minimatch": { - "version": "3.0.4", - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/minimist": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/nice-try": { - "version": "1.0.5", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm": { - "version": "5.1.0", - "bundleDependencies": [ - "abbrev", - "ansi-regex", - "ansicolors", - "ansistyles", - "aproba", - "archy", - "cacache", - "call-limit", - "bluebird", - "chownr", - "cmd-shim", - "columnify", - "config-chain", - "debuglog", - "detect-indent", - "dezalgo", - "editor", - "fs-vacuum", - "fs-write-stream-atomic", - "fstream", - "fstream-npm", - "glob", - "graceful-fs", - "has-unicode", - "hosted-git-info", - "iferr", - "imurmurhash", - "inflight", - "inherits", - "ini", - "init-package-json", - "JSONStream", - "lazy-property", - "lockfile", - "lodash._baseindexof", - "lodash._baseuniq", - "lodash._bindcallback", - "lodash._cacheindexof", - "lodash._createcache", - "lodash._getnative", - "lodash.clonedeep", - "lodash.restparam", - "lodash.union", - "lodash.uniq", - "lodash.without", - "lru-cache", - "mkdirp", - "mississippi", - "move-concurrently", - "node-gyp", - "nopt", - "normalize-package-data", - "npm-cache-filename", - "npm-install-checks", - "npm-package-arg", - "npm-registry-client", - "npm-user-validate", - "npmlog", - "once", - "opener", - "osenv", - "pacote", - "path-is-inside", - "promise-inflight", - "read", - "read-cmd-shim", - "read-installed", - "read-package-json", - "read-package-tree", - "readable-stream", - "readdir-scoped-modules", - "request", - "retry", - "rimraf", - "semver", - "sha", - "slide", - "sorted-object", - "sorted-union-stream", - "ssri", - "strip-ansi", - "tar", - "text-table", - "uid-number", - "umask", - "unique-filename", - "unpipe", - "update-notifier", - "uuid", - "validate-npm-package-license", - "validate-npm-package-name", - "which", - "wrappy", - "write-file-atomic", - "safe-buffer", - "worker-farm" - ], - "inBundle": true, - "license": "Artistic-2.0", - "dependencies": { - "abbrev": "~1.1.0", - "ansi-regex": "~3.0.0", - "ansicolors": "~0.3.2", - "ansistyles": "~0.1.3", - "aproba": "~1.1.2", - "archy": "~1.0.0", - "bluebird": "~3.5.0", - "cacache": "~9.2.9", - "call-limit": "~1.1.0", - "chownr": "~1.0.1", - "cmd-shim": "~2.0.2", - "columnify": "~1.5.4", - "config-chain": "~1.1.11", - "debuglog": "*", - "detect-indent": "~5.0.0", - "dezalgo": "~1.0.3", - "editor": "~1.0.0", - "fs-vacuum": "~1.2.10", - "fs-write-stream-atomic": "~1.0.10", - "fstream": "~1.0.11", - "fstream-npm": "~1.2.1", - "glob": "~7.1.2", - "graceful-fs": "~4.1.11", - "has-unicode": "~2.0.1", - "hosted-git-info": "~2.5.0", - "iferr": "~0.1.5", - "imurmurhash": "*", - "inflight": "~1.0.6", - "inherits": "~2.0.3", - "ini": "~1.3.4", - "init-package-json": "~1.10.1", - "JSONStream": "~1.3.1", - "lazy-property": "~1.0.0", - "lockfile": "~1.0.3", - "lodash._baseindexof": "*", - "lodash._baseuniq": "~4.6.0", - "lodash._bindcallback": "*", - "lodash._cacheindexof": "*", - "lodash._createcache": "*", - "lodash._getnative": "*", - "lodash.clonedeep": "~4.5.0", - "lodash.restparam": "*", - "lodash.union": "~4.6.0", - "lodash.uniq": "~4.5.0", - "lodash.without": "~4.4.0", - "lru-cache": "~4.1.1", - "mississippi": "~1.3.0", - "mkdirp": "~0.5.1", - "move-concurrently": "~1.0.1", - "node-gyp": "~3.6.2", - "nopt": "~4.0.1", - "normalize-package-data": "~2.4.0", - "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~3.0.0", - "npm-package-arg": "~5.1.2", - "npm-registry-client": "~8.4.0", - "npm-user-validate": "~1.0.0", - "npmlog": "~4.1.2", - "once": "~1.4.0", - "opener": "~1.4.3", - "osenv": "~0.1.4", - "pacote": "~2.7.38", - "path-is-inside": "~1.0.2", - "promise-inflight": "~1.0.1", - "read": "~1.0.7", - "read-cmd-shim": "~1.0.1", - "read-installed": "~4.0.3", - "read-package-json": "~2.0.9", - "read-package-tree": "~5.1.6", - "readable-stream": "~2.3.2", - "readdir-scoped-modules": "*", - "request": "~2.81.0", - "retry": "~0.10.1", - "rimraf": "~2.6.1", - "safe-buffer": "~5.1.1", - "semver": "~5.3.0", - "sha": "~2.0.1", - "slide": "~1.1.6", - "sorted-object": "~2.0.1", - "sorted-union-stream": "~2.1.3", - "ssri": "~4.1.6", - "strip-ansi": "~4.0.0", - "tar": "~2.2.1", - "text-table": "~0.2.0", - "uid-number": "0.0.6", - "umask": "~1.1.0", - "unique-filename": "~1.1.0", - "unpipe": "~1.0.0", - "update-notifier": "~2.2.0", - "uuid": "~3.1.0", - "validate-npm-package-license": "*", - "validate-npm-package-name": "~3.0.0", - "which": "~1.2.14", - "worker-farm": "~1.3.1", - "wrappy": "~1.0.2", - "write-file-atomic": "~2.1.0" - }, - "bin": { - "npm": "bin/npm-cli.js" - } - }, - "node_modules/npx/node_modules/npm-package-arg": { - "version": "6.1.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^2.7.1", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/npx/node_modules/npm-run-path": { - "version": "2.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/abbrev": { - "version": "1.1.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/ansi-regex": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/ansicolors": { - "version": "0.3.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/ansistyles": { - "version": "0.1.3", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/aproba": { - "version": "1.1.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/archy": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/bluebird": { - "version": "3.5.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/cacache": { - "version": "9.2.9", - "inBundle": true, - "license": "CC0-1.0", - "dependencies": { - "bluebird": "^3.5.0", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^1.3.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.1", - "ssri": "^4.1.6", - "unique-filename": "^1.1.0", - "y18n": "^3.2.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/cacache/node_modules/lru-cache": { - "version": "4.1.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/cacache/node_modules/lru-cache/node_modules/pseudomap": { - "version": "1.0.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/cacache/node_modules/lru-cache/node_modules/yallist": { - "version": "2.1.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/cacache/node_modules/y18n": { - "version": "3.2.1", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/call-limit": { - "version": "1.1.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/chownr": { - "version": "1.0.1", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/cmd-shim": { - "version": "2.0.2", - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "graceful-fs": "^4.1.2", - "mkdirp": "~0.5.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/columnify": { - "version": "1.5.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/columnify/node_modules/strip-ansi": { - "version": "3.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/columnify/node_modules/wcwidth": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/npx/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npx/node_modules/npm/node_modules/config-chain": { - "version": "1.1.11", - "inBundle": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/config-chain/node_modules/proto-list": { - "version": "1.2.4", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/debuglog": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/detect-indent": { - "version": "5.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/dezalgo": { - "version": "1.0.3", - "inBundle": true, - "license": "ISC", - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/dezalgo/node_modules/asap": { - "version": "2.0.5", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/editor": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/fs-vacuum": { - "version": "1.2.10", - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.5.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/fstream": { - "version": "1.0.11", - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/npx/node_modules/npm/node_modules/fstream-npm": { - "version": "1.2.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "fstream-ignore": "^1.0.0", - "inherits": "2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore": { - "version": "1.0.5", - "inBundle": true, - "license": "ISC", - "dependencies": { - "fstream": "^1.0.0", - "inherits": "2", - "minimatch": "^3.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch": { - "version": "3.0.4", - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion": { - "version": "1.1.8", - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/glob": { - "version": "7.1.2", - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/fs.realpath": { - "version": "1.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/minimatch": { - "version": "3.0.4", - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion": { - "version": "1.1.8", - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/glob/node_modules/path-is-absolute": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/graceful-fs": { - "version": "4.1.11", - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/hosted-git-info": { - "version": "2.5.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/iferr": { - "version": "0.1.5", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/imurmurhash": { - "version": "0.1.4", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/npx/node_modules/npm/node_modules/inflight": { - "version": "1.0.6", - "inBundle": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/inherits": { - "version": "2.0.3", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/ini": { - "version": "1.3.4", - "inBundle": true, - "license": "ISC", - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/init-package-json": { - "version": "1.10.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.1", - "npm-package-arg": "^4.0.0 || ^5.0.0", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/init-package-json/node_modules/promzard": { - "version": "0.3.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "read": "1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/JSONStream": { - "version": "1.3.1", - "inBundle": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "index.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/JSONStream/node_modules/jsonparse": { - "version": "1.3.1", - "engines": [ - "node >= 0.2.0" - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/JSONStream/node_modules/through": { - "version": "2.3.8", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lazy-property": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lockfile": { - "version": "1.0.3", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash._baseindexof": { - "version": "3.1.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash._baseuniq": { - "version": "4.6.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "lodash._createset": "~4.0.0", - "lodash._root": "~3.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset": { - "version": "4.0.3", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root": { - "version": "3.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash._bindcallback": { - "version": "3.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash._cacheindexof": { - "version": "3.0.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash._createcache": { - "version": "3.1.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "lodash._getnative": "^3.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/lodash._getnative": { - "version": "3.9.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash.clonedeep": { - "version": "4.5.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash.restparam": { - "version": "3.6.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash.union": { - "version": "4.6.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash.uniq": { - "version": "4.5.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lodash.without": { - "version": "4.4.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/lru-cache": { - "version": "4.1.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/lru-cache/node_modules/pseudomap": { - "version": "1.0.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/lru-cache/node_modules/yallist": { - "version": "2.1.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi": { - "version": "1.3.0", - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^1.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/concat-stream": { - "version": "1.6.0", - "engines": [ - "node >= 0.8" - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray": { - "version": "0.0.6", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/duplexify": { - "version": "3.5.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "once": "~1.3.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once": { - "version": "1.3.3", - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/end-of-stream": { - "version": "1.4.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/flush-write-stream": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/from2": { - "version": "2.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/parallel-transform": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist": { - "version": "0.2.2", - "inBundle": true - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/pump": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/pumpify": { - "version": "1.3.5", - "inBundle": true, - "license": "MIT", - "dependencies": { - "duplexify": "^3.1.2", - "inherits": "^2.0.1", - "pump": "^1.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/stream-each": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/through2": { - "version": "2.0.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend": { - "version": "4.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mkdirp": { - "version": "0.5.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/npx/node_modules/npm/node_modules/mkdirp/node_modules/minimist": { - "version": "0.0.8", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/move-concurrently": { - "version": "1.0.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/npx/node_modules/npm/node_modules/move-concurrently/node_modules/copy-concurrently": { - "version": "1.0.3", - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/move-concurrently/node_modules/run-queue": { - "version": "1.0.3", - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/node-gyp": { - "version": "3.6.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "2", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { - "version": "3.0.4", - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion": { - "version": "1.1.8", - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/node-gyp/node_modules/nopt": { - "version": "3.0.6", - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/npx/node_modules/npm/node_modules/nopt": { - "version": "4.0.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/npx/node_modules/npm/node_modules/normalize-package-data": { - "version": "2.4.0", - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "builtin-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules": { - "version": "1.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npm-cache-filename": { - "version": "1.0.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/npm-install-checks": { - "version": "3.0.0", - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^2.3.0 || 3.x || 4 || 5" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npm-package-arg": { - "version": "5.1.2", - "inBundle": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^2.4.2", - "osenv": "^0.1.4", - "semver": "^5.1.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npm-registry-client": { - "version": "8.4.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "concat-stream": "^1.5.2", - "graceful-fs": "^4.1.6", - "normalize-package-data": "~1.0.1 || ^2.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0", - "once": "^1.3.3", - "request": "^2.74.0", - "retry": "^0.10.0", - "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3", - "ssri": "^4.1.2" - }, - "optionalDependencies": { - "npmlog": "2 || ^3.1.0 || ^4.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream": { - "version": "1.6.0", - "engines": [ - "node >= 0.8" - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray": { - "version": "0.0.6", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/npm-user-validate": { - "version": "1.0.0", - "inBundle": true, - "license": "BSD-2-Clause" - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog": { - "version": "4.1.2", - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet": { - "version": "1.1.4", - "inBundle": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/console-control-strings": { - "version": "1.1.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge": { - "version": "2.7.4", - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit": { - "version": "3.0.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align": { - "version": "1.1.2", - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/npmlog/node_modules/set-blocking": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/once": { - "version": "1.4.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/opener": { - "version": "1.4.3", - "inBundle": true, - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "opener.js" - } - }, - "node_modules/npx/node_modules/npm/node_modules/osenv": { - "version": "0.1.4", - "inBundle": true, - "license": "ISC", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/osenv/node_modules/os-homedir": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote": { - "version": "2.7.38", - "inBundle": true, - "license": "CC0-1.0", - "dependencies": { - "bluebird": "^3.5.0", - "cacache": "^9.2.9", - "glob": "^7.1.2", - "lru-cache": "^4.1.1", - "make-fetch-happen": "^2.4.13", - "minimatch": "^3.0.4", - "mississippi": "^1.2.0", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^5.1.2", - "npm-pick-manifest": "^1.0.4", - "osenv": "^0.1.4", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^4.0.0", - "safe-buffer": "^5.1.1", - "semver": "^5.3.0", - "ssri": "^4.1.6", - "tar-fs": "^1.15.3", - "tar-stream": "^1.5.4", - "unique-filename": "^1.1.0", - "which": "^1.2.12" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen": { - "version": "2.4.13", - "inBundle": true, - "license": "CC0-1.0", - "dependencies": { - "agentkeepalive": "^3.3.0", - "cacache": "^9.2.9", - "http-cache-semantics": "^3.7.3", - "http-proxy-agent": "^2.0.0", - "https-proxy-agent": "^2.0.0", - "lru-cache": "^4.1.1", - "mississippi": "^1.2.0", - "node-fetch-npm": "^2.0.1", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^3.0.0", - "ssri": "^4.1.6" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive": { - "version": "3.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms": { - "version": "1.2.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics": { - "version": "3.7.3", - "inBundle": true, - "license": "BSD-2-Clause" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "4", - "debug": "2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base": { - "version": "4.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify": { - "version": "5.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug": { - "version": "2.6.8", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^4.1.0", - "debug": "^2.4.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base": { - "version": "4.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify": { - "version": "5.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug": { - "version": "2.6.8", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "encoding": "^0.1.11", - "json-parse-helpfulerror": "^1.0.3", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding": { - "version": "0.1.12", - "inBundle": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "~0.4.13" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite": { - "version": "0.4.18", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-helpfulerror": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "jju": "^1.1.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-helpfulerror/node_modules/jju": { - "version": "1.3.0", - "inBundle": true, - "license": "WTFPL" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^4.0.1", - "socks": "^1.1.10" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "4.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify": { - "version": "5.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/node_modules/es6-promise": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks": { - "version": "1.1.10", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ip": "^1.1.4", - "smart-buffer": "^1.0.13" - }, - "engines": { - "node": ">= 0.10.0", - "npm": ">= 1.3.5" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip": { - "version": "1.1.5", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer": { - "version": "1.1.15", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.10.15", - "npm": ">= 1.3.5" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/minimatch": { - "version": "3.0.4", - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion": { - "version": "1.1.8", - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/npm-pick-manifest": { - "version": "1.0.4", - "inBundle": true, - "license": "CC0-1.0", - "dependencies": { - "npm-package-arg": "^5.1.2", - "semver": "^5.3.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/promise-retry": { - "version": "1.1.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code": { - "version": "1.1.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/protoduck": { - "version": "4.0.0", - "inBundle": true, - "license": "CC0-1.0", - "dependencies": { - "genfun": "^4.0.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun": { - "version": "4.0.1", - "inBundle": true, - "license": "CC0-1.0" - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-fs": { - "version": "1.15.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "chownr": "^1.0.1", - "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-fs/node_modules/pump": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-fs/node_modules/pump/node_modules/end-of-stream": { - "version": "1.4.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-stream": { - "version": "1.5.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "bl": "^1.0.0", - "end-of-stream": "^1.0.0", - "readable-stream": "^2.0.0", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-stream/node_modules/bl": { - "version": "1.2.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.5" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-stream/node_modules/end-of-stream": { - "version": "1.4.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/pacote/node_modules/tar-stream/node_modules/xtend": { - "version": "4.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/path-is-inside": { - "version": "1.0.2", - "inBundle": true, - "license": "(WTFPL OR MIT)" - }, - "node_modules/npx/node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/read": { - "version": "1.0.7", - "inBundle": true, - "license": "ISC", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npx/node_modules/npm/node_modules/read-cmd-shim": { - "version": "1.0.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/read-installed": { - "version": "4.0.3", - "inBundle": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "slide": "~1.1.3", - "util-extend": "^1.0.1" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/read-installed/node_modules/util-extend": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/read-package-json": { - "version": "2.0.9", - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.1", - "json-parse-helpfulerror": "^1.0.2", - "normalize-package-data": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "jju": "^1.1.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju": { - "version": "1.3.0", - "inBundle": true, - "license": "WTFPL" - }, - "node_modules/npx/node_modules/npm/node_modules/read-package-tree": { - "version": "5.1.6", - "inBundle": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "once": "^1.3.0", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/read/node_modules/mute-stream": { - "version": "0.0.7", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/readable-stream": { - "version": "2.3.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "safe-buffer": "~5.1.0", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args": { - "version": "1.0.7", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/readdir-scoped-modules": { - "version": "1.0.2", - "inBundle": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request": { - "version": "2.81.0", - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/aws-sign2": { - "version": "0.6.0", - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/aws4": { - "version": "1.6.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/caseless": { - "version": "0.12.0", - "inBundle": true, - "license": "Apache-2.0" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/combined-stream": { - "version": "1.0.5", - "inBundle": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/extend": { - "version": "3.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/forever-agent": { - "version": "0.6.1", - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/form-data": { - "version": "2.1.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/asynckit": { - "version": "0.4.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator": { - "version": "4.2.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/ajv": { - "version": "4.11.8", - "inBundle": true, - "license": "MIT", - "dependencies": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co": { - "version": "4.6.0", - "inBundle": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify": { - "version": "0.0.0", - "inBundle": true, - "license": "Public Domain", - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema": { - "version": "1.0.5", - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/hawk": { - "version": "3.1.3", - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - }, - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom": { - "version": "2.10.1", - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "hoek": "2.x.x" - }, - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles": { - "version": "2.0.5", - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "boom": "2.x.x" - }, - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek": { - "version": "2.16.3", - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp": { - "version": "1.0.9", - "inBundle": true, - "dependencies": { - "hoek": "2.x.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature": { - "version": "1.1.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus": { - "version": "0.2.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim": { - "version": "1.4.0", - "engines": [ - "node >=0.6.0" - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/assert-plus": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf": { - "version": "1.0.2", - "engines": [ - "node >=0.6.0" - ], - "inBundle": true - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema": { - "version": "0.2.3", - "inBundle": true - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror": { - "version": "1.3.6", - "engines": [ - "node >=0.6.0" - ], - "inBundle": true, - "dependencies": { - "extsprintf": "1.0.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk": { - "version": "1.13.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "dashdash": "^1.12.0", - "getpass": "^0.1.1" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - }, - "optionalDependencies": { - "bcrypt-pbkdf": "^1.0.0", - "ecc-jsbn": "~0.1.1", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1": { - "version": "0.2.3", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/assert-plus": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf": { - "version": "1.0.1", - "inBundle": true, - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash": { - "version": "1.14.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn": { - "version": "0.1.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "jsbn": "~0.1.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass": { - "version": "0.1.7", - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn": { - "version": "0.1.1", - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "inBundle": true, - "license": "Unlicense", - "optional": true - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/is-typedarray": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/isstream": { - "version": "0.1.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/json-stringify-safe": { - "version": "5.0.1", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/mime-types": { - "version": "2.1.15", - "inBundle": true, - "license": "MIT", - "dependencies": { - "mime-db": "~1.27.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db": { - "version": "1.27.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/oauth-sign": { - "version": "0.8.2", - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/performance-now": { - "version": "0.2.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/qs": { - "version": "6.4.0", - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/stringstream": { - "version": "0.0.5", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/tough-cookie": { - "version": "2.3.2", - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode": { - "version": "1.4.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/request/node_modules/tunnel-agent": { - "version": "0.6.0", - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/retry": { - "version": "0.10.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/rimraf": { - "version": "2.6.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/npx/node_modules/npm/node_modules/safe-buffer": { - "version": "5.1.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/semver": { - "version": "5.3.0", - "inBundle": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npx/node_modules/npm/node_modules/sha": { - "version": "2.0.1", - "inBundle": true, - "license": "(BSD-2-Clause OR MIT)", - "dependencies": { - "graceful-fs": "^4.1.2", - "readable-stream": "^2.0.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/slide": { - "version": "1.1.6", - "inBundle": true, - "license": "ISC", - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/sorted-object": { - "version": "2.0.1", - "inBundle": true, - "license": "(WTFPL OR MIT)" - }, - "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream": { - "version": "2.1.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "from2": "^1.3.0", - "stream-iterate": "^1.1.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/from2": { - "version": "1.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "~1.1.10" - } - }, - "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream": { - "version": "1.1.14", - "inBundle": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder": { - "version": "0.10.31", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/stream-iterate": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.1.5", - "stream-shift": "^1.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/ssri": { - "version": "4.1.6", - "inBundle": true, - "license": "CC0-1.0", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/strip-ansi": { - "version": "4.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/tar": { - "version": "2.2.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/tar/node_modules/block-stream": { - "version": "0.0.9", - "inBundle": true, - "license": "ISC", - "dependencies": { - "inherits": "~2.0.0" - }, - "engines": { - "node": "0.4 || >=0.5.8" - } - }, - "node_modules/npx/node_modules/npm/node_modules/text-table": { - "version": "0.2.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/uid-number": { - "version": "0.0.6", - "inBundle": true, - "license": "ISC", - "engines": { - "node": "*" - } - }, - "node_modules/npx/node_modules/npm/node_modules/umask": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/unique-filename": { - "version": "1.1.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/unique-filename/node_modules/unique-slug": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/unpipe": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier": { - "version": "2.2.0", - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^1.0.0", - "chalk": "^1.0.0", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^1.1.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^0.1.0", - "widest-line": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^2.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase": { - "version": "4.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size": { - "version": "0.1.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "execa": "^0.4.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa": { - "version": "0.4.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "cross-spawn-async": "^2.1.1", - "is-stream": "^1.1.0", - "npm-run-path": "^1.0.0", - "object-assign": "^4.0.1", - "path-key": "^1.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async": { - "version": "2.2.5", - "inBundle": true, - "license": "MIT", - "dependencies": { - "lru-cache": "^4.0.0", - "which": "^1.2.8" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "path-key": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi": { - "version": "3.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk": { - "version": "1.1.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles": { - "version": "2.2.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp": { - "version": "1.0.5", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi": { - "version": "3.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore": { - "version": "3.1.0", - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "is-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify": { - "version": "2.3.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "crypto-random-string": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/import-lazy": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/is-npm": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version": { - "version": "3.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "package-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json": { - "version": "4.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got": { - "version": "6.7.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class": { - "version": "3.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "capture-stack-trace": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/node_modules/capture-stack-trace": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3": { - "version": "0.1.4", - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out": { - "version": "4.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http": { - "version": "1.0.4", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token": { - "version": "3.3.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc": { - "version": "1.2.1", - "inBundle": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "~0.4.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "index.js" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend": { - "version": "0.4.2", - "inBundle": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.12.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url": { - "version": "3.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "rc": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc": { - "version": "1.2.1", - "inBundle": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "~0.4.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "index.js" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend": { - "version": "0.4.2", - "inBundle": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.12.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/semver-diff": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "semver": "^5.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/update-notifier/node_modules/xdg-basedir": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/uuid": { - "version": "3.1.0", - "inBundle": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-license": { - "version": "3.0.1", - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct": { - "version": "1.0.2", - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-license-ids": "^1.0.2" - } - }, - "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids": { - "version": "1.2.2", - "inBundle": true, - "license": "Unlicense" - }, - "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { - "version": "1.0.4", - "inBundle": true, - "license": "(MIT AND CC-BY-3.0)" - }, - "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-name": { - "version": "3.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/npx/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/which": { - "version": "1.2.14", - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npx/node_modules/npm/node_modules/which/node_modules/isexe": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/worker-farm": { - "version": "1.3.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "errno": ">=0.1.1 <0.2.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/npx/node_modules/npm/node_modules/worker-farm/node_modules/errno": { - "version": "0.1.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "prr": "~0.0.0" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/npx/node_modules/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr": { - "version": "0.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/npm/node_modules/worker-farm/node_modules/xtend": { - "version": "4.0.1", - "inBundle": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/npx/node_modules/npm/node_modules/wrappy": { - "version": "1.0.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/npm/node_modules/write-file-atomic": { - "version": "2.1.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - }, - "node_modules/npx/node_modules/number-is-nan": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/once": { - "version": "1.4.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/npx/node_modules/os-homedir": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/os-locale": { - "version": "3.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npx/node_modules/os-locale/node_modules/cross-spawn": { - "version": "6.0.5", - "inBundle": true, - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/npx/node_modules/os-locale/node_modules/execa": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npx/node_modules/os-locale/node_modules/get-stream": { - "version": "4.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npx/node_modules/os-tmpdir": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/osenv": { - "version": "0.1.5", - "inBundle": true, - "license": "ISC", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/npx/node_modules/p-defer": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/p-finally": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/p-is-promise": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npx/node_modules/p-limit": { - "version": "1.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/p-locate": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/p-try": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/package-json": { - "version": "4.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/path-exists": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/path-is-absolute": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/path-is-inside": { - "version": "1.0.2", - "inBundle": true, - "license": "(WTFPL OR MIT)" - }, - "node_modules/npx/node_modules/path-key": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/pify": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/prepend-http": { - "version": "1.0.4", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/pseudomap": { - "version": "1.0.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/pump": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/npx/node_modules/rc": { - "version": "1.2.8", - "inBundle": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/npx/node_modules/registry-auth-token": { - "version": "3.4.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/npx/node_modules/registry-url": { - "version": "3.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "rc": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/require-directory": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/require-main-filename": { - "version": "1.0.1", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/rimraf": { - "version": "2.7.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/npx/node_modules/safe-buffer": { - "version": "5.2.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/npx/node_modules/semver": { - "version": "5.7.1", - "inBundle": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npx/node_modules/semver-diff": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "semver": "^5.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/set-blocking": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/shebang-command": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/shebang-regex": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/signal-exit": { - "version": "3.0.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/string-width": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/strip-ansi": { - "version": "4.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/strip-eof": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/strip-json-comments": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/supports-color": { - "version": "5.5.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/term-size": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "execa": "^0.7.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/timed-out": { - "version": "4.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/unique-string": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "crypto-random-string": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/unzip-response": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/update-notifier": { - "version": "2.5.0", - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/url-parse-lax": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/validate-npm-package-name": { - "version": "3.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/npx/node_modules/which": { - "version": "1.3.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npx/node_modules/which-module": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/widest-line": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^2.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/wrap-ansi": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "3.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npx/node_modules/wrappy": { - "version": "1.0.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/write-file-atomic": { - "version": "2.4.3", - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/npx/node_modules/xdg-basedir": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npx/node_modules/y18n": { - "version": "4.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/yallist": { - "version": "2.1.2", - "inBundle": true, - "license": "ISC" - }, - "node_modules/npx/node_modules/yargs": { - "version": "11.1.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - } - }, - "node_modules/npx/node_modules/yargs-parser": { - "version": "9.0.2", - "inBundle": true, - "license": "ISC", - "dependencies": { - "camelcase": "^4.1.0" - } - }, - "node_modules/npx/node_modules/yargs/node_modules/y18n": { - "version": "3.2.1", - "inBundle": true, - "license": "ISC" - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", diff --git a/v1.0/backend/package.json b/v1.0/backend/package.json index 5fda6b751..7aaed3f61 100644 --- a/v1.0/backend/package.json +++ b/v1.0/backend/package.json @@ -10,7 +10,7 @@ "prod": "env-cmd ./config/prod.env node src/index.js -e js,pug", "test": "jest --collectCoverage=true", "coverage": "jest --coverage", - "sonar": "npx sonarqube-scanner -Dsonar.host.url=http://localhost:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" + "sonar": "sonar-scanner -Dsonar.host.url=http://localhost:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" }, "jest": { "collectCoverageFrom": [ @@ -56,7 +56,6 @@ "env-cmd": "^8.0.2", "jest": "^29.3.1", "nodemon": "^2.0.6", - "npx": "^10.2.2", "sonarqube-scanner": "^3.0.1" } } From 570f3e206c8f39cbc4bbb5d6c07a6ca19d6c08d0 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 17:55:02 +0530 Subject: [PATCH 15/56] Update package.json --- v1.0/backend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v1.0/backend/package.json b/v1.0/backend/package.json index 7aaed3f61..e8411c314 100644 --- a/v1.0/backend/package.json +++ b/v1.0/backend/package.json @@ -10,7 +10,7 @@ "prod": "env-cmd ./config/prod.env node src/index.js -e js,pug", "test": "jest --collectCoverage=true", "coverage": "jest --coverage", - "sonar": "sonar-scanner -Dsonar.host.url=http://localhost:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" + "sonar": "sonar-scanner -Dsonar.host.url=http://10.0.12.26:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" }, "jest": { "collectCoverageFrom": [ From 7031d8f8e0955093824ef1cdc8e81ba9296ded50 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 18:04:08 +0530 Subject: [PATCH 16/56] Update package.json --- v1.0/backend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v1.0/backend/package.json b/v1.0/backend/package.json index e8411c314..7d4f79a82 100644 --- a/v1.0/backend/package.json +++ b/v1.0/backend/package.json @@ -10,7 +10,7 @@ "prod": "env-cmd ./config/prod.env node src/index.js -e js,pug", "test": "jest --collectCoverage=true", "coverage": "jest --coverage", - "sonar": "sonar-scanner -Dsonar.host.url=http://10.0.12.26:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" + "sonar": "sonar-scanner -Dsonar.host.url=http://13.234.151.67:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" }, "jest": { "collectCoverageFrom": [ From 8e33bdef75ffb9954a4fe113208ca6ffa7f962a1 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 18:16:32 +0530 Subject: [PATCH 17/56] Update package.json --- v1.0/backend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v1.0/backend/package.json b/v1.0/backend/package.json index 7d4f79a82..e8411c314 100644 --- a/v1.0/backend/package.json +++ b/v1.0/backend/package.json @@ -10,7 +10,7 @@ "prod": "env-cmd ./config/prod.env node src/index.js -e js,pug", "test": "jest --collectCoverage=true", "coverage": "jest --coverage", - "sonar": "sonar-scanner -Dsonar.host.url=http://13.234.151.67:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" + "sonar": "sonar-scanner -Dsonar.host.url=http://10.0.12.26:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" }, "jest": { "collectCoverageFrom": [ From 4fc6ddbc28e029e369a4de59cb9adecc0f49abc3 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 18:21:48 +0530 Subject: [PATCH 18/56] Update package.json --- v1.0/backend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v1.0/backend/package.json b/v1.0/backend/package.json index e8411c314..a037397b0 100644 --- a/v1.0/backend/package.json +++ b/v1.0/backend/package.json @@ -10,7 +10,7 @@ "prod": "env-cmd ./config/prod.env node src/index.js -e js,pug", "test": "jest --collectCoverage=true", "coverage": "jest --coverage", - "sonar": "sonar-scanner -Dsonar.host.url=http://10.0.12.26:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" + "sonar": "sonar-scanner -Dsonar.host.url=http://http://13.234.151.67:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" }, "jest": { "collectCoverageFrom": [ From c2c55c41aaffe33d8ca576a59f5d6415d6fd1576 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 16 Aug 2023 18:25:27 +0530 Subject: [PATCH 19/56] Update package.json --- v1.0/backend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v1.0/backend/package.json b/v1.0/backend/package.json index a037397b0..7d4f79a82 100644 --- a/v1.0/backend/package.json +++ b/v1.0/backend/package.json @@ -10,7 +10,7 @@ "prod": "env-cmd ./config/prod.env node src/index.js -e js,pug", "test": "jest --collectCoverage=true", "coverage": "jest --coverage", - "sonar": "sonar-scanner -Dsonar.host.url=http://http://13.234.151.67:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" + "sonar": "sonar-scanner -Dsonar.host.url=http://13.234.151.67:9005 -Dsonar.login=731c70026717e72d9e925fbea049d5ff33165cc5" }, "jest": { "collectCoverageFrom": [ From e8b11fadf074f356661ff06b8673d0580756f4f1 Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Thu, 17 Aug 2023 17:47:55 +0530 Subject: [PATCH 20/56] create composite sharded key for perf improvement --- saral_backend_EKS.yml | 2 +- v1.0/backend/Dockerfile.prod | 2 +- v1.0/backend/src/controller/marksController.js | 7 ++----- v1.0/backend/src/models/marks.js | 8 +++++++- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/saral_backend_EKS.yml b/saral_backend_EKS.yml index 7504d7a4e..6dc77c072 100644 --- a/saral_backend_EKS.yml +++ b/saral_backend_EKS.yml @@ -23,7 +23,7 @@ spec: - name: PORT value: "3005" - name: MONGODB_URL - value: "mongodb://10.0.0.185:27017/saraldata_dev" + value: "mongodb://10.0.31.152:27017,10.0.50.162:27017/prod_saral" - name: JWT_SECRET value: SARALDATA_NODE - name: MONGODB_POOL_SIZE diff --git a/v1.0/backend/Dockerfile.prod b/v1.0/backend/Dockerfile.prod index 101fbe31b..b1218f407 100644 --- a/v1.0/backend/Dockerfile.prod +++ b/v1.0/backend/Dockerfile.prod @@ -4,7 +4,7 @@ LABEL maintainer="dileep.gadiraju@tarento.com" ENV PROFILE=dev ENV PORT=3000 -ENV MONGODB_URL=mongodb://10.0.0.185:27017/saraldata_dev +ENV MONGODB_URL=mongodb://10.0.31.152:27017,10.0.50.162:27017/prod_saral ENV JWT_SECRET=SARALDATA_NODE WORKDIR /app COPY package*.json ./ diff --git a/v1.0/backend/src/controller/marksController.js b/v1.0/backend/src/controller/marksController.js index a30e6fa59..d2fe2d9dc 100644 --- a/v1.0/backend/src/controller/marksController.js +++ b/v1.0/backend/src/controller/marksController.js @@ -47,12 +47,9 @@ exports.saveMarks = async (req, res, next) => { const marksData = { updateOne: { filter: { - schoolId: mark.schoolId, - studentId: mark.studentId, - subject: mark.subject, - examDate: mark.examDate + shardedKey: `${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}` }, - update: { $set: { studentIdTrainingData: mark.studentIdTrainingData, studentId: mark.studentId, predictionConfidence: mark.predictionConfidence, schoolId: mark.schoolId, examDate: mark.examDate, predictedStudentId: mark.predictedStudentId, studentAvailability: mark.studentAvailability, marksInfo: mark.marksInfo, maxMarksTrainingData: mark.maxMarksTrainingData, maxMarksPredicted: mark.maxMarksPredicted, securedMarks: mark.securedMarks, totalMarks: mark.totalMarks, obtainedMarksTrainingData: mark.obtainedMarksTrainingData, obtainedMarksPredicted: mark.obtainedMarksPredicted, set: mark.set, subject: mark.subject, classId: mark.classId, section: mark.section, examId: mark.examId, userId: mark.userId, roiId: mark.roiId} }, + update: { $set: { studentIdTrainingData: mark.studentIdTrainingData, studentId: mark.studentId, predictionConfidence: mark.predictionConfidence, schoolId: mark.schoolId, examDate: mark.examDate, predictedStudentId: mark.predictedStudentId, studentAvailability: mark.studentAvailability, marksInfo: mark.marksInfo, maxMarksTrainingData: mark.maxMarksTrainingData, maxMarksPredicted: mark.maxMarksPredicted, securedMarks: mark.securedMarks, totalMarks: mark.totalMarks, obtainedMarksTrainingData: mark.obtainedMarksTrainingData, obtainedMarksPredicted: mark.obtainedMarksPredicted, set: mark.set, subject: mark.subject, classId: mark.classId, section: mark.section, examId: mark.examId, userId: mark.userId, roiId: mark.roiId, shardedKey:`${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}`} }, upsert: true } } diff --git a/v1.0/backend/src/models/marks.js b/v1.0/backend/src/models/marks.js index 39aaef26e..7dbdd60d6 100644 --- a/v1.0/backend/src/models/marks.js +++ b/v1.0/backend/src/models/marks.js @@ -114,6 +114,11 @@ const marksSchema = new mongoose.Schema({ type: String, required: true, trim: true, + }, + shardedKey: { + type: String, + required: true, + trim: true, } }) @@ -126,7 +131,8 @@ marksSchema.statics.StudentsMark = async (studentIds) => { return marks } -marksSchema.index({schoolId: -1, classId: -1, section: -1, examDate: -1, subject: -1, studentId: -1}) +//marksSchema.index({schoolId: -1, classId: -1, section: -1, examDate: -1, subject: -1}) +//marksSchema.index({shardedKey: 1}) // const Marks = mongoose.model('Mark', marksSchema) module.exports = marksSchema \ No newline at end of file From e3e600a6e6f4a03da8b260ee73405be4e4823e6b Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Fri, 18 Aug 2023 10:24:50 +0530 Subject: [PATCH 21/56] try insert only for saveMarks --- .../backend/src/controller/marksController.js | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/v1.0/backend/src/controller/marksController.js b/v1.0/backend/src/controller/marksController.js index d2fe2d9dc..9f307da46 100644 --- a/v1.0/backend/src/controller/marksController.js +++ b/v1.0/backend/src/controller/marksController.js @@ -44,22 +44,22 @@ exports.saveMarks = async (req, res, next) => { userId }) - const marksData = { - updateOne: { - filter: { - shardedKey: `${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}` - }, - update: { $set: { studentIdTrainingData: mark.studentIdTrainingData, studentId: mark.studentId, predictionConfidence: mark.predictionConfidence, schoolId: mark.schoolId, examDate: mark.examDate, predictedStudentId: mark.predictedStudentId, studentAvailability: mark.studentAvailability, marksInfo: mark.marksInfo, maxMarksTrainingData: mark.maxMarksTrainingData, maxMarksPredicted: mark.maxMarksPredicted, securedMarks: mark.securedMarks, totalMarks: mark.totalMarks, obtainedMarksTrainingData: mark.obtainedMarksTrainingData, obtainedMarksPredicted: mark.obtainedMarksPredicted, set: mark.set, subject: mark.subject, classId: mark.classId, section: mark.section, examId: mark.examId, userId: mark.userId, roiId: mark.roiId, shardedKey:`${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}`} }, - upsert: true - } - } - marks.push(marksData) + // const marksData = { + // updateOne: { + // filter: { + // shardedKey: `${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}` + // }, + // update: { $set: { studentIdTrainingData: mark.studentIdTrainingData, studentId: mark.studentId, predictionConfidence: mark.predictionConfidence, schoolId: mark.schoolId, examDate: mark.examDate, predictedStudentId: mark.predictedStudentId, studentAvailability: mark.studentAvailability, marksInfo: mark.marksInfo, maxMarksTrainingData: mark.maxMarksTrainingData, maxMarksPredicted: mark.maxMarksPredicted, securedMarks: mark.securedMarks, totalMarks: mark.totalMarks, obtainedMarksTrainingData: mark.obtainedMarksTrainingData, obtainedMarksPredicted: mark.obtainedMarksPredicted, set: mark.set, subject: mark.subject, classId: mark.classId, section: mark.section, examId: mark.examId, userId: mark.userId, roiId: mark.roiId, shardedKey:`${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}`} }, + // upsert: true + // } + // } + marks.push({insertOne: { + document: { studentIdTrainingData: mark.studentIdTrainingData, studentId: mark.studentId, predictionConfidence: mark.predictionConfidence, schoolId: mark.schoolId, examDate: mark.examDate, predictedStudentId: mark.predictedStudentId, studentAvailability: mark.studentAvailability, marksInfo: mark.marksInfo, maxMarksTrainingData: mark.maxMarksTrainingData, maxMarksPredicted: mark.maxMarksPredicted, securedMarks: mark.securedMarks, totalMarks: mark.totalMarks, obtainedMarksTrainingData: mark.obtainedMarksTrainingData, obtainedMarksPredicted: mark.obtainedMarksPredicted, set: mark.set, subject: mark.subject, classId: mark.classId, section: mark.section, examId: mark.examId, userId: mark.userId, roiId: mark.roiId, shardedKey:`${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}`}}}) }); await Helper.lockScreenValidator(connection,req.school) - - await Marks.bulkWrite(marks); + await Marks.bulkWrite(marks, { ordered: false }); const endTime = new Date(); const executionTime = endTime - startTime; logger.info(`Execution time for Save Marks BulkWrite : ${executionTime}ms`); From 1d5909d33b5af98e16a6d9512e6c87905819eb9a Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Fri, 18 Aug 2023 12:35:42 +0530 Subject: [PATCH 22/56] add clustering to improve perf --- .../backend/src/controller/marksController.js | 21 +++++++++---------- v1.0/backend/src/index.js | 16 ++++++++++++++ 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/v1.0/backend/src/controller/marksController.js b/v1.0/backend/src/controller/marksController.js index 9f307da46..a69584641 100644 --- a/v1.0/backend/src/controller/marksController.js +++ b/v1.0/backend/src/controller/marksController.js @@ -44,17 +44,16 @@ exports.saveMarks = async (req, res, next) => { userId }) - // const marksData = { - // updateOne: { - // filter: { - // shardedKey: `${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}` - // }, - // update: { $set: { studentIdTrainingData: mark.studentIdTrainingData, studentId: mark.studentId, predictionConfidence: mark.predictionConfidence, schoolId: mark.schoolId, examDate: mark.examDate, predictedStudentId: mark.predictedStudentId, studentAvailability: mark.studentAvailability, marksInfo: mark.marksInfo, maxMarksTrainingData: mark.maxMarksTrainingData, maxMarksPredicted: mark.maxMarksPredicted, securedMarks: mark.securedMarks, totalMarks: mark.totalMarks, obtainedMarksTrainingData: mark.obtainedMarksTrainingData, obtainedMarksPredicted: mark.obtainedMarksPredicted, set: mark.set, subject: mark.subject, classId: mark.classId, section: mark.section, examId: mark.examId, userId: mark.userId, roiId: mark.roiId, shardedKey:`${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}`} }, - // upsert: true - // } - // } - marks.push({insertOne: { - document: { studentIdTrainingData: mark.studentIdTrainingData, studentId: mark.studentId, predictionConfidence: mark.predictionConfidence, schoolId: mark.schoolId, examDate: mark.examDate, predictedStudentId: mark.predictedStudentId, studentAvailability: mark.studentAvailability, marksInfo: mark.marksInfo, maxMarksTrainingData: mark.maxMarksTrainingData, maxMarksPredicted: mark.maxMarksPredicted, securedMarks: mark.securedMarks, totalMarks: mark.totalMarks, obtainedMarksTrainingData: mark.obtainedMarksTrainingData, obtainedMarksPredicted: mark.obtainedMarksPredicted, set: mark.set, subject: mark.subject, classId: mark.classId, section: mark.section, examId: mark.examId, userId: mark.userId, roiId: mark.roiId, shardedKey:`${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}`}}}) + const marksData = { + updateOne: { + filter: { + shardedKey: `${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}` + }, + update: { $set: { studentIdTrainingData: mark.studentIdTrainingData, studentId: mark.studentId, predictionConfidence: mark.predictionConfidence, schoolId: mark.schoolId, examDate: mark.examDate, predictedStudentId: mark.predictedStudentId, studentAvailability: mark.studentAvailability, marksInfo: mark.marksInfo, maxMarksTrainingData: mark.maxMarksTrainingData, maxMarksPredicted: mark.maxMarksPredicted, securedMarks: mark.securedMarks, totalMarks: mark.totalMarks, obtainedMarksTrainingData: mark.obtainedMarksTrainingData, obtainedMarksPredicted: mark.obtainedMarksPredicted, set: mark.set, subject: mark.subject, classId: mark.classId, section: mark.section, examId: mark.examId, userId: mark.userId, roiId: mark.roiId, shardedKey:`${mark.schoolId}_${mark.studentId}_${mark.subject}_${mark.examDate}`} }, + upsert: true + } + } + marks.push(marksData) }); await Helper.lockScreenValidator(connection,req.school) diff --git a/v1.0/backend/src/index.js b/v1.0/backend/src/index.js index 97242b23d..de358bf93 100644 --- a/v1.0/backend/src/index.js +++ b/v1.0/backend/src/index.js @@ -1,7 +1,23 @@ const app = require('./app') const logger = require('./logging/logger') const port = process.env.PORT +const cluster = require('cluster'); +const numCPUs = require('os').cpus().length; + +if (cluster.isMaster) { + console.log(`Master ${process.pid} is running`, numCPUs); + + // Fork workers for each CPU core + for (let i = 0; i < numCPUs; i++) { + cluster.fork(); + } + + cluster.on('exit', (worker, code, signal) => { + console.log(`Worker ${worker.process.pid} died`); + }); +} else { app.listen(port, () => { logger.info('Server is up on port '+port); }) +} From 2913be12e7d39becd1e45e310ae84b93d0b4c637 Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Fri, 18 Aug 2023 13:15:36 +0530 Subject: [PATCH 23/56] revert clustering and add concurrency log --- v1.0/backend/src/controller/marksController.js | 7 ++++++- v1.0/backend/src/index.js | 16 ---------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/v1.0/backend/src/controller/marksController.js b/v1.0/backend/src/controller/marksController.js index a69584641..9be426bc3 100644 --- a/v1.0/backend/src/controller/marksController.js +++ b/v1.0/backend/src/controller/marksController.js @@ -4,8 +4,11 @@ const Helper = require('../middleware/helper') const { stringObject } = require('../utils/commonUtils'); const logger = require('../logging/logger') const httperror = require("http-errors"); +let concurrentCount = 0; exports.saveMarks = async (req, res, next) => { + concurrentCount++; + console.log('Concurrent Save Marks Request', concurrentCount); const marks = [] const startTime = new Date(); if (req.header('X-App-Version')) { @@ -58,7 +61,7 @@ exports.saveMarks = async (req, res, next) => { await Helper.lockScreenValidator(connection,req.school) - await Marks.bulkWrite(marks, { ordered: false }); + await Marks.bulkWrite(marks); const endTime = new Date(); const executionTime = endTime - startTime; logger.info(`Execution time for Save Marks BulkWrite : ${executionTime}ms`); @@ -72,6 +75,8 @@ exports.saveMarks = async (req, res, next) => { res.status(400).json({ error: e.message }) } } finally { + concurrentCount--; + console.log('After Concurrent Save Marks Request', concurrentCount); next() } } diff --git a/v1.0/backend/src/index.js b/v1.0/backend/src/index.js index de358bf93..97242b23d 100644 --- a/v1.0/backend/src/index.js +++ b/v1.0/backend/src/index.js @@ -1,23 +1,7 @@ const app = require('./app') const logger = require('./logging/logger') const port = process.env.PORT -const cluster = require('cluster'); -const numCPUs = require('os').cpus().length; - -if (cluster.isMaster) { - console.log(`Master ${process.pid} is running`, numCPUs); - - // Fork workers for each CPU core - for (let i = 0; i < numCPUs; i++) { - cluster.fork(); - } - - cluster.on('exit', (worker, code, signal) => { - console.log(`Worker ${worker.process.pid} died`); - }); -} else { app.listen(port, () => { logger.info('Server is up on port '+port); }) -} From cf1ead32a2823364c3a36c8a4e8715597ba2278c Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Fri, 18 Aug 2023 15:20:16 +0530 Subject: [PATCH 24/56] Update saral_backend_EKS.yml --- saral_backend_EKS.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/saral_backend_EKS.yml b/saral_backend_EKS.yml index 6dc77c072..0f5f84d01 100644 --- a/saral_backend_EKS.yml +++ b/saral_backend_EKS.yml @@ -3,7 +3,7 @@ kind: Deployment metadata: name: saral-backend spec: - replicas: 10 + replicas: 5 selector: matchLabels: app: saral-backend @@ -35,8 +35,8 @@ spec: cpu: 2000m memory: 2Gi requests: - cpu: 1000m - memory: 1Gi + cpu: 2000m + memory: 2Gi volumeMounts: - name: mongodb-data From 3d6267e3a22777572f8e15eb8e581d5033192002 Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Mon, 21 Aug 2023 10:24:54 +0530 Subject: [PATCH 25/56] try using mongodb native client instead of mongoose for perf --- v1.0/backend/Dockerfile | 2 +- v1.0/backend/Dockerfile.prod | 2 +- .../backend/src/controller/marksController.js | 14 +++++----- v1.0/backend/src/db/mongoose.js | 27 +++++++++++++++++-- 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/v1.0/backend/Dockerfile b/v1.0/backend/Dockerfile index 23df824c6..699c492cc 100644 --- a/v1.0/backend/Dockerfile +++ b/v1.0/backend/Dockerfile @@ -10,7 +10,7 @@ WORKDIR /app COPY package*.json ./ RUN npm install COPY . . -RUN npm run test +#RUN npm run test RUN echo JWT_SECRET=$JWT_SECRET diff --git a/v1.0/backend/Dockerfile.prod b/v1.0/backend/Dockerfile.prod index b1218f407..bab920d5c 100644 --- a/v1.0/backend/Dockerfile.prod +++ b/v1.0/backend/Dockerfile.prod @@ -10,7 +10,7 @@ WORKDIR /app COPY package*.json ./ RUN npm install COPY . . -RUN npm run test +#RUN npm run test RUN echo JWT_SECRET=$JWT_SECRET diff --git a/v1.0/backend/src/controller/marksController.js b/v1.0/backend/src/controller/marksController.js index 9be426bc3..4194dccf7 100644 --- a/v1.0/backend/src/controller/marksController.js +++ b/v1.0/backend/src/controller/marksController.js @@ -1,9 +1,10 @@ -const marksSchema = require('../models/marks') +//const Marks = require('../models/marks') const usersSchema = require('../models/users') const Helper = require('../middleware/helper') const { stringObject } = require('../utils/commonUtils'); const logger = require('../logging/logger') const httperror = require("http-errors"); +const poolManager = require("../db/mongoose"); let concurrentCount = 0; exports.saveMarks = async (req, res, next) => { @@ -11,13 +12,14 @@ exports.saveMarks = async (req, res, next) => { console.log('Concurrent Save Marks Request', concurrentCount); const marks = [] const startTime = new Date(); + let nativeClient; if (req.header('X-App-Version')) { // console.log("APP VERSION", req.get('X-App-Version')) } try { let connection = req.dbConnection - + nativeClient = await poolManager.getNativeClient(); if (Object.keys(req.body).length === 0) throw new httperror(400, "Validation error.") const input_keys = Object.keys(req.body) if (!["subject", "classId", "userId", "examId"].every((i) => input_keys.includes(i))) @@ -33,9 +35,8 @@ exports.saveMarks = async (req, res, next) => { const createdOn = new Date().getTime() const roiId = req.body.roiId - const Marks = connection.model('Marks', marksSchema); req.body.studentsMarkInfo.forEach(studentsData => { - const mark = new Marks({ + const mark = { ...studentsData, schoolId, examDate, @@ -45,7 +46,7 @@ exports.saveMarks = async (req, res, next) => { roiId, examId, userId - }) + } const marksData = { updateOne: { @@ -61,7 +62,7 @@ exports.saveMarks = async (req, res, next) => { await Helper.lockScreenValidator(connection,req.school) - await Marks.bulkWrite(marks); + await nativeClient.collection('marks').bulkWrite(marks); const endTime = new Date(); const executionTime = endTime - startTime; logger.info(`Execution time for Save Marks BulkWrite : ${executionTime}ms`); @@ -77,6 +78,7 @@ exports.saveMarks = async (req, res, next) => { } finally { concurrentCount--; console.log('After Concurrent Save Marks Request', concurrentCount); + poolManager.releaseNativeClient(nativeClient); next() } } diff --git a/v1.0/backend/src/db/mongoose.js b/v1.0/backend/src/db/mongoose.js index edfd1710c..86275c11f 100644 --- a/v1.0/backend/src/db/mongoose.js +++ b/v1.0/backend/src/db/mongoose.js @@ -1,9 +1,10 @@ const mongoose = require('mongoose'); const { createPool } = require('generic-pool'); +const { MongoClient } = require('mongodb'); // url/databasename const connectionURL = process.env.MONGODB_URL -const maxPoolSize = process.env.MONGODB_POOL_SIZE || 50 +const maxPoolSize = process.env.MONGODB_POOL_SIZE || 20 const minPoolSize = process.env.MIN_MONGODB_POOL_SIZE || 30 const options = { @@ -19,7 +20,19 @@ const poolFactory = { destroy: (connection) => connection.close(), }; +const nativePoolFactory = { + create: async () => { + const client = new MongoClient(connectionURL, options); + await client.connect(); + return client.db(); + }, + destroy: dbInstance => { + dbInstance.client.close(); + }, +}; + const pool = createPool(poolFactory, { max: maxPoolSize }); +const nativePool = createPool(nativePoolFactory, { max: 50 }); const getClientPool = (req, res, next) => { pool.acquire() @@ -39,5 +52,15 @@ const releaseClientPool = (req, res, next) => { next() }; +const getNativeClient = () => { + return nativePool.acquire(); +}; + +const releaseNativeClient = (connection) => { + if(connection){ + nativePool.release(connection); + } +}; + -module.exports = { getClientPool , releaseClientPool, pool }; +module.exports = { getClientPool , releaseClientPool, pool, getNativeClient, releaseNativeClient }; From ba04ea57e12464f35efe5a882be1ae8040c47e0f Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Mon, 21 Aug 2023 11:26:31 +0530 Subject: [PATCH 26/56] Update saral_backend_EKS.yml --- saral_backend_EKS.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/saral_backend_EKS.yml b/saral_backend_EKS.yml index 0f5f84d01..6dc77c072 100644 --- a/saral_backend_EKS.yml +++ b/saral_backend_EKS.yml @@ -3,7 +3,7 @@ kind: Deployment metadata: name: saral-backend spec: - replicas: 5 + replicas: 10 selector: matchLabels: app: saral-backend @@ -35,8 +35,8 @@ spec: cpu: 2000m memory: 2Gi requests: - cpu: 2000m - memory: 2Gi + cpu: 1000m + memory: 1Gi volumeMounts: - name: mongodb-data From c18ccbb6247c019e455e219056adcff0119d6f6e Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Mon, 21 Aug 2023 16:55:59 +0530 Subject: [PATCH 27/56] Update mongoose.js --- v1.0/backend/src/db/mongoose.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v1.0/backend/src/db/mongoose.js b/v1.0/backend/src/db/mongoose.js index 86275c11f..c85d22ff6 100644 --- a/v1.0/backend/src/db/mongoose.js +++ b/v1.0/backend/src/db/mongoose.js @@ -4,7 +4,7 @@ const { MongoClient } = require('mongodb'); // url/databasename const connectionURL = process.env.MONGODB_URL -const maxPoolSize = process.env.MONGODB_POOL_SIZE || 20 +const maxPoolSize = process.env.MONGODB_POOL_SIZE || 50 const minPoolSize = process.env.MIN_MONGODB_POOL_SIZE || 30 const options = { @@ -32,7 +32,7 @@ const nativePoolFactory = { }; const pool = createPool(poolFactory, { max: maxPoolSize }); -const nativePool = createPool(nativePoolFactory, { max: 50 }); +const nativePool = createPool(nativePoolFactory, { max: 100 }); const getClientPool = (req, res, next) => { pool.acquire() From 439a11bad516fe683aa7deae0d42b443f321c43b Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Mon, 21 Aug 2023 17:25:28 +0530 Subject: [PATCH 28/56] Update saral_backend_EKS.yml --- saral_backend_EKS.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/saral_backend_EKS.yml b/saral_backend_EKS.yml index 6dc77c072..3f8b9e640 100644 --- a/saral_backend_EKS.yml +++ b/saral_backend_EKS.yml @@ -3,7 +3,7 @@ kind: Deployment metadata: name: saral-backend spec: - replicas: 10 + replicas: 8 selector: matchLabels: app: saral-backend From e190f969f7c6f630ff3e02d698f05686821ec851 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Mon, 21 Aug 2023 17:46:46 +0530 Subject: [PATCH 29/56] Update saral_backend_EKS.yml --- saral_backend_EKS.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/saral_backend_EKS.yml b/saral_backend_EKS.yml index 3f8b9e640..6dc77c072 100644 --- a/saral_backend_EKS.yml +++ b/saral_backend_EKS.yml @@ -3,7 +3,7 @@ kind: Deployment metadata: name: saral-backend spec: - replicas: 8 + replicas: 10 selector: matchLabels: app: saral-backend From c6ac891fd9c4ba245f866b297465703e008183e6 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Mon, 21 Aug 2023 17:47:51 +0530 Subject: [PATCH 30/56] Update mongoose.js --- v1.0/backend/src/db/mongoose.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v1.0/backend/src/db/mongoose.js b/v1.0/backend/src/db/mongoose.js index c85d22ff6..42c47685e 100644 --- a/v1.0/backend/src/db/mongoose.js +++ b/v1.0/backend/src/db/mongoose.js @@ -4,7 +4,7 @@ const { MongoClient } = require('mongodb'); // url/databasename const connectionURL = process.env.MONGODB_URL -const maxPoolSize = process.env.MONGODB_POOL_SIZE || 50 +const maxPoolSize = process.env.MONGODB_POOL_SIZE || 100 const minPoolSize = process.env.MIN_MONGODB_POOL_SIZE || 30 const options = { From ef6a4596408049af704b0352aa33b8332fda580a Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Mon, 21 Aug 2023 18:04:07 +0530 Subject: [PATCH 31/56] Update mongoose.js --- v1.0/backend/src/db/mongoose.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v1.0/backend/src/db/mongoose.js b/v1.0/backend/src/db/mongoose.js index 42c47685e..86275c11f 100644 --- a/v1.0/backend/src/db/mongoose.js +++ b/v1.0/backend/src/db/mongoose.js @@ -4,7 +4,7 @@ const { MongoClient } = require('mongodb'); // url/databasename const connectionURL = process.env.MONGODB_URL -const maxPoolSize = process.env.MONGODB_POOL_SIZE || 100 +const maxPoolSize = process.env.MONGODB_POOL_SIZE || 20 const minPoolSize = process.env.MIN_MONGODB_POOL_SIZE || 30 const options = { @@ -32,7 +32,7 @@ const nativePoolFactory = { }; const pool = createPool(poolFactory, { max: maxPoolSize }); -const nativePool = createPool(nativePoolFactory, { max: 100 }); +const nativePool = createPool(nativePoolFactory, { max: 50 }); const getClientPool = (req, res, next) => { pool.acquire() From 90beb24563c7c2b86eb79658962afe335004489e Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Tue, 22 Aug 2023 18:58:46 +0530 Subject: [PATCH 32/56] add custom function to validate and modify marks insert payload based on schema --- .../backend/src/controller/marksController.js | 6 +- v1.0/backend/src/middleware/helper.js | 61 +++++++++++++++++++ v1.0/backend/src/models/marks.js | 7 ++- 3 files changed, 68 insertions(+), 6 deletions(-) diff --git a/v1.0/backend/src/controller/marksController.js b/v1.0/backend/src/controller/marksController.js index 4194dccf7..b2241c53b 100644 --- a/v1.0/backend/src/controller/marksController.js +++ b/v1.0/backend/src/controller/marksController.js @@ -1,4 +1,4 @@ -//const Marks = require('../models/marks') +const { marksSchema, rawSchemaJson } = require('../models/marks') const usersSchema = require('../models/users') const Helper = require('../middleware/helper') const { stringObject } = require('../utils/commonUtils'); @@ -36,7 +36,7 @@ exports.saveMarks = async (req, res, next) => { const roiId = req.body.roiId req.body.studentsMarkInfo.forEach(studentsData => { - const mark = { + const mark = Helper.transformAndValidateDataBasedOnModel({ ...studentsData, schoolId, examDate, @@ -46,7 +46,7 @@ exports.saveMarks = async (req, res, next) => { roiId, examId, userId - } + }, rawSchemaJson) const marksData = { updateOne: { diff --git a/v1.0/backend/src/middleware/helper.js b/v1.0/backend/src/middleware/helper.js index 5dd35a5ab..98fc4b331 100644 --- a/v1.0/backend/src/middleware/helper.js +++ b/v1.0/backend/src/middleware/helper.js @@ -79,6 +79,67 @@ const commonHelperFunctions = { } catch (error) { throw error } + }, + + //custom function to validate and modify PUT/POST payload against schema model + transformAndValidateDataBasedOnModel: function (objectRef, schemaRef) { + let fobj = {} + + function transformData(key, schemaobj, val) { + let modval = null; + if(!val && val !== 0 && !schemaobj.required) { + if(schemaobj.default) { + modval = schemaobj.default + } else { + if(schemaobj.type == Array) { + modval = [] + } + } + } else if(val || val == 0) { + if(schemaobj.type == String) { + modval = val.toString().trim() + } + if(schemaobj.uppercase) { + modval = val.toUpperCase() + } else { + modval = val + } + } + + return modval; + } + + function iterateOverObject(obj, i=null, path=null, object = objectRef) { + if(typeof obj == 'object') { + Object.keys(obj).forEach(key => { + if(!Array.isArray(obj[key])) { + + let schemaobj = path ? schemaRef[path][0][key] : schemaRef[key] + if(schemaobj) { + if(path) { + fobj[path] = fobj[path] || []; + fobj[path][i] = fobj[path][i] || {}; + fobj[path][i][key] = transformData(key, schemaobj, object[key]); + } + else { + fobj[key] = transformData(key, schemaobj, object[key]); + } + } + } else if(Array.isArray(obj[key])) { + if(object[key] !== null && object[key] !== undefined) { + object[key].forEach((sobj, i) => { + iterateOverObject(schemaRef[key][0], i, key, sobj) + }) + } + } + }) + } else { + fobj[path] = transformData(path, schemaRef[path], obj[path]); + } + } + + iterateOverObject(schemaRef) + return fobj; } } diff --git a/v1.0/backend/src/models/marks.js b/v1.0/backend/src/models/marks.js index 7dbdd60d6..926e053d0 100644 --- a/v1.0/backend/src/models/marks.js +++ b/v1.0/backend/src/models/marks.js @@ -1,7 +1,7 @@ const mongoose = require('mongoose') // const defaultTimeStamp = new Date(2021, 02, 25, 10, 00, 00, 0).getTime() -const marksSchema = new mongoose.Schema({ +const rawSchemaJson = { schoolId: { type: String, required: true, @@ -120,7 +120,8 @@ const marksSchema = new mongoose.Schema({ required: true, trim: true, } -}) +} +const marksSchema = new mongoose.Schema(rawSchemaJson) marksSchema.statics.StudentsMark = async (studentIds) => { let marks = await Mark @@ -135,4 +136,4 @@ marksSchema.statics.StudentsMark = async (studentIds) => { //marksSchema.index({shardedKey: 1}) // const Marks = mongoose.model('Mark', marksSchema) -module.exports = marksSchema \ No newline at end of file +module.exports = { marksSchema, rawSchemaJson } \ No newline at end of file From a7874fc2f00646a37ea87eeeb99527f57382f1eb Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Wed, 23 Aug 2023 23:50:10 +0530 Subject: [PATCH 33/56] added unit testcases for custom validation function --- v1.0/backend/Dockerfile | 2 +- v1.0/backend/Dockerfile.prod | 2 +- v1.0/backend/sonar-project.properties | 3 +- .../backend/src/controller/marksController.js | 5 -- v1.0/backend/src/middleware/helper.js | 52 +++++++++---------- v1.0/backend/src/models/marks.js | 1 - v1.0/backend/src/sonar-project.properties | 3 +- v1.0/backend/src/tests/getSavedScan.test.js | 2 +- v1.0/backend/src/tests/saveMarks.test.js | 22 ++++++-- ...ansformAndValidateDataBasedOnModel.test.js | 52 +++++++++++++++++++ 10 files changed, 103 insertions(+), 41 deletions(-) create mode 100644 v1.0/backend/src/tests/transformAndValidateDataBasedOnModel.test.js diff --git a/v1.0/backend/Dockerfile b/v1.0/backend/Dockerfile index 699c492cc..23df824c6 100644 --- a/v1.0/backend/Dockerfile +++ b/v1.0/backend/Dockerfile @@ -10,7 +10,7 @@ WORKDIR /app COPY package*.json ./ RUN npm install COPY . . -#RUN npm run test +RUN npm run test RUN echo JWT_SECRET=$JWT_SECRET diff --git a/v1.0/backend/Dockerfile.prod b/v1.0/backend/Dockerfile.prod index bab920d5c..b1218f407 100644 --- a/v1.0/backend/Dockerfile.prod +++ b/v1.0/backend/Dockerfile.prod @@ -10,7 +10,7 @@ WORKDIR /app COPY package*.json ./ RUN npm install COPY . . -#RUN npm run test +RUN npm run test RUN echo JWT_SECRET=$JWT_SECRET diff --git a/v1.0/backend/sonar-project.properties b/v1.0/backend/sonar-project.properties index e5cb346d4..80b38b060 100644 --- a/v1.0/backend/sonar-project.properties +++ b/v1.0/backend/sonar-project.properties @@ -2,5 +2,6 @@ sonar.projectKey=saral sonar.projectName=saral sonar.sourceEncoding=UTF-8 sonar.sources=src -sonar.exclusions=**/node_modules/**,**/*.spec.t +sonar.exclusions=**/node_modules/**,**/*.spec.t, **/*.test.js, output/coverage/** +sonar.javascript.lcov.reportPaths=output/coverage/lcov.info diff --git a/v1.0/backend/src/controller/marksController.js b/v1.0/backend/src/controller/marksController.js index b2241c53b..c5dc8474f 100644 --- a/v1.0/backend/src/controller/marksController.js +++ b/v1.0/backend/src/controller/marksController.js @@ -5,11 +5,8 @@ const { stringObject } = require('../utils/commonUtils'); const logger = require('../logging/logger') const httperror = require("http-errors"); const poolManager = require("../db/mongoose"); -let concurrentCount = 0; exports.saveMarks = async (req, res, next) => { - concurrentCount++; - console.log('Concurrent Save Marks Request', concurrentCount); const marks = [] const startTime = new Date(); let nativeClient; @@ -76,8 +73,6 @@ exports.saveMarks = async (req, res, next) => { res.status(400).json({ error: e.message }) } } finally { - concurrentCount--; - console.log('After Concurrent Save Marks Request', concurrentCount); poolManager.releaseNativeClient(nativeClient); next() } diff --git a/v1.0/backend/src/middleware/helper.js b/v1.0/backend/src/middleware/helper.js index 98fc4b331..6a888b4c0 100644 --- a/v1.0/backend/src/middleware/helper.js +++ b/v1.0/backend/src/middleware/helper.js @@ -85,56 +85,54 @@ const commonHelperFunctions = { transformAndValidateDataBasedOnModel: function (objectRef, schemaRef) { let fobj = {} - function transformData(key, schemaobj, val) { + function transformData(key, schemaobj, val, objRef, fObjRef) { + if(!objRef.hasOwnProperty(key) && !schemaobj.hasOwnProperty('default') && schemaobj.type == String) { + return; + } let modval = null; - if(!val && val !== 0 && !schemaobj.required) { - if(schemaobj.default) { + if((val == null || val == undefined) && !schemaobj.required) { + if(schemaobj.hasOwnProperty('default')) { modval = schemaobj.default - } else { - if(schemaobj.type == Array) { - modval = [] - } + } else if(schemaobj.type == Array) { + modval = [] } - } else if(val || val == 0) { + } else if(val || val == 0 || val == '') { if(schemaobj.type == String) { modval = val.toString().trim() - } - if(schemaobj.uppercase) { - modval = val.toUpperCase() + if(schemaobj.uppercase) { + modval = val.toUpperCase() + } } else { modval = val } } - return modval; + fObjRef[key] = modval; } function iterateOverObject(obj, i=null, path=null, object = objectRef) { if(typeof obj == 'object') { Object.keys(obj).forEach(key => { if(!Array.isArray(obj[key])) { - - let schemaobj = path ? schemaRef[path][0][key] : schemaRef[key] - if(schemaobj) { - if(path) { - fobj[path] = fobj[path] || []; - fobj[path][i] = fobj[path][i] || {}; - fobj[path][i][key] = transformData(key, schemaobj, object[key]); - } - else { - fobj[key] = transformData(key, schemaobj, object[key]); - } - } + if(path) { + fobj[path] = fobj[path] || []; + fobj[path][i] = fobj[path][i] || {}; + transformData(key, schemaRef[path][0][key], object[key], object, fobj[path][i]); + } + else if(schemaRef[key]){ + transformData(key, schemaRef[key], object[key], object, fobj); + } } else if(Array.isArray(obj[key])) { - if(object[key] !== null && object[key] !== undefined) { + if(object[key].length == 0 || !object[key]) { + fobj[key] = [] + } object[key].forEach((sobj, i) => { iterateOverObject(schemaRef[key][0], i, key, sobj) }) } - } }) } else { - fobj[path] = transformData(path, schemaRef[path], obj[path]); + transformData(path, schemaRef[path], object[path], object, fobj); } } diff --git a/v1.0/backend/src/models/marks.js b/v1.0/backend/src/models/marks.js index 926e053d0..e198eecd1 100644 --- a/v1.0/backend/src/models/marks.js +++ b/v1.0/backend/src/models/marks.js @@ -56,7 +56,6 @@ const rawSchemaJson = { }, marksInfo: [ { - _id: false, questionId: { type: String, required: true }, predictedMarks: {type: String,required: false}, predictionConfidence: {type: Array,required: false}, diff --git a/v1.0/backend/src/sonar-project.properties b/v1.0/backend/src/sonar-project.properties index bd49bec7f..c896387f3 100644 --- a/v1.0/backend/src/sonar-project.properties +++ b/v1.0/backend/src/sonar-project.properties @@ -2,5 +2,6 @@ sonar.projectKey=saral sonar.projectName=saral sonar.sourceEncoding=UTF-8 sonar.sources= src -sonar.exclusions=**/node_modules/**,**/*.spec.t +sonar.exclusions=**/node_modules/**,**/*.spec.t, **/*.test.js, output/coverage/** +sonar.javascript.lcov.reportPaths=output/coverage/lcov.info diff --git a/v1.0/backend/src/tests/getSavedScan.test.js b/v1.0/backend/src/tests/getSavedScan.test.js index 029d820d1..1387630d4 100644 --- a/v1.0/backend/src/tests/getSavedScan.test.js +++ b/v1.0/backend/src/tests/getSavedScan.test.js @@ -1,4 +1,4 @@ -const Mark = require("../models/marks") +const Mark = require("../models/marks").marksSchema const User = require("../models/users") const marksController = require('../controller/marksController') const mockSavedData = require("./mock-data/savedScanData.json") diff --git a/v1.0/backend/src/tests/saveMarks.test.js b/v1.0/backend/src/tests/saveMarks.test.js index 9cbf0014b..ed1e5904d 100644 --- a/v1.0/backend/src/tests/saveMarks.test.js +++ b/v1.0/backend/src/tests/saveMarks.test.js @@ -29,6 +29,19 @@ const mockResponse = () => { return res } +jest.mock('../db/mongoose', () => { + return { + getNativeClient: jest.fn().mockResolvedValue({ + collection: () => { + return { + bulkWrite: jest.fn().mockResolvedValue(null) + } + } + }), + releaseNativeClient: jest.fn().mockResolvedValue(null) + } +}) + const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJ1MDAxIiwic2Nob29sSWQiOiJ1MDAxIiwiaWF0IjoxNjcxMTY4OTY3fQ.jwx3xxTTP3dtJwJFUD4QAUsuBT8uemzyTpiKEIRhzKg" describe('save marks data ', () => { @@ -52,11 +65,13 @@ describe('save marks data ', () => { req.body = mockUpdateMarksBody Helper.lockScreenValidator = jest.fn().mockResolvedValue(undefined) + Helper.transformAndValidateDataBasedOnModel = jest.fn().mockResolvedValue(undefined) Marks.bulkWrite = jest.fn().mockResolvedValue(null) Marks.find = jest.fn().mockResolvedValue(mockSavedData) await marksController.saveMarks(req, res, jest.fn()) - expect(res.json({ status: 'success' }).status(200)) + expect(res.status).toHaveBeenCalledWith(200); + expect(res.json).toHaveBeenCalledWith({ message: "Saved Successfully." }); }); it("should not able to save marks data when request body is invalid ", async () => { @@ -78,7 +93,7 @@ describe('save marks data ', () => { await marksController.saveMarks(req, res, jest.fn()) expect(res.status).toHaveBeenCalledWith(400); - expect(res.json({ status: 'fail' })); + expect(res.json).toHaveBeenCalledWith({ error: "Invalid Request" }); }); @@ -103,7 +118,8 @@ describe('save marks data ', () => { }); await marksController.saveMarks(req, res, jest.fn()) - expect(res.json({ status: 'fail' })); + expect(res.status).toHaveBeenCalledWith(500); + expect(res.json).toHaveBeenCalledWith({ error: "State/District/School is locked for scanning" }); }); diff --git a/v1.0/backend/src/tests/transformAndValidateDataBasedOnModel.test.js b/v1.0/backend/src/tests/transformAndValidateDataBasedOnModel.test.js new file mode 100644 index 000000000..a99ff5511 --- /dev/null +++ b/v1.0/backend/src/tests/transformAndValidateDataBasedOnModel.test.js @@ -0,0 +1,52 @@ +const Helper = require('../middleware/helper') +const marksSchema = require('../models/marks').rawSchemaJson; +const studentMaksMockdata = require('./mock-data/savedScanData.json') + +describe('should transform object data based on refrence model schema', () => { + beforeEach(() => { + jest.useFakeTimers() + }) + + it("should provide data as before if data is as per model schema", async () => { + const processedData = Helper.transformAndValidateDataBasedOnModel(studentMaksMockdata, marksSchema); + expect(processedData).toEqual(studentMaksMockdata) + }); + + it("should remove any extra key-value present in data not as per model schema", async () => { + const data = {...studentMaksMockdata} + data['inValidKey'] = 'dummy value' + const processedData = Helper.transformAndValidateDataBasedOnModel(data, marksSchema); + expect(processedData).not.toHaveProperty('inValidKey'); + }); + + it("should remove any extra space for string type value present in data not as per model schema", async () => { + const data = {...studentMaksMockdata} + data['classId'] = '2 ' + const processedData = Helper.transformAndValidateDataBasedOnModel(data, marksSchema); + expect(processedData['classId']).toEqual('2') + }); + + it("should also validate nested schema", async () => { + studentMaksMockdata['marksInfo'] = [ + { + "questionId": "ROLLNUMBER1_Q1", + "obtainedMarks": "1", + "trainingData": [], + "predictedMarks": "1", + "predictionConfidence": [ + "1" + ], + "tags": [] + } + ] + const processedData = Helper.transformAndValidateDataBasedOnModel(studentMaksMockdata, marksSchema); + expect(processedData).toEqual(studentMaksMockdata) + }); + + it("should set default value", async () => { + const data = {...studentMaksMockdata} + delete data.examDate + const processedData = Helper.transformAndValidateDataBasedOnModel(data, marksSchema); + expect(processedData['examDate']).toEqual(null) + }); +}); \ No newline at end of file From f13a88c3f30f0aeccf4675e53b2d37ed50fbd3b4 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Wed, 30 Aug 2023 19:46:56 +0530 Subject: [PATCH 34/56] Changes for saral up release --- v1.0/frontend/SaralApp/android/app/BUCK | 4 +-- .../SaralApp/android/app/build.gradle | 2 +- .../SaralApp/android/app/google-services.json | 29 +++++++++++++++++++ .../SaralApp/android/app/proguard-rules.pro | 2 +- .../android/app/release/output-metadata.json | 18 ++++++++++++ .../java/com/saralapp/ReactNativeFlipper.java | 2 +- .../android/app/src/main/AndroidManifest.xml | 13 +++++---- .../main/java/com/saralapp/MainActivity.java | 2 +- .../java/com/saralapp/MainApplication.java | 4 +-- v1.0/frontend/SaralApp/android/build.gradle | 6 ++-- .../SaralApp/android/gradle.properties | 8 ++--- 11 files changed, 70 insertions(+), 20 deletions(-) create mode 100644 v1.0/frontend/SaralApp/android/app/release/output-metadata.json diff --git a/v1.0/frontend/SaralApp/android/app/BUCK b/v1.0/frontend/SaralApp/android/app/BUCK index 4b1293208..83e830c0d 100644 --- a/v1.0/frontend/SaralApp/android/app/BUCK +++ b/v1.0/frontend/SaralApp/android/app/BUCK @@ -35,12 +35,12 @@ android_library( android_build_config( name = "build_config", - package = "com.saralapp", + package = "com.up_saralapp", ) android_resource( name = "res", - package = "com.saralapp", + package = "com.up_saralapp", res = "src/main/res", ) diff --git a/v1.0/frontend/SaralApp/android/app/build.gradle b/v1.0/frontend/SaralApp/android/app/build.gradle index 1f9330c98..a8a97d4dd 100644 --- a/v1.0/frontend/SaralApp/android/app/build.gradle +++ b/v1.0/frontend/SaralApp/android/app/build.gradle @@ -131,7 +131,7 @@ android { compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { - applicationId "com.saralapp" + applicationId "com.up_saralapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 diff --git a/v1.0/frontend/SaralApp/android/app/google-services.json b/v1.0/frontend/SaralApp/android/app/google-services.json index 3cc96200d..1ad82cbf0 100644 --- a/v1.0/frontend/SaralApp/android/app/google-services.json +++ b/v1.0/frontend/SaralApp/android/app/google-services.json @@ -33,6 +33,35 @@ ] } } + }, + { + "client_info": { + "mobilesdk_app_id": "1:912340222436:android:9364787c68b659d49c47f1", + "android_client_info": { + "package_name": "com.up_saralapp" + } + }, + "oauth_client": [ + { + "client_id": "912340222436-aln8c9bmcl7pnud4um2j021kfoofgmtr.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyClhJNMvrePt8McJn2DOOGUVUBm9MOctgw" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "912340222436-aln8c9bmcl7pnud4um2j021kfoofgmtr.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } } ], "configuration_version": "1" diff --git a/v1.0/frontend/SaralApp/android/app/proguard-rules.pro b/v1.0/frontend/SaralApp/android/app/proguard-rules.pro index de3fdc7dc..a408303fd 100644 --- a/v1.0/frontend/SaralApp/android/app/proguard-rules.pro +++ b/v1.0/frontend/SaralApp/android/app/proguard-rules.pro @@ -9,7 +9,7 @@ # Add any project specific keep options here: --keep class com.saralapp.MainActivity +-keep class com.up_saralapp.MainActivity -keep public class * implements com.bumptech.glide.module.GlideModule diff --git a/v1.0/frontend/SaralApp/android/app/release/output-metadata.json b/v1.0/frontend/SaralApp/android/app/release/output-metadata.json new file mode 100644 index 000000000..bf2053159 --- /dev/null +++ b/v1.0/frontend/SaralApp/android/app/release/output-metadata.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.up_saralapp", + "variantName": "release", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "versionCode": 1, + "versionName": "1.0", + "outputFile": "app-release.apk" + } + ] +} \ No newline at end of file diff --git a/v1.0/frontend/SaralApp/android/app/src/debug/java/com/saralapp/ReactNativeFlipper.java b/v1.0/frontend/SaralApp/android/app/src/debug/java/com/saralapp/ReactNativeFlipper.java index 33fa82904..636bedd6b 100644 --- a/v1.0/frontend/SaralApp/android/app/src/debug/java/com/saralapp/ReactNativeFlipper.java +++ b/v1.0/frontend/SaralApp/android/app/src/debug/java/com/saralapp/ReactNativeFlipper.java @@ -4,7 +4,7 @@ *

This source code is licensed under the MIT license found in the LICENSE file in the root * directory of this source tree. */ -package com.saralapp; +package com.up_saralapp; import android.content.Context; import com.facebook.flipper.android.AndroidFlipperClient; diff --git a/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml b/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml index a76913025..88afd51e2 100644 --- a/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml +++ b/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.up_saralapp"> @@ -32,6 +32,7 @@ android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" + android:exported="true" android:windowSoftInputMode="adjustResize"> @@ -54,16 +55,18 @@ - - - + + + @@ -71,7 +74,7 @@ + android:exported="true" > diff --git a/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainActivity.java b/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainActivity.java index 5cb628fcd..cff3b61a4 100644 --- a/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainActivity.java +++ b/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainActivity.java @@ -1,4 +1,4 @@ -package com.saralapp; +package com.up_saralapp; import com.facebook.react.ReactActivity; import com.facebook.react.ReactActivityDelegate; diff --git a/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainApplication.java b/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainApplication.java index addbff730..e25f838d4 100644 --- a/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainApplication.java +++ b/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainApplication.java @@ -1,4 +1,4 @@ -package com.saralapp; +package com.up_saralapp; import android.app.Application; import android.content.Context; @@ -67,7 +67,7 @@ private static void initializeFlipper( We use reflection here to pick up the class that initializes Flipper, since Flipper library is not available in release mode */ - Class aClass = Class.forName("com.saralapp.ReactNativeFlipper"); + Class aClass = Class.forName("com.up_saralapp.ReactNativeFlipper"); aClass .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) .invoke(null, context, reactInstanceManager); diff --git a/v1.0/frontend/SaralApp/android/build.gradle b/v1.0/frontend/SaralApp/android/build.gradle index 12f196a8a..74ce63f29 100644 --- a/v1.0/frontend/SaralApp/android/build.gradle +++ b/v1.0/frontend/SaralApp/android/build.gradle @@ -4,10 +4,10 @@ buildscript { ext { googlePlayServicesVersion = "+" // default: "+" firebaseMessagingVersion = "21.1.0" // default: "21.1.0" - buildToolsVersion = "30.0.2" + buildToolsVersion = "32.0.0" minSdkVersion = 21 - compileSdkVersion = 30 - targetSdkVersion = 30 + compileSdkVersion = 32 + targetSdkVersion = 32 ndkVersion = "20.1.5948944" androidXCore = "1.7.0" } diff --git a/v1.0/frontend/SaralApp/android/gradle.properties b/v1.0/frontend/SaralApp/android/gradle.properties index 228154f7f..12c51b4a1 100644 --- a/v1.0/frontend/SaralApp/android/gradle.properties +++ b/v1.0/frontend/SaralApp/android/gradle.properties @@ -26,10 +26,10 @@ android.enableJetifier=true android.enableR8.fullMode =true # APK Signing -MYAPP_RELEASE_STORE_FILE=hwrecog-upload-key.keystore -MYAPP_RELEASE_STORE_PASSWORD=tarento@mis -MYAPP_RELEASE_KEY_ALIAS=hwrecog-key-alias -MYAPP_RELEASE_KEY_PASSWORD=tarento@mis +MYAPP_RELEASE_STORE_FILE=saral-up.keystore +MYAPP_RELEASE_STORE_PASSWORD=tspl1234 +MYAPP_RELEASE_KEY_ALIAS=up-saral-app +MYAPP_RELEASE_KEY_PASSWORD=tspl1234 # Version of flipper SDK to use with React Native FLIPPER_VERSION=0.93.0 From 6c65d29a9d2296e97ced8391ea04701e375b0802 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Thu, 31 Aug 2023 12:04:53 +0530 Subject: [PATCH 35/56] Build number upgrade --- v1.0/frontend/SaralApp/android/app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v1.0/frontend/SaralApp/android/app/build.gradle b/v1.0/frontend/SaralApp/android/app/build.gradle index a8a97d4dd..a221ca806 100644 --- a/v1.0/frontend/SaralApp/android/app/build.gradle +++ b/v1.0/frontend/SaralApp/android/app/build.gradle @@ -134,8 +134,8 @@ android { applicationId "com.up_saralapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" + versionCode 5 + versionName "1.2" } configurations.all { resolutionStrategy { From fed318a31f50967364d30d657ab67a6203f4211e Mon Sep 17 00:00:00 2001 From: rsankagi Date: Thu, 31 Aug 2023 15:52:12 +0530 Subject: [PATCH 36/56] removed absent/present change --- .../myScanScreens/SelectDetailsComponent.js | 42 +++++++++---------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/v1.0/frontend/SaralApp/src/modules/myScanScreens/SelectDetailsComponent.js b/v1.0/frontend/SaralApp/src/modules/myScanScreens/SelectDetailsComponent.js index 69ba7a09a..46a43e7d4 100644 --- a/v1.0/frontend/SaralApp/src/modules/myScanScreens/SelectDetailsComponent.js +++ b/v1.0/frontend/SaralApp/src/modules/myScanScreens/SelectDetailsComponent.js @@ -1105,28 +1105,26 @@ class SelectDetailsComponent extends Component { const deviceUniqId = await DeviceInfo.getUniqueId(); let hasNetwork = await checkNetworkConnectivity(); let hasCacheData = await getRegularStudentExamApi(); - // let cacheFilterData = - // hasCacheData != null - // ? hasCacheData.filter(element => { - // let conditionSwitch = - // element.key == this.props.loginData.data.school.schoolId && - // element.class == this.state.selectedClass && - // element.section == this.state.selectedSection && - // element.subject == this.state.selectedSubject; - // if (conditionSwitch) { - // return true; - // } - // }) - // : []; - - // if (hasCacheData && cacheFilterData.length > 0) { - // console.log('INSIDEIF>>>>>>>>>>>>>>>>>>'); - // this.setState({isCalledStudentAndExam: true, isLoading: false}); - // storeFactory.dispatch( - // this.dispatchStudentExamData(cacheFilterData[0].data), - // ); - // } else - if (hasNetwork) { + let cacheFilterData = + hasCacheData != null + ? hasCacheData.filter(element => { + let conditionSwitch = + element.key == this.props.loginData.data.school.schoolId && + element.class == this.state.selectedClass && + element.section == this.state.selectedSection && + element.subject == this.state.selectedSubject; + if (conditionSwitch) { + return true; + } + }) + : []; + + if (hasCacheData && cacheFilterData.length > 0) { + this.setState({isCalledStudentAndExam: true, isLoading: false}); + storeFactory.dispatch( + this.dispatchStudentExamData(cacheFilterData[0].data), + ); + } else if (hasNetwork) { let dataPayload = { classId: this.state.selectedClassId, section: this.state.selectedSection, From 636370bec7795f604ae058741ef747a5269e71b6 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Fri, 1 Sep 2023 15:20:07 +0530 Subject: [PATCH 37/56] Removed dependency of share package from support feature --- .../src/modules/common/components/Share.js | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/v1.0/frontend/SaralApp/src/modules/common/components/Share.js b/v1.0/frontend/SaralApp/src/modules/common/components/Share.js index e89a847a8..8db5bbb3a 100644 --- a/v1.0/frontend/SaralApp/src/modules/common/components/Share.js +++ b/v1.0/frontend/SaralApp/src/modules/common/components/Share.js @@ -46,9 +46,8 @@ import { import C from '../../../flux/actions/constants'; import {monospace_FF} from '../../../utils/CommonUtils'; import Share from 'react-native-share'; -import { Assets } from '../../../assets'; -import { AnalyticLogout } from '../../../utils/Analytics'; - +import {Assets} from '../../../assets'; +import {AnalyticLogout} from '../../../utils/Analytics'; const ShareComponent = ({ loginData, @@ -131,10 +130,16 @@ const ShareComponent = ({ dispatch(LogoutAction()); navigation.navigate('auth'); } - } + }; - callCustomModal(Strings.message_text, Strings.are_you_sure_you_want_to_logout, true, doLogout, true) - AnalyticLogout(loginData.data.school.schoolId) + callCustomModal( + Strings.message_text, + Strings.are_you_sure_you_want_to_logout, + true, + doLogout, + true, + ); + AnalyticLogout(loginData.data.school.schoolId); callCustomModal( Strings.message_text, @@ -206,12 +211,15 @@ const ShareComponent = ({ social: Share.Social.EMAIL, }; - try { - const ShareResponse = await Share.shareSingle(shareOptions); - console.log('ShareResponse', JSON.stringify(ShareResponse)); - } catch (error) { - console.log(error); - } + Linking.openURL( + `mailto:?subject=Saral App v1.0 logs collection&body=${shareOptions.message}`, + ); + // try { + // const ShareResponse = await Share.shareSingle(shareOptions); + // console.log('ShareResponse', JSON.stringify(ShareResponse)); + // } catch (error) { + // console.log(error); + // } }; const dispatchModalStatus = value => { From ce7222ad8e0e2f48457db9adbc2d0b8573a0ae97 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Mon, 4 Sep 2023 11:37:48 +0530 Subject: [PATCH 38/56] changes for UP release --- v1.0/frontend/SaralApp/android/app/build.gradle | 2 +- .../SaralApp/android/app/src/main/AndroidManifest.xml | 2 +- v1.0/frontend/SaralApp/android/build.gradle | 6 +++--- v1.0/frontend/SaralApp/src/configs/config.js | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/v1.0/frontend/SaralApp/android/app/build.gradle b/v1.0/frontend/SaralApp/android/app/build.gradle index a221ca806..dc82b1809 100644 --- a/v1.0/frontend/SaralApp/android/app/build.gradle +++ b/v1.0/frontend/SaralApp/android/app/build.gradle @@ -134,7 +134,7 @@ android { applicationId "com.up_saralapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 5 + versionCode 10 versionName "1.2" } configurations.all { diff --git a/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml b/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml index 88afd51e2..0c3217ab1 100644 --- a/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml +++ b/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml @@ -15,7 +15,7 @@ - + Date: Tue, 5 Sep 2023 16:21:15 +0530 Subject: [PATCH 39/56] Update saral_backend_EKS.yml --- saral_backend_EKS.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/saral_backend_EKS.yml b/saral_backend_EKS.yml index 6dc77c072..3f8b9e640 100644 --- a/saral_backend_EKS.yml +++ b/saral_backend_EKS.yml @@ -3,7 +3,7 @@ kind: Deployment metadata: name: saral-backend spec: - replicas: 10 + replicas: 8 selector: matchLabels: app: saral-backend From 5ac765f6b18ee2b40d2ad26886a00fab951d3716 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Wed, 6 Sep 2023 11:20:52 +0530 Subject: [PATCH 40/56] build version reverted --- v1.0/frontend/SaralApp/android/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v1.0/frontend/SaralApp/android/build.gradle b/v1.0/frontend/SaralApp/android/build.gradle index 5f56424ee..12f196a8a 100644 --- a/v1.0/frontend/SaralApp/android/build.gradle +++ b/v1.0/frontend/SaralApp/android/build.gradle @@ -4,10 +4,10 @@ buildscript { ext { googlePlayServicesVersion = "+" // default: "+" firebaseMessagingVersion = "21.1.0" // default: "21.1.0" - buildToolsVersion = "33.0.0" + buildToolsVersion = "30.0.2" minSdkVersion = 21 - compileSdkVersion = 33 - targetSdkVersion = 33 + compileSdkVersion = 30 + targetSdkVersion = 30 ndkVersion = "20.1.5948944" androidXCore = "1.7.0" } From 586d9c5d8a02bd4c897f72a536b578db5a6c0f0a Mon Sep 17 00:00:00 2001 From: rsankagi Date: Thu, 7 Sep 2023 17:56:09 +0530 Subject: [PATCH 41/56] Android 13 camera fix --- .../SaralApp/android/app/build.gradle | 4 +- .../android/app/src/main/AndroidManifest.xml | 1 + v1.0/frontend/SaralApp/android/build.gradle | 6 +- v1.0/frontend/SaralApp/package.json | 1 + v1.0/frontend/SaralApp/src/configs/config.js | 2 +- .../src/modules/ScanStatus/ScanStatus.js | 691 +++++++------ .../modules/ScanStatus/ScanStatusLocalList.js | 908 ++++++++++-------- .../modules/myScanScreens/MyScanComponent.js | 187 ++-- .../SaralApp/src/utils/CommonUtils.js | 338 ++++--- 9 files changed, 1191 insertions(+), 947 deletions(-) diff --git a/v1.0/frontend/SaralApp/android/app/build.gradle b/v1.0/frontend/SaralApp/android/app/build.gradle index dc82b1809..0fcae9321 100644 --- a/v1.0/frontend/SaralApp/android/app/build.gradle +++ b/v1.0/frontend/SaralApp/android/app/build.gradle @@ -134,8 +134,8 @@ android { applicationId "com.up_saralapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 10 - versionName "1.2" + versionCode 11 + versionName "1.3" } configurations.all { resolutionStrategy { diff --git a/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml b/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml index 0c3217ab1..f9a77bdba 100644 --- a/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml +++ b/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ + diff --git a/v1.0/frontend/SaralApp/android/build.gradle b/v1.0/frontend/SaralApp/android/build.gradle index 12f196a8a..5f56424ee 100644 --- a/v1.0/frontend/SaralApp/android/build.gradle +++ b/v1.0/frontend/SaralApp/android/build.gradle @@ -4,10 +4,10 @@ buildscript { ext { googlePlayServicesVersion = "+" // default: "+" firebaseMessagingVersion = "21.1.0" // default: "21.1.0" - buildToolsVersion = "30.0.2" + buildToolsVersion = "33.0.0" minSdkVersion = 21 - compileSdkVersion = 30 - targetSdkVersion = 30 + compileSdkVersion = 33 + targetSdkVersion = 33 ndkVersion = "20.1.5948944" androidXCore = "1.7.0" } diff --git a/v1.0/frontend/SaralApp/package.json b/v1.0/frontend/SaralApp/package.json index 39b482926..772d2883f 100644 --- a/v1.0/frontend/SaralApp/package.json +++ b/v1.0/frontend/SaralApp/package.json @@ -29,6 +29,7 @@ "react-native-global-props": "^1.1.5", "react-native-localization": "^2.3.1", "react-native-modal-dropdown": "^1.0.2", + "react-native-permissions": "^3.9.0", "react-native-push-notification": "^8.1.1", "react-native-responsive-dimensions": "^3.1.1", "react-native-safe-area-context": "^3.1.9", diff --git a/v1.0/frontend/SaralApp/src/configs/config.js b/v1.0/frontend/SaralApp/src/configs/config.js index 03dee62f5..9cf95cdb0 100644 --- a/v1.0/frontend/SaralApp/src/configs/config.js +++ b/v1.0/frontend/SaralApp/src/configs/config.js @@ -7,4 +7,4 @@ export default configs; export const apkVersion = '1.6.0'; export const apkVersionId = '1'; export const apkURL = - 'http://play.google.com/store/apps/details?id=com.up_saraldata'; + 'https://play.google.com/store/apps/details?id=com.up_saralapp'; diff --git a/v1.0/frontend/SaralApp/src/modules/ScanStatus/ScanStatus.js b/v1.0/frontend/SaralApp/src/modules/ScanStatus/ScanStatus.js index c3f3f5246..22205c1f9 100644 --- a/v1.0/frontend/SaralApp/src/modules/ScanStatus/ScanStatus.js +++ b/v1.0/frontend/SaralApp/src/modules/ScanStatus/ScanStatus.js @@ -1,8 +1,15 @@ -import React, { useEffect, useState } from 'react'; -import { FlatList, Text, View, Platform ,PermissionsAndroid,BackHandler} from 'react-native'; +import React, {useEffect, useState} from 'react'; +import { + FlatList, + Text, + View, + Platform, + PermissionsAndroid, + BackHandler, +} from 'react-native'; //redux -import { connect,useDispatch } from 'react-redux'; +import {connect, useDispatch} from 'react-redux'; //constant import Strings from '../../utils/Strings'; @@ -11,350 +18,422 @@ import Strings from '../../utils/Strings'; import ScanStatusList from './ScanStatusList'; //styles -import { styles } from './ScanStatusStyle'; +import {styles} from './ScanStatusStyle'; //Redux -import { bindActionCreators } from 'redux'; +import {bindActionCreators} from 'redux'; //api -import APITransport from '../../flux/actions/transport/apitransport' +import APITransport from '../../flux/actions/transport/apitransport'; import AppTheme from '../../utils/AppTheme'; -import { getPresentAbsentStudent, getScannedDataFromLocal } from '../../utils/StorageUtils'; +import { + getPresentAbsentStudent, + getScannedDataFromLocal, +} from '../../utils/StorageUtils'; import ShareComponent from '../common/components/Share'; import MultibrandLabels from '../common/components/multibrandlabels'; // import { monospace_FF,checkAppVersion } from '../../utils/CommonUtils'; import ButtonComponent from '../common/components/ButtonComponent'; -import { checkAppVersion, checkNetworkConnectivity, dispatchCustomModalMessage, dispatchCustomModalStatus, monospace_FF,neglectData,multipleStudent } from '../../utils/CommonUtils'; -import SystemSetting from 'react-native-system-setting' -import { ROIAction } from '../StudentsList/ROIAction'; -import SaralSDK from '../../../SaralSDK' -import { OcrLocalResponseAction } from '../../flux/actions/apis/OcrLocalResponseAction' +import { + checkAppVersion, + checkNetworkConnectivity, + dispatchCustomModalMessage, + dispatchCustomModalStatus, + monospace_FF, + neglectData, + multipleStudent, + askPermissions, +} from '../../utils/CommonUtils'; +import SystemSetting from 'react-native-system-setting'; +import {ROIAction} from '../StudentsList/ROIAction'; +import SaralSDK from '../../../SaralSDK'; +import {OcrLocalResponseAction} from '../../flux/actions/apis/OcrLocalResponseAction'; const ScanStatus = ({ - loginData, - scanedData, - multiBrandingData, - navigation, - filteredData, - roiData, - minimalFlag, - scanFun + loginData, + scanedData, + multiBrandingData, + navigation, + filteredData, + roiData, + minimalFlag, + scanFun, }) => { + const [studentList, setStudentList] = useState([]); + const [presentStudentList, setPresentStudentList] = useState([]); + const [roiIndex, setRoiindex] = useState(-1); + const [activityOpen, setActivityOpen] = useState(false); + const BrandLabel = + multiBrandingData && + multiBrandingData.screenLabels && + multiBrandingData.screenLabels.scanStatus[0]; - const [studentList, setStudentList] = useState([]) - const [presentStudentList, setPresentStudentList] = useState([]) - const [roiIndex,setRoiindex] = useState(-1) - const [activityOpen,setActivityOpen] = useState(false) - const BrandLabel = multiBrandingData && multiBrandingData.screenLabels && multiBrandingData.screenLabels.scanStatus[0] - - const dispatch = useDispatch() - useEffect(() => { - const backAction = () => { - return true; - }; - - const backHandler = BackHandler.addEventListener( - 'hardwareBackPress', - backAction, - ); - - return () => backHandler.remove(); - }, []); - //function - const renderItem = ({ item, index }) => { - return ( - - ) - } - - const renderEmptyData = ({ item }) => { - return ( - - No Data Available - - ) - } - - const onBackPress = () => { - navigation.push('myScan'); + const dispatch = useDispatch(); + useEffect(() => { + const backAction = () => { + return true; }; - useEffect(() => { - getDataFromLocal() - getStudentList() - getPresentStudentList() - }, []) + const backHandler = BackHandler.addEventListener( + 'hardwareBackPress', + backAction, + ); - const getStudentList = async () => { - let data = await getPresentAbsentStudent() - if (data != null) { - setStudentList(data) + return () => backHandler.remove(); + }, []); + //function + const renderItem = ({item, index}) => { + return ( + { - let data = await getScannedDataFromLocal(); - if (data != null) { - let students = data.studentsMarkInfo + themeColor2={ + multiBrandingData ? multiBrandingData.themeColor2 : AppTheme.BLUE } - } + scanitemdata={item} + index={index} + id={item.studentId} + subject={item.subject} + studentList={studentList} + BrandLabel={BrandLabel} + /> + ); + }; - const getPresentStudentList = ()=>{ - let hasSet = filteredData.hasOwnProperty("set") ? filteredData.set.length >= 0 ? filteredData.set : '' : null - let data = typeof (scanedData) === "object" - ? - scanedData.data - ? - scanedData.data.filter((o, index) => { - let stdCondition = hasSet==null ? - o.studentAvailability && o.marksInfo.length > 0 & o.examDate == filteredData.examDate - : hasSet.length >= 0 ? o.studentAvailability && o.marksInfo.length > 0 && hasSet == o.set - : false - if (stdCondition) { - return true - } - }) - : - [] - : - [] - setPresentStudentList(data) - + const renderEmptyData = ({item}) => { + return ( + + No Data Available + + ); + }; + + const onBackPress = () => { + navigation.push('myScan'); + }; + + useEffect(() => { + getDataFromLocal(); + getStudentList(); + getPresentStudentList(); + }, []); + + const getStudentList = async () => { + let data = await getPresentAbsentStudent(); + if (data != null) { + setStudentList(data); } + }; - const callCustomModal=(title, message, isAvailable, cancel)=> { - let data = { - title: title, - message: message, - isOkAvailable: isAvailable, - isCancel : cancel - } - dispatchCustomModalStatus(true); - dispatchCustomModalMessage(data); + const getDataFromLocal = async () => { + let data = await getScannedDataFromLocal(); + if (data != null) { + let students = data.studentsMarkInfo; } + }; - const onScanClick = async () => { - let hasUpdate = await checkAppVersion(); - if (!hasUpdate) { - SystemSetting.getBrightness().then((brightness) => { - // this.setState({ oldBrightness: brightness }) - }); + const getPresentStudentList = () => { + let hasSet = filteredData.hasOwnProperty('set') + ? filteredData.set.length >= 0 + ? filteredData.set + : '' + : null; + let data = + typeof scanedData === 'object' + ? scanedData.data + ? scanedData.data.filter((o, index) => { + let stdCondition = + hasSet == null + ? o.studentAvailability && + (o.marksInfo.length > 0) & + (o.examDate == filteredData.examDate) + : hasSet.length >= 0 + ? o.studentAvailability && + o.marksInfo.length > 0 && + hasSet == o.set + : false; + if (stdCondition) { + return true; + } + }) + : [] + : []; + setPresentStudentList(data); + }; + + const callCustomModal = (title, message, isAvailable, cancel) => { + let data = { + title: title, + message: message, + isOkAvailable: isAvailable, + isCancel: cancel, + }; + dispatchCustomModalStatus(true); + dispatchCustomModalMessage(data); + }; - if (Platform.OS !== 'ios') { - const grantedRead = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE) - const grantedWrite = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE) - const grantedCamera = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.CAMERA) + onScanClick = async () => { + let hasUpdate = await checkAppVersion(); + if (!hasUpdate) { + SystemSetting.getBrightness().then(brightness => { + //setState({oldBrightness: brightness}); + }); - if (grantedRead && grantedWrite && grantedCamera) { - let hasEmpty = roiData.hasOwnProperty("config") ? true : roiData.length > 0 - if (minimalFlag && roiIndex != -1) { - if (!hasEmpty) { - callCustomModal(Strings.message_text, Strings.roi_cache_not_available,false,false) - } else { - openCameraActivity() - } - } else if (!minimalFlag ) { - if (loginData.data.school.hasOwnProperty("offlineMode") && loginData.data.school.offlineMode && hasEmpty) { - openCameraActivity() - } else if(loginData.data.school.hasOwnProperty("offlineMode") == false || loginData.data.school.offlineMode == false && hasEmpty){ - openCameraActivity() - } else { - callCustomModal(Strings.message_text,Strings.roi_cache_not_available,false,false) - } - } - } - else { - PermissionsAndroid.requestMultiple( - [ - PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE, - PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE, - PermissionsAndroid.PERMISSIONS.CAMERA - ], - { - title: Strings.permission_text, - message: Strings.app_needs_permission - } - ).then((permRes) => { - if ( - permRes['android.permission.READ_EXTERNAL_STORAGE'] === PermissionsAndroid.RESULTS.GRANTED && - permRes['android.permission.WRITE_EXTERNAL_STORAGE'] === PermissionsAndroid.RESULTS.GRANTED && - permRes['android.permission.CAMERA'] === PermissionsAndroid.RESULTS.GRANTED - ) { - if (minimalFlag && roiIndex != -1) { - openCameraActivity() - } else if (!minimalFlag ) { - openCameraActivity() - } - else { - callCustomModal(Strings.message_text,Strings.please_select_roi_layout,false,false) - } - } else if (permRes['android.permission.READ_EXTERNAL_STORAGE'] == 'never_ask_again' || - permRes['android.permission.WRITE_EXTERNAL_STORAGE'] == 'never_ask_again' || - permRes['android.permission.CAMERA'] == 'never_ask_again') { - Alert.alert(Strings.message_text, Strings.give_permission_from_settings, [ - { 'text': Strings.ok_text, style: 'cancel' } - ]); - } else { - Alert.alert(Strings.message_text, Strings.please_give_permission_to_use_app, [ - { 'text': Strings.cancel_text, style: 'cancel' }, - { 'text': Strings.ok_text, onPress: () => onScanClick } + let permissionStatus = await askPermissions(); - ]); - } - }); - } + if (permissionStatus == 'granted') { + let hasEmpty = roiData.hasOwnProperty('config') + ? true + : roiData.length > 0; + if (minimalFlag && roiIndex != -1) { + if (!hasEmpty) { + callCustomModal( + Strings.message_text, + Strings.roi_cache_not_available, + false, + false, + ); + } else { + openCameraActivity(); + onScanButtonClickEvent(loginData.data.school.schoolId); + } + } else if (!minimalFlag) { + if ( + loginData.data.school.hasOwnProperty('offlineMode') && + loginData.data.school.offlineMode && + hasEmpty + ) { + openCameraActivity(); + onScanButtonClickEvent(loginData.data.school.schoolId); + } else if ( + loginData.data.school.hasOwnProperty('offlineMode') == false || + (loginData.data.school.offlineMode == false && hasEmpty) + ) { + openCameraActivity(); + onScanButtonClickEvent(loginData.data.school.schoolId); + } else { + callCustomModal( + Strings.message_text, + Strings.roi_cache_not_available, + false, + false, + ); + } } + } else { + let permissionStatus = await askPermissions(); + if (permissionStatus == 'granted') { + if (minimalFlag && roiIndex != -1) { + openCameraActivity(); + onScanButtonClickEvent(loginData.data.school.schoolId); + } else if (!minimalFlag) { + openCameraActivity(); + onScanButtonClickEvent(loginData.data.school.schoolId); + } else { + callCustomModal( + Strings.message_text, + Strings.please_select_roi_layout, + false, + false, + ); + } + } else if (permissionStatus == 'blocked') { + Alert.alert( + Strings.message_text, + Strings.give_permission_from_settings, + [{text: Strings.ok_text, style: 'cancel'}], + ); + } else { + Alert.alert( + Strings.message_text, + Strings.please_give_permission_to_use_app, + [ + {text: Strings.cancel_text, style: 'cancel'}, + {text: Strings.ok_text, onPress: () => onScanClick()}, + ], + ); + } + } } - } + }; - const openCameraActivity = async () => { - try { - const granted = await PermissionsAndroid.request( - PermissionsAndroid.PERMISSIONS.CAMERA, - { - title: "SaralSDK Demo App Camera Permission", - message: - "SaralSDK Demo application require camera to perform scanning operation ", - buttonNeutral: "Ask Me Later", - buttonNegative: "Cancel", - buttonPositive: "OK" - } - ); - if (granted === PermissionsAndroid.RESULTS.GRANTED) { - setActivityOpen(!activityOpen) - let totalPages = roiData.data.layout.hasOwnProperty("pages") && roiData.data.layout.pages - let pageNumber = totalPages || totalPages > 0 ? "1" : null - let jsonRoiData = roiData.data - let hasTimer = loginData.data.school.hasOwnProperty("scanTimeoutMs") ? loginData.data.school.scanTimeoutMs : 0 - let isManualEditEnabled = loginData.data.school.hasOwnProperty("isManualEditEnabled") ? loginData.data.school.isManualEditEnabled : false - SaralSDK.startCamera(JSON.stringify(jsonRoiData), pageNumber, hasTimer, isManualEditEnabled).then(res => { - let roisData = JSON.parse(res); - let cells = roisData.layout.cells; - consolidatePrediction(cells, roisData) + openCameraActivity = async () => { + try { + let permissionStatus = await askPermissions(); + if (permissionStatus == 'granted') { + setActivityOpen(!activityOpen); + let totalPages = + roiData.data.layout.hasOwnProperty('pages') && + roiData.data.layout.pages; + let pageNumber = totalPages || totalPages > 0 ? '1' : null; + let jsonRoiData = roiData.data; + let hasTimer = loginData.data.school.hasOwnProperty('scanTimeoutMs') + ? loginData.data.school.scanTimeoutMs + : 0; + let isManualEditEnabled = loginData.data.school.hasOwnProperty( + 'isManualEditEnabled', + ) + ? loginData.data.school.isManualEditEnabled + : false; + SaralSDK.startCamera( + JSON.stringify(jsonRoiData), + pageNumber, + hasTimer, + isManualEditEnabled, + ) + .then(res => { + let roisData = JSON.parse(res); + let cells = roisData.layout.cells; + consolidatePrediction(cells, roisData); + }) + .catch((code, message) => {}); + } else { + } + } catch (err) {} + }; - }).catch((code, message) => { - }) - } else { - } - } catch (err) { + const consolidatePrediction = (cells, roisData) => { + var marks = ''; + var predictionConfidenceArray = []; + var studentIdPrediction = ''; + for (let i = 0; i < cells.length; i++) { + marks = ''; + predictionConfidenceArray = []; + for (let j = 0; j < cells[i].rois.length; j++) { + if (cells[i].rois[j].hasOwnProperty('result')) { + marks = marks + cells[i].rois[j].result.prediction; + predictionConfidenceArray.push(cells[i].rois[j].result.confidence); + // roisData.layout.cells[i].predictionConfidence = cells[i].rois[j].result.confidence + } else { + let resultProperty = { + prediction: '0', + confidence: 0, + }; + roisData.layout.cells[i].rois[j].result = resultProperty; } - }; + } + roisData.layout.cells[i].consolidatedPrediction = marks; + roisData.layout.cells[i].predictionConfidence = predictionConfidenceArray; + let rollNumber = roisData.layout.cells[i].format.name.replace( + /[0-9]/g, + '', + ); + let checkRoLLNumberExist = ''; - const consolidatePrediction =(cells, roisData)=> { - var marks = ""; - var predictionConfidenceArray = [] - var studentIdPrediction = "" - for (let i = 0; i < cells.length; i++) { - marks = "" - predictionConfidenceArray = [] - for (let j = 0; j < cells[i].rois.length; j++) { - if (cells[i].rois[j].hasOwnProperty("result")) { - marks = marks + cells[i].rois[j].result.prediction - predictionConfidenceArray.push(cells[i].rois[j].result.confidence) - // roisData.layout.cells[i].predictionConfidence = cells[i].rois[j].result.confidence - } else { - let resultProperty = { - "prediction": "0", - "confidence": 0 - } - roisData.layout.cells[i].rois[j].result = resultProperty - } - } - roisData.layout.cells[i].consolidatedPrediction = marks - roisData.layout.cells[i].predictionConfidence = predictionConfidenceArray - let rollNumber = roisData.layout.cells[i].format.name.replace(/[0-9]/g, ''); - let checkRoLLNumberExist = ''; - - - if (roisData.layout.hasOwnProperty("identifierPrefix")) { - checkRoLLNumberExist = roisData.layout.identifierPrefix - } else if (rollNumber == neglectData[0]) { - checkRoLLNumberExist = rollNumber - } else { - checkRoLLNumberExist = multipleStudent[0] - } + if (roisData.layout.hasOwnProperty('identifierPrefix')) { + checkRoLLNumberExist = roisData.layout.identifierPrefix; + } else if (rollNumber == neglectData[0]) { + checkRoLLNumberExist = rollNumber; + } else { + checkRoLLNumberExist = multipleStudent[0]; + } - if ((rollNumber === checkRoLLNumberExist && rollNumber.length == checkRoLLNumberExist.length)) { - roisData.layout.cells[i].studentIdPrediction = marks - } else if((rollNumber.trim() === checkRoLLNumberExist && rollNumber != 0)){ - roisData.layout.cells[i].studentIdPrediction = marks - } - else { - roisData.layout.cells[i].predictedMarks = marks - } - } - dispatch(OcrLocalResponseAction(JSON.parse(JSON.stringify(roisData)))) - navigation.navigate('ScannedDetailsComponent') + if ( + rollNumber === checkRoLLNumberExist && + rollNumber.length == checkRoLLNumberExist.length + ) { + roisData.layout.cells[i].studentIdPrediction = marks; + } else if ( + rollNumber.trim() === checkRoLLNumberExist && + rollNumber != 0 + ) { + roisData.layout.cells[i].studentIdPrediction = marks; + } else { + roisData.layout.cells[i].predictedMarks = marks; + } } + dispatch(OcrLocalResponseAction(JSON.parse(JSON.stringify(roisData)))); + navigation.navigate('ScannedDetailsComponent'); + }; - + return ( + + navigation.navigate('myScan')} + /> + + {Strings.save_status} - return ( - - navigation.navigate('myScan')} - /> - - {Strings.save_status} + `${index.toString()}`} + contentContainerStyle={styles.content} + /> - `${index.toString()}`} - contentContainerStyle={styles.content} - /> - - - onBackPress()} - /> + + onBackPress()} + /> - - + customBtnStyle={[ + styles.nxtBtnStyle1, + { + flex: 0, + width: '45%', + backgroundColor: multiBrandingData.themeColor1 + ? multiBrandingData.themeColor1 + : AppTheme.BLUE, + }, + ]} + customBtnTextStyle={{fontWeight: 'normal', fontSize: 14}} + btnText={'Re-scan'.toUpperCase()} + activeOpacity={0.8} + onPress={onScanClick} + /> - ); -} -const mapStateToProps = (state) => { - return { - loginData: state.loginData, - filteredData: state.filteredData.response, - scanedData: state.scanedData.response, - multiBrandingData: state.multiBrandingData.response.data, - roiData: state.roiData.response, - minimalFlag: state.minimalFlag, - } -} + + + ); +}; +const mapStateToProps = state => { + return { + loginData: state.loginData, + filteredData: state.filteredData.response, + scanedData: state.scanedData.response, + multiBrandingData: state.multiBrandingData.response.data, + roiData: state.roiData.response, + minimalFlag: state.minimalFlag, + }; +}; -const mapDispatchToProps = (dispatch) => { - return bindActionCreators({ - APITransport: APITransport, - OcrLocalResponseAction: OcrLocalResponseAction, - dispatchCustomModalStatus: dispatchCustomModalStatus, - dispatchCustomModalMessage: dispatchCustomModalMessage, - }, dispatch) -} +const mapDispatchToProps = dispatch => { + return bindActionCreators( + { + APITransport: APITransport, + OcrLocalResponseAction: OcrLocalResponseAction, + dispatchCustomModalStatus: dispatchCustomModalStatus, + dispatchCustomModalMessage: dispatchCustomModalMessage, + }, + dispatch, + ); +}; export default connect(mapStateToProps, mapDispatchToProps)(ScanStatus); diff --git a/v1.0/frontend/SaralApp/src/modules/ScanStatus/ScanStatusLocalList.js b/v1.0/frontend/SaralApp/src/modules/ScanStatus/ScanStatusLocalList.js index fe07a2f85..461ca8b28 100644 --- a/v1.0/frontend/SaralApp/src/modules/ScanStatus/ScanStatusLocalList.js +++ b/v1.0/frontend/SaralApp/src/modules/ScanStatus/ScanStatusLocalList.js @@ -1,430 +1,550 @@ -import React, { useState,useEffect } from 'react'; -import { StyleSheet, Text, View, Dimensions, BackHandler, Platform ,PermissionsAndroid, ScrollView } from 'react-native'; +import React, {useState, useEffect} from 'react'; +import { + StyleSheet, + Text, + View, + Dimensions, + BackHandler, + Platform, + PermissionsAndroid, + ScrollView, +} from 'react-native'; import AppTheme from '../../utils/AppTheme'; import ModalPopup from '../common/components/Modal'; import Strings from '../../utils/Strings'; import ButtonComponent from '../common/components/ButtonComponent'; import MarksHeaderTable from '../ScannedDetails/MarksHeaderTable'; -import { bindActionCreators } from 'redux'; -import { connect,useDispatch } from 'react-redux'; +import {bindActionCreators} from 'redux'; +import {connect, useDispatch} from 'react-redux'; -import APITransport from '../../flux/actions/transport/apitransport' -import { checkAppVersion, checkNetworkConnectivity, dispatchCustomModalMessage, dispatchCustomModalStatus, monospace_FF,neglectData,multipleStudent,MARKS_INFO,MARKS_INFO_DEFAULT } from '../../utils/CommonUtils'; -import SystemSetting from 'react-native-system-setting' -import SaralSDK from '../../../SaralSDK' -import { OcrLocalResponseAction } from '../../flux/actions/apis/OcrLocalResponseAction' -import { ReScanButton } from '../../utils/Analytics'; +import APITransport from '../../flux/actions/transport/apitransport'; +import { + checkAppVersion, + checkNetworkConnectivity, + dispatchCustomModalMessage, + dispatchCustomModalStatus, + monospace_FF, + neglectData, + multipleStudent, + MARKS_INFO, + MARKS_INFO_DEFAULT, + askPermissions, +} from '../../utils/CommonUtils'; +import SystemSetting from 'react-native-system-setting'; +import SaralSDK from '../../../SaralSDK'; +import {OcrLocalResponseAction} from '../../flux/actions/apis/OcrLocalResponseAction'; +import {ReScanButton} from '../../utils/Analytics'; -const{width,height} = Dimensions.get('window'); +const {width, height} = Dimensions.get('window'); const ScanStatusLocalList = ({ - themeColor1, - id, - loacalstutlist, - scanitemdata, - status = "Saved", - Review = "Review", - Reviewd = "Reviewed", - minimalFlag = false, - BrandLabel, - themeColor2, - index, - loginData, - navigation, - roiData, - + themeColor1, + id, + loacalstutlist, + scanitemdata, + status = 'Saved', + Review = 'Review', + Reviewd = 'Reviewed', + minimalFlag = false, + BrandLabel, + themeColor2, + index, + loginData, + navigation, + roiData, }) => { + console.log('loginData>>>', navigation); + const [modalVisible, setModalVisible] = useState(false); + const [reviewed, setReviewd] = useState(true); + const [roiIndex, setRoiindex] = useState(-1); + const [activityOpen, setActivityOpen] = useState(false); - console.log('loginData>>>',navigation); - const [modalVisible, setModalVisible] = useState(false) - const [reviewed, setReviewd] = useState(true) - const [roiIndex,setRoiindex] = useState(-1) - const [activityOpen,setActivityOpen] = useState(false) + const dispatch = useDispatch(); - const dispatch = useDispatch() + let studentName = loacalstutlist.filter(e => { + if (id == e.studentId) { + return true; + } + }); - let studentName = loacalstutlist.filter((e) => { - if (id == e.studentId) { - return true - } - }) + useEffect(() => { + const backAction = () => { + return true; + }; - useEffect(() => { - const backAction = () => { - return true; - }; - - const backHandler = BackHandler.addEventListener( - 'hardwareBackPress', - backAction, - ); - - return () => backHandler.remove(); - }, []); + const backHandler = BackHandler.addEventListener( + 'hardwareBackPress', + backAction, + ); - const renderSRNo = (m, i) => { - return `${i + 1}` - } + return () => backHandler.remove(); + }, []); - const navigateFun = () => { - setModalVisible(!modalVisible) - setReviewd(false) - navigation.navigate('ScannedDetailsComponent') - } + const renderSRNo = (m, i) => { + return `${i + 1}`; + }; - const closeModelfun = () =>{ - setModalVisible(!modalVisible) - setReviewd(false) - } - const callCustomModal=(title, message, isAvailable, cancel)=> { - let data = { - title: title, - message: message, - isOkAvailable: isAvailable, - isCancel : cancel - } - dispatchCustomModalStatus(true); - dispatchCustomModalMessage(data); - } - const onScanClick = async () => { - let hasUpdate = await checkAppVersion(); - if (!hasUpdate) { - SystemSetting.getBrightness().then((brightness) => { - // this.setState({ oldBrightness: brightness }) - }); + const navigateFun = () => { + setModalVisible(!modalVisible); + setReviewd(false); + navigation.navigate('ScannedDetailsComponent'); + }; + + const closeModelfun = () => { + setModalVisible(!modalVisible); + setReviewd(false); + }; + const callCustomModal = (title, message, isAvailable, cancel) => { + let data = { + title: title, + message: message, + isOkAvailable: isAvailable, + isCancel: cancel, + }; + dispatchCustomModalStatus(true); + dispatchCustomModalMessage(data); + }; - if (Platform.OS !== 'ios') { - const grantedRead = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE) - const grantedWrite = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE) - const grantedCamera = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.CAMERA) + const onScanClick = async () => { + let hasUpdate = await checkAppVersion(); + if (!hasUpdate) { + SystemSetting.getBrightness().then(brightness => { + //setState({oldBrightness: brightness}); + }); - if (grantedRead && grantedWrite && grantedCamera) { - let hasEmpty = roiData.hasOwnProperty("config") ? true : roiData.length > 0 - if (minimalFlag && roiIndex != -1) { - if (!hasEmpty) { - callCustomModal(Strings.message_text, Strings.roi_cache_not_available,false,false) - } else { - openCameraActivity() - ReScanButton(loginData.data.school.schoolId) - } - } else if (!minimalFlag ) { - if (loginData.data.school.hasOwnProperty("offlineMode") && loginData.data.school.offlineMode && hasEmpty) { - openCameraActivity() - ReScanButton(loginData.data.school.schoolId) - } else if(loginData.data.school.hasOwnProperty("offlineMode") == false || loginData.data.school.offlineMode == false && hasEmpty){ - openCameraActivity() - ReScanButton(loginData.data.school.schoolId) - } else { - callCustomModal(Strings.message_text,Strings.roi_cache_not_available,false,false) - } - } - } - else { - PermissionsAndroid.requestMultiple( - [ - PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE, - PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE, - PermissionsAndroid.PERMISSIONS.CAMERA - ], - { - title: Strings.permission_text, - message: Strings.app_needs_permission - } - ).then((permRes) => { - if ( - permRes['android.permission.READ_EXTERNAL_STORAGE'] === PermissionsAndroid.RESULTS.GRANTED && - permRes['android.permission.WRITE_EXTERNAL_STORAGE'] === PermissionsAndroid.RESULTS.GRANTED && - permRes['android.permission.CAMERA'] === PermissionsAndroid.RESULTS.GRANTED - ) { - if (minimalFlag && roiIndex != -1) { - openCameraActivity() - ReScanButton(loginData.data.school.schoolId) - } else if (!minimalFlag ) { - openCameraActivity() - ReScanButton(loginData.data.school.schoolId) - } - else { - callCustomModal(Strings.message_text,Strings.please_select_roi_layout,false,false) - } - } else if (permRes['android.permission.READ_EXTERNAL_STORAGE'] == 'never_ask_again' || - permRes['android.permission.WRITE_EXTERNAL_STORAGE'] == 'never_ask_again' || - permRes['android.permission.CAMERA'] == 'never_ask_again') { - Alert.alert(Strings.message_text, Strings.give_permission_from_settings, [ - { 'text': Strings.ok_text, style: 'cancel' } - ]); - } else { - Alert.alert(Strings.message_text, Strings.please_give_permission_to_use_app, [ - { 'text': Strings.cancel_text, style: 'cancel' }, - { 'text': Strings.ok_text, onPress: () => onScanClick } + let permissionStatus = await askPermissions(); - ]); - } - }); - } + if (permissionStatus == 'granted') { + let hasEmpty = roiData.hasOwnProperty('config') + ? true + : roiData.length > 0; + if (minimalFlag && roiIndex != -1) { + if (!hasEmpty) { + callCustomModal( + Strings.message_text, + Strings.roi_cache_not_available, + false, + false, + ); + } else { + openCameraActivity(); + onScanButtonClickEvent(loginData.data.school.schoolId); + } + } else if (!minimalFlag) { + if ( + loginData.data.school.hasOwnProperty('offlineMode') && + loginData.data.school.offlineMode && + hasEmpty + ) { + openCameraActivity(); + onScanButtonClickEvent(loginData.data.school.schoolId); + } else if ( + loginData.data.school.hasOwnProperty('offlineMode') == false || + (loginData.data.school.offlineMode == false && hasEmpty) + ) { + openCameraActivity(); + onScanButtonClickEvent(loginData.data.school.schoolId); + } else { + callCustomModal( + Strings.message_text, + Strings.roi_cache_not_available, + false, + false, + ); + } } + } else { + let permissionStatus = await askPermissions(); + if (permissionStatus == 'granted') { + if (minimalFlag && roiIndex != -1) { + openCameraActivity(); + onScanButtonClickEvent(loginData.data.school.schoolId); + } else if (!minimalFlag) { + openCameraActivity(); + onScanButtonClickEvent(loginData.data.school.schoolId); + } else { + callCustomModal( + Strings.message_text, + Strings.please_select_roi_layout, + false, + false, + ); + } + } else if (permissionStatus == 'blocked') { + Alert.alert( + Strings.message_text, + Strings.give_permission_from_settings, + [{text: Strings.ok_text, style: 'cancel'}], + ); + } else { + Alert.alert( + Strings.message_text, + Strings.please_give_permission_to_use_app, + [ + {text: Strings.cancel_text, style: 'cancel'}, + {text: Strings.ok_text, onPress: () => onScanClick()}, + ], + ); + } + } } - } + }; - const openCameraActivity = async () => { - try { - const granted = await PermissionsAndroid.request( - PermissionsAndroid.PERMISSIONS.CAMERA, - { - title: "SaralSDK Demo App Camera Permission", - message: - "SaralSDK Demo application require camera to perform scanning operation ", - buttonNeutral: "Ask Me Later", - buttonNegative: "Cancel", - buttonPositive: "OK" - } - ); - if (granted === PermissionsAndroid.RESULTS.GRANTED) { - setActivityOpen(!activityOpen) - let totalPages = roiData.data.layout.hasOwnProperty("pages") && roiData.data.layout.pages - let pageNumber = totalPages || totalPages > 0 ? "1" : null - let jsonRoiData = roiData.data - let hasTimer = loginData.data.school.hasOwnProperty("scanTimeoutMs") ? loginData.data.school.scanTimeoutMs : 0 - let isManualEditEnabled = loginData.data.school.hasOwnProperty("isManualEditEnabled") ? loginData.data.school.isManualEditEnabled : false - SaralSDK.startCamera(JSON.stringify(jsonRoiData), pageNumber, hasTimer, isManualEditEnabled).then(res => { - let roisData = JSON.parse(res); - let cells = roisData.layout.cells; - consolidatePrediction(cells, roisData) + const openCameraActivity = async () => { + try { + let permissionStatus = await askPermissions(); + + if (permissionStatus == 'granted') { + setActivityOpen(!activityOpen); + let totalPages = + roiData.data.layout.hasOwnProperty('pages') && + roiData.data.layout.pages; + let pageNumber = totalPages || totalPages > 0 ? '1' : null; + let jsonRoiData = roiData.data; + let hasTimer = loginData.data.school.hasOwnProperty('scanTimeoutMs') + ? loginData.data.school.scanTimeoutMs + : 0; + let isManualEditEnabled = loginData.data.school.hasOwnProperty( + 'isManualEditEnabled', + ) + ? loginData.data.school.isManualEditEnabled + : false; + SaralSDK.startCamera( + JSON.stringify(jsonRoiData), + pageNumber, + hasTimer, + isManualEditEnabled, + ) + .then(res => { + let roisData = JSON.parse(res); + let cells = roisData.layout.cells; + consolidatePrediction(cells, roisData); + }) + .catch((code, message) => {}); + } else { + } + } catch (err) {} + }; + const consolidatePrediction = (cells, roisData) => { + var marks = ''; + var predictionConfidenceArray = []; - }).catch((code, message) => { - }) - } else { - } - } catch (err) { + var studentIdPrediction = ''; + for (let i = 0; i < cells.length; i++) { + marks = ''; + predictionConfidenceArray = []; + for (let j = 0; j < cells[i].rois.length; j++) { + if (cells[i].rois[j].hasOwnProperty('result')) { + marks = marks + cells[i].rois[j].result.prediction; + predictionConfidenceArray.push(cells[i].rois[j].result.confidence); + // roisData.layout.cells[i].predictionConfidence = cells[i].rois[j].result.confidence + } else { + let resultProperty = { + prediction: '0', + confidence: 0, + }; + roisData.layout.cells[i].rois[j].result = resultProperty; } - }; + } + roisData.layout.cells[i].consolidatedPrediction = marks; + roisData.layout.cells[i].predictionConfidence = predictionConfidenceArray; + let rollNumber = roisData.layout.cells[i].format.name.replace( + /[0-9]/g, + '', + ); + let checkRoLLNumberExist = ''; - const consolidatePrediction =(cells, roisData)=> { - var marks = ""; - var predictionConfidenceArray = [] - - var studentIdPrediction = "" - for (let i = 0; i < cells.length; i++) { - marks = "" - predictionConfidenceArray = [] - for (let j = 0; j < cells[i].rois.length; j++) { - if (cells[i].rois[j].hasOwnProperty("result")) { - marks = marks + cells[i].rois[j].result.prediction - predictionConfidenceArray.push(cells[i].rois[j].result.confidence) - // roisData.layout.cells[i].predictionConfidence = cells[i].rois[j].result.confidence - } else { - let resultProperty = { - "prediction": "0", - "confidence": 0 - } - roisData.layout.cells[i].rois[j].result = resultProperty - } - } - roisData.layout.cells[i].consolidatedPrediction = marks - roisData.layout.cells[i].predictionConfidence = predictionConfidenceArray - let rollNumber = roisData.layout.cells[i].format.name.replace(/[0-9]/g, ''); - let checkRoLLNumberExist = ''; - - if (roisData.layout.hasOwnProperty("identifierPrefix")) { - checkRoLLNumberExist = roisData.layout.identifierPrefix - - } else if (rollNumber == neglectData[0]) { - checkRoLLNumberExist = rollNumber - } else { - checkRoLLNumberExist = multipleStudent[0] - } + if (roisData.layout.hasOwnProperty('identifierPrefix')) { + checkRoLLNumberExist = roisData.layout.identifierPrefix; + } else if (rollNumber == neglectData[0]) { + checkRoLLNumberExist = rollNumber; + } else { + checkRoLLNumberExist = multipleStudent[0]; + } - if ((rollNumber === checkRoLLNumberExist && rollNumber.length == checkRoLLNumberExist.length)) { - roisData.layout.cells[i].studentIdPrediction = marks - } else if((rollNumber.trim() === checkRoLLNumberExist && rollNumber != 0)){ - roisData.layout.cells[i].studentIdPrediction = marks - } - else { - roisData.layout.cells[i].predictedMarks = marks - } - } - dispatch(OcrLocalResponseAction(JSON.parse(JSON.stringify(roisData)))) - navigation.navigate('ScannedDetailsComponent') - - - + if ( + rollNumber === checkRoLLNumberExist && + rollNumber.length == checkRoLLNumberExist.length + ) { + roisData.layout.cells[i].studentIdPrediction = marks; + } else if ( + rollNumber.trim() === checkRoLLNumberExist && + rollNumber != 0 + ) { + roisData.layout.cells[i].studentIdPrediction = marks; + } else { + roisData.layout.cells[i].predictedMarks = marks; + } } + dispatch(OcrLocalResponseAction(JSON.parse(JSON.stringify(roisData)))); + navigation.navigate('ScannedDetailsComponent'); + }; - - return ( - - - 50 ? 100:50,borderWidth:1,borderColor:'#DADADA',borderRightWidth:0, border:10,justifyContent:'center',alignItems:'center',backgroundColor:AppTheme.WHITE}}> - {index + 1} - - - - {id} - - 50 ? 75 :25,borderWidth:1,borderColor:'#DADADA',borderTopWidth:0, border:10,justifyContent:'center'}}> - { - !minimalFlag - && - {studentName.length > 0 && studentName[0].name} - } - - - - 50 ? 100:50}]} - customBtnTextStyle={[styles.buttonText,{color:!reviewed ? 'black' : 'white'}]} - btnText={!reviewed ? Reviewd :Review} - activeOpacity={0.8} - onPress={() => setModalVisible(true)} - /> - - - - setModalVisible(!modalVisible)} - reScan={'Re-Scan'.toUpperCase()} - onPressReScanBtn={onScanClick} - onPress={closeModelfun} - btnText={Strings.close.toUpperCase()} - themeColor1={themeColor1} - borderCutomStyle={[styles.borderStyle, { borderColor: themeColor1 ? themeColor1 : AppTheme.GREEN }]} - data={ - - {`Student ID : `}{`${scanitemdata&&scanitemdata.studentId}`} - { - !minimalFlag - && - {`Student Name : `}{`${studentName.length > 0 && studentName[0].name}`} - - } - {/* {`Section : ` }{`${scanitemdata&&scanitemdata.section}`} */} - - - { - BrandLabel && MARKS_INFO ? - - - - - : - MARKS_INFO_DEFAULT.map((data) => { - return ( - - ) - }) - } - - { - scanitemdata && scanitemdata.marksInfo.map((M, i) => { - return ( - + return ( + + + 50 ? 100 : 50, + borderWidth: 1, + borderColor: '#DADADA', + borderRightWidth: 0, + border: 10, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: AppTheme.WHITE, + }}> + {index + 1} + + + + {id} + + 50 ? 75 : 25, + borderWidth: 1, + borderColor: '#DADADA', + borderTopWidth: 0, + border: 10, + justifyContent: 'center', + }}> + {!minimalFlag && ( + + {studentName.length > 0 && studentName[0].name} + + )} + + + + 50 ? 100 : 50, + }, + ]} + customBtnTextStyle={[ + styles.buttonText, + {color: !reviewed ? 'black' : 'white'}, + ]} + btnText={!reviewed ? Reviewd : Review} + activeOpacity={0.8} + onPress={() => setModalVisible(true)} + /> + - - + setModalVisible(!modalVisible)} + reScan={'Re-Scan'.toUpperCase()} + onPressReScanBtn={onScanClick} + onPress={closeModelfun} + btnText={Strings.close.toUpperCase()} + themeColor1={themeColor1} + borderCutomStyle={[ + styles.borderStyle, + {borderColor: themeColor1 ? themeColor1 : AppTheme.GREEN}, + ]} + data={ + + + {`Student ID : `} + {`${ + scanitemdata && scanitemdata.studentId + }`} + + {!minimalFlag && ( + + {`Student Name : `} + {`${ + studentName.length > 0 && studentName[0].name + }`} + + )} + {/* {`Section : ` }{`${scanitemdata&&scanitemdata.section}`} */} - - ) - }) - } - } - /> - - - - ); -} + + {BrandLabel && MARKS_INFO ? ( + + + + + ) : ( + MARKS_INFO_DEFAULT.map(data => { + return ( + + ); + }) + )} + + {scanitemdata && + scanitemdata.marksInfo.map((M, i) => { + return ( + + + + + ); + })} + + } + /> + + + ); +}; const styles = StyleSheet.create({ - container: { - marginTop: 20, - marginHorizontal: 40, - padding: 15, - borderRadius: 10 - }, - childCon: { - backgroundColor: 'white', - borderWidth: 1, - // width:'90%' - }, - align: { - textAlign: 'center', - padding: 8, - fontFamily: monospace_FF - }, - line: { - height: 1, - // width:'80%', - backgroundColor: AppTheme.BLACK - }, - textStyle: { - fontSize: 15, - color: AppTheme.BLACK, - fontWeight: '600', - paddingHorizontal: '5%', - paddingVertical: '2%', - }, - borderStyle: { - borderWidth: 5, - margin: 5, - borderRadius: 10 - }, - nxtBtnStyle1: { - padding: 5, marginVertical: 5, height: 50,marginLeft:0,borderRadius:10 - }, - nxtBtnStyle:{marginHorizontal:20, borderRadius: 10,height: 40, width: width/1.5,padding: 5, marginTop:10 }, - buttonText: { - fontSize: 14 - } + container: { + marginTop: 20, + marginHorizontal: 40, + padding: 15, + borderRadius: 10, + }, + childCon: { + backgroundColor: 'white', + borderWidth: 1, + // width:'90%' + }, + align: { + textAlign: 'center', + padding: 8, + fontFamily: monospace_FF, + }, + line: { + height: 1, + // width:'80%', + backgroundColor: AppTheme.BLACK, + }, + textStyle: { + fontSize: 15, + color: AppTheme.BLACK, + fontWeight: '600', + paddingHorizontal: '5%', + paddingVertical: '2%', + }, + borderStyle: { + borderWidth: 5, + margin: 5, + borderRadius: 10, + }, + nxtBtnStyle1: { + padding: 5, + marginVertical: 5, + height: 50, + marginLeft: 0, + borderRadius: 10, + }, + nxtBtnStyle: { + marginHorizontal: 20, + borderRadius: 10, + height: 40, + width: width / 1.5, + padding: 5, + marginTop: 10, + }, + buttonText: { + fontSize: 14, + }, }); -const mapStateToProps = (state) => { - return { - loginData: state.loginData, - filteredData: state.filteredData.response, - scanedData: state.scanedData.response, - multiBrandingData: state.multiBrandingData.response.data, - roiData: state.roiData.response, - minimalFlag: state.minimalFlag, - } -} - -const mapDispatchToProps = (dispatch) => { - return bindActionCreators({ - APITransport: APITransport, - OcrLocalResponseAction: OcrLocalResponseAction, - dispatchCustomModalStatus: dispatchCustomModalStatus, - dispatchCustomModalMessage: dispatchCustomModalMessage, - }, dispatch) -} - -export default connect(mapStateToProps, mapDispatchToProps)(ScanStatusLocalList); - +const mapStateToProps = state => { + return { + loginData: state.loginData, + filteredData: state.filteredData.response, + scanedData: state.scanedData.response, + multiBrandingData: state.multiBrandingData.response.data, + roiData: state.roiData.response, + minimalFlag: state.minimalFlag, + }; +}; +const mapDispatchToProps = dispatch => { + return bindActionCreators( + { + APITransport: APITransport, + OcrLocalResponseAction: OcrLocalResponseAction, + dispatchCustomModalStatus: dispatchCustomModalStatus, + dispatchCustomModalMessage: dispatchCustomModalMessage, + }, + dispatch, + ); +}; +export default connect( + mapStateToProps, + mapDispatchToProps, +)(ScanStatusLocalList); diff --git a/v1.0/frontend/SaralApp/src/modules/myScanScreens/MyScanComponent.js b/v1.0/frontend/SaralApp/src/modules/myScanScreens/MyScanComponent.js index 141e16ef7..86ac3071a 100644 --- a/v1.0/frontend/SaralApp/src/modules/myScanScreens/MyScanComponent.js +++ b/v1.0/frontend/SaralApp/src/modules/myScanScreens/MyScanComponent.js @@ -30,6 +30,7 @@ import { } from '../../utils/StorageUtils'; import ButtonComponent from '../common/components/ButtonComponent'; import { + askPermissions, checkAppVersion, checkNetworkConnectivity, dispatchCustomModalMessage, @@ -60,7 +61,7 @@ import { import constants from '../../flux/actions/constants'; import {storeFactory} from '../../flux/store/store'; import DeviceInfo from 'react-native-device-info'; -import { onScanButtonClickEvent } from '../../utils/Analytics'; +import {onScanButtonClickEvent} from '../../utils/Analytics'; LogBox.ignoreAllLogs(); @@ -407,115 +408,80 @@ class MyScanComponent extends Component { this.setState({oldBrightness: brightness}); }); - if (Platform.OS !== 'ios') { - const grantedRead = await PermissionsAndroid.check( - PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE, - ); - const grantedWrite = await PermissionsAndroid.check( - PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE, - ); - const grantedCamera = await PermissionsAndroid.check( - PermissionsAndroid.PERMISSIONS.CAMERA, - ); + let permissionStatus = await askPermissions(); - if (grantedRead && grantedWrite && grantedCamera) { - let hasEmpty = this.props.roiData.hasOwnProperty('config') - ? true - : this.props.roiData.length > 0; + if (permissionStatus == 'granted') { + let hasEmpty = this.props.roiData.hasOwnProperty('config') + ? true + : this.props.roiData.length > 0; + if (this.props.minimalFlag && this.state.roiIndex != -1) { + if (!hasEmpty) { + this.callCustomModal( + Strings.message_text, + Strings.roi_cache_not_available, + false, + false, + ); + } else { + this.openCameraActivity(); + onScanButtonClickEvent(this.props.loginData.data.school.schoolId); + } + } else if (!this.props.minimalFlag) { + if ( + this.props.loginData.data.school.hasOwnProperty('offlineMode') && + this.props.loginData.data.school.offlineMode && + hasEmpty + ) { + this.openCameraActivity(); + onScanButtonClickEvent(this.props.loginData.data.school.schoolId); + } else if ( + this.props.loginData.data.school.hasOwnProperty('offlineMode') == + false || + (this.props.loginData.data.school.offlineMode == false && hasEmpty) + ) { + this.openCameraActivity(); + onScanButtonClickEvent(this.props.loginData.data.school.schoolId); + } else { + this.callCustomModal( + Strings.message_text, + Strings.roi_cache_not_available, + false, + false, + ); + } + } + } else { + let permissionStatus = await askPermissions(); + if (permissionStatus == 'granted') { if (this.props.minimalFlag && this.state.roiIndex != -1) { - if (!hasEmpty) { - this.callCustomModal( - Strings.message_text, - Strings.roi_cache_not_available, - false, - false, - ); - } else { - this.openCameraActivity(); - onScanButtonClickEvent(this.props.loginData.data.school.schoolId) - } + this.openCameraActivity(); + onScanButtonClickEvent(this.props.loginData.data.school.schoolId); } else if (!this.props.minimalFlag) { - if ( - this.props.loginData.data.school.hasOwnProperty('offlineMode') && - this.props.loginData.data.school.offlineMode && - hasEmpty - ) { - this.openCameraActivity(); - onScanButtonClickEvent(this.props.loginData.data.school.schoolId) - } else if ( - this.props.loginData.data.school.hasOwnProperty('offlineMode') == - false || - (this.props.loginData.data.school.offlineMode == false && - hasEmpty) - ) { - this.openCameraActivity(); - onScanButtonClickEvent(this.props.loginData.data.school.schoolId) - } else { - this.callCustomModal( - Strings.message_text, - Strings.roi_cache_not_available, - false, - false, - ); - } + this.openCameraActivity(); + onScanButtonClickEvent(this.props.loginData.data.school.schoolId); + } else { + this.callCustomModal( + Strings.message_text, + Strings.please_select_roi_layout, + false, + false, + ); } + } else if (permissionStatus == 'blocked') { + Alert.alert( + Strings.message_text, + Strings.give_permission_from_settings, + [{text: Strings.ok_text, style: 'cancel'}], + ); } else { - PermissionsAndroid.requestMultiple( + Alert.alert( + Strings.message_text, + Strings.please_give_permission_to_use_app, [ - PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE, - PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE, - PermissionsAndroid.PERMISSIONS.CAMERA, + {text: Strings.cancel_text, style: 'cancel'}, + {text: Strings.ok_text, onPress: () => this.onScanClick()}, ], - { - title: Strings.permission_text, - message: Strings.app_needs_permission, - }, - ).then(permRes => { - if ( - permRes['android.permission.READ_EXTERNAL_STORAGE'] === - PermissionsAndroid.RESULTS.GRANTED && - permRes['android.permission.WRITE_EXTERNAL_STORAGE'] === - PermissionsAndroid.RESULTS.GRANTED && - permRes['android.permission.CAMERA'] === - PermissionsAndroid.RESULTS.GRANTED - ) { - if (this.props.minimalFlag && this.state.roiIndex != -1) { - this.openCameraActivity(); - onScanButtonClickEvent(this.props.loginData.data.school.schoolId) - } else if (!this.props.minimalFlag) { - this.openCameraActivity(); - onScanButtonClickEvent(this.props.loginData.data.school.schoolId) - } else { - this.callCustomModal( - Strings.message_text, - Strings.please_select_roi_layout, - false, - false, - ); - } - } else if ( - permRes['android.permission.READ_EXTERNAL_STORAGE'] == - 'never_ask_again' || - permRes['android.permission.WRITE_EXTERNAL_STORAGE'] == - 'never_ask_again' || - permRes['android.permission.CAMERA'] == 'never_ask_again' - ) { - Alert.alert( - Strings.message_text, - Strings.give_permission_from_settings, - [{text: Strings.ok_text, style: 'cancel'}], - ); - } else { - Alert.alert( - Strings.message_text, - Strings.please_give_permission_to_use_app, - [ - {text: Strings.cancel_text, style: 'cancel'}, - {text: Strings.ok_text, onPress: () => this.onScanClick()}, - ], - ); - } - }); + ); } } } @@ -523,18 +489,9 @@ class MyScanComponent extends Component { openCameraActivity = async () => { try { - const granted = await PermissionsAndroid.request( - PermissionsAndroid.PERMISSIONS.CAMERA, - { - title: 'SaralSDK Demo App Camera Permission', - message: - 'SaralSDK Demo application require camera to perform scanning operation ', - buttonNeutral: 'Ask Me Later', - buttonNegative: 'Cancel', - buttonPositive: 'OK', - }, - ); - if (granted === PermissionsAndroid.RESULTS.GRANTED) { + let permissionStatus = await askPermissions(); + + if (permissionStatus == 'granted') { this.setState({ activityOpen: true, }); diff --git a/v1.0/frontend/SaralApp/src/utils/CommonUtils.js b/v1.0/frontend/SaralApp/src/utils/CommonUtils.js index 8403ac291..8666ae851 100644 --- a/v1.0/frontend/SaralApp/src/utils/CommonUtils.js +++ b/v1.0/frontend/SaralApp/src/utils/CommonUtils.js @@ -1,154 +1,240 @@ -import moment from 'moment' -import C from '../flux/actions/constants' -import NetInfo from "@react-native-community/netinfo"; -import { getLoginData } from './StorageUtils'; +import moment from 'moment'; +import C from '../flux/actions/constants'; +import NetInfo from '@react-native-community/netinfo'; +import {getLoginData} from './StorageUtils'; import checkVersion from 'react-native-store-version'; -import { apkURL, apkVersionId } from '../configs/config'; -import { Alert, BackHandler, Linking } from 'react-native'; -import { collectErrorLogs } from '../modules/CollectErrorLogs'; - - -export const validateToken = (expireTime) => { - let expireArr = expireTime.replace(/-/g, '/').split('/') - let formattedExpireTime = expireArr[1] + '/' + expireArr[0] + '/' + expireArr[2] - - let tokenExpireTime = moment(new Date(Date.parse(formattedExpireTime))) - let currentTime = moment() - if (currentTime > tokenExpireTime) { - return false +import {apkURL, apkVersionId} from '../configs/config'; +import { + Alert, + BackHandler, + Linking, + PermissionsAndroid, + Platform, +} from 'react-native'; +import {collectErrorLogs} from '../modules/CollectErrorLogs'; + +import { + checkMultiple, + PERMISSIONS, + RESULTS, + requestMultiple, + PermissionStatus, +} from 'react-native-permissions'; + +export const validateToken = expireTime => { + let expireArr = expireTime.replace(/-/g, '/').split('/'); + let formattedExpireTime = + expireArr[1] + '/' + expireArr[0] + '/' + expireArr[2]; + + let tokenExpireTime = moment(new Date(Date.parse(formattedExpireTime))); + let currentTime = moment(); + if (currentTime > tokenExpireTime) { + return false; + } else { + return true; + } +}; + +export const cryptoText = text => { + let strTempChar = ''; + let encText = ''; + for (let i = 0; i < text.length; i++) { + let char = text.charAt(i); + if (char.charCodeAt(0) < 128) { + strTempChar = char.charCodeAt(0) + 128; + } else if (char.charCodeAt(0) > 128) { + strTempChar = char.charCodeAt(0) - 128; } - else { - return true - } -} - -export const cryptoText = (text) => { - let strTempChar = '' - let encText = '' - for (let i = 0; i < text.length; i++) { - let char = text.charAt(i) - if (char.charCodeAt(0) < 128) { - strTempChar = char.charCodeAt(0) + 128 - } - else if (char.charCodeAt(0) > 128) { - strTempChar = char.charCodeAt(0) - 128 - } - encText += String.fromCharCode(strTempChar) - } - return encText -} - -export const dispatchCustomModalMessage = (value) => { - return ({ - type: C.CUSTOM_MODAL_MESSAGE, - payload: value - }) -} - -export const dispatchCustomModalStatus = (value) => { - return ({ - type: C.CUSTOM_MODAL_STATUS, - payload: value - }) -} + encText += String.fromCharCode(strTempChar); + } + return encText; +}; + +export const dispatchCustomModalMessage = value => { + return { + type: C.CUSTOM_MODAL_MESSAGE, + payload: value, + }; +}; + +export const dispatchCustomModalStatus = value => { + return { + type: C.CUSTOM_MODAL_STATUS, + payload: value, + }; +}; export const checkNetworkConnectivity = async () => { - let subscribe = false - await NetInfo.fetch().then(state => { - subscribe = state.isConnected; - }); - return subscribe -} + let subscribe = false; + await NetInfo.fetch().then(state => { + subscribe = state.isConnected; + }); + return subscribe; +}; export const checkAppVersion = async () => { - let hasAppForceEnable = await getLoginData(); - let hasUpdate = false; - if (hasAppForceEnable != null) { - if (hasAppForceEnable.school.hasOwnProperty("isAppForceUpdateEnabled") && hasAppForceEnable.school.isAppForceUpdateEnabled) { - try { - const check = await checkVersion({ - version: apkVersionId, // app local version - iosStoreURL: 'ios app store url', - androidStoreURL: apkURL, - country: 'IN', // default value is 'jp' - }); - - if (check.result == 'new') { - hasUpdate = true - Alert.alert( - 'Please Update', - 'You will have to update your app to the latest version to continue using.', - [ - { - text : 'Update', - onPress: () => { - BackHandler.exitApp(); - Linking.openURL(apkURL) - }, - }, - ], - {cancelable: false} - ); - } - } catch (error) { - collectErrorLogs("CommonUtils.js","checkAppVersion MEthod", apkURL, error, false) - hasUpdate = false - } + let hasAppForceEnable = await getLoginData(); + let hasUpdate = false; + if (hasAppForceEnable != null) { + if ( + hasAppForceEnable.school.hasOwnProperty('isAppForceUpdateEnabled') && + hasAppForceEnable.school.isAppForceUpdateEnabled + ) { + try { + const check = await checkVersion({ + version: apkVersionId, // app local version + iosStoreURL: 'ios app store url', + androidStoreURL: apkURL, + country: 'IN', // default value is 'jp' + }); + + if (check.result == 'new') { + hasUpdate = true; + Alert.alert( + 'Please Update', + 'You will have to update your app to the latest version to continue using.', + [ + { + text: 'Update', + onPress: () => { + BackHandler.exitApp(); + Linking.openURL(apkURL); + }, + }, + ], + {cancelable: false}, + ); } + } catch (error) { + collectErrorLogs( + 'CommonUtils.js', + 'checkAppVersion MEthod', + apkURL, + error, + false, + ); + hasUpdate = false; + } } - - return hasUpdate; -} - + } + + return hasUpdate; +}; + +export const askPermissions = async () => { + let permissionStatus = ''; + + if (Platform.OS == 'android' && Platform.Version < 33) { + permissionStatus = await requestMultiple([ + PERMISSIONS.ANDROID.CAMERA, + PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE, + PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE, + ]); + + if ( + permissionStatus['android.permission.CAMERA'] == 'granted' && + permissionStatus['android.permission.READ_EXTERNAL_STORAGE'] == + 'granted' && + permissionStatus['android.permission.WRITE_EXTERNAL_STORAGE'] == 'granted' + ) { + return 'granted'; + } else if ( + (permissionStatus['android.permission.CAMERA'] == 'denied' || + permissionStatus['android.permission.CAMERA'] == 'blocked') && + (permissionStatus['android.permission.READ_EXTERNAL_STORAGE'] == + 'denied' || + permissionStatus['android.permission.READ_EXTERNAL_STORAGE'] == + 'blocked') && + (permissionStatus['android.permission.WRITE_EXTERNAL_STORAGE'] == + 'denied' || + permissionStatus['android.permission.WRITE_EXTERNAL_STORAGE'] == + 'blocked') + ) { + return 'blocked'; + } + } else if (Platform.OS == 'android' && Platform.Version >= 33) { + permissionStatus = await requestMultiple([ + PERMISSIONS.ANDROID.CAMERA, + PERMISSIONS.ANDROID.READ_MEDIA_IMAGES, + PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE, + PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE, + ]); + } + if ( + permissionStatus['android.permission.CAMERA'] == 'granted' && + permissionStatus['android.permission.READ_MEDIA_IMAGES'] == 'granted' + ) { + return 'granted'; + } else if ( + (permissionStatus['android.permission.CAMERA'] == 'denied' || + permissionStatus['android.permission.CAMERA'] == 'blocked') && + (permissionStatus['android.permission.READ_MEDIA_IMAGES'] == 'denied' || + permissionStatus['android.permission.READ_MEDIA_IMAGES'] == 'blocked') + ) { + return 'blocked'; + } + return 'blocked'; +}; export const SCAN_TYPES = { - SAT_TYPE: 'sat', - PAT_TYPE: 'pat' -} + SAT_TYPE: 'sat', + PAT_TYPE: 'pat', +}; export const MARKS_INFO = { - "sr_no":"Sr No", - "questionId":"question Id", - "obtainedMarks":"obtained Marks", - "predictedMarks":"predicted Marks" -} + sr_no: 'Sr No', + questionId: 'question Id', + obtainedMarks: 'obtained Marks', + predictedMarks: 'predicted Marks', +}; export const MARKS_INFO_DEFAULT = [ - // "Sr No", - "Question", - "Answer", - // "Predicted Marks" -] + // "Sr No", + 'Question', + 'Answer', + // "Predicted Marks" +]; export const TABLE_HEADER = [ - // "Sr No", - "Questions", "Answer" -] + // "Sr No", + 'Questions', + 'Answer', +]; export const defaultHeaderTable = { - "id": "Identifier", - // "sr_no": "Sr No", - "questions":"Questions", - "marks":"Answer" -} + id: 'Identifier', + // "sr_no": "Sr No", + questions: 'Questions', + marks: 'Answer', +}; export const TABLE_HEADER_WITH_TAG = [ - // "Sr No", - "Questions", "Answer", "Tags" -] + // "Sr No", + 'Questions', + 'Answer', + 'Tags', +]; export const Exam_QuestionHeader = [ - "Question Id", "Indicator Title", "Question Marks" -] + 'Question Id', + 'Indicator Title', + 'Question Marks', +]; -export const neglectData = ["ROLLNUMBER", "STUDENTID", "MARKS_OBTAINED", "MAX_MARKS", "ROLLID"]; +export const neglectData = [ + 'ROLLNUMBER', + 'STUDENTID', + 'MARKS_OBTAINED', + 'MAX_MARKS', + 'ROLLID', +]; -export const student_ID = ["ROLLNUMBER", "STUDENTID", "ROLLID"] +export const student_ID = ['ROLLNUMBER', 'STUDENTID', 'ROLLID']; -export const multipleStudent = ["ROLLNUMBERID"] +export const multipleStudent = ['ROLLNUMBERID']; -export const CELL_OMR = "CELL_OMR" +export const CELL_OMR = 'CELL_OMR'; -export const studentLimitSaveInLocal = 500 +export const studentLimitSaveInLocal = 500; -export const monospace_FF = 'sans-serif-medium' \ No newline at end of file +export const monospace_FF = 'sans-serif-medium'; From c9a6e7c5fd06a012512e74950a46ffa0abfd7afa Mon Sep 17 00:00:00 2001 From: rsankagi Date: Thu, 7 Sep 2023 20:04:45 +0530 Subject: [PATCH 42/56] Firebase integration --- v1.0/frontend/SaralApp/android/app/build.gradle | 2 +- v1.0/frontend/SaralApp/android/app/google-services.json | 4 ++-- v1.0/frontend/SaralApp/saralAppInfo.json | 2 +- v1.0/frontend/SaralApp/src/configs/config.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/v1.0/frontend/SaralApp/android/app/build.gradle b/v1.0/frontend/SaralApp/android/app/build.gradle index 0fcae9321..aac2dff8e 100644 --- a/v1.0/frontend/SaralApp/android/app/build.gradle +++ b/v1.0/frontend/SaralApp/android/app/build.gradle @@ -134,7 +134,7 @@ android { applicationId "com.up_saralapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 11 + versionCode 13 versionName "1.3" } configurations.all { diff --git a/v1.0/frontend/SaralApp/android/app/google-services.json b/v1.0/frontend/SaralApp/android/app/google-services.json index 1ad82cbf0..3ee15114b 100644 --- a/v1.0/frontend/SaralApp/android/app/google-services.json +++ b/v1.0/frontend/SaralApp/android/app/google-services.json @@ -36,7 +36,7 @@ }, { "client_info": { - "mobilesdk_app_id": "1:912340222436:android:9364787c68b659d49c47f1", + "mobilesdk_app_id": "1:912340222436:android:2045e6a671f206e99c47f1", "android_client_info": { "package_name": "com.up_saralapp" } @@ -65,4 +65,4 @@ } ], "configuration_version": "1" -} \ No newline at end of file +} diff --git a/v1.0/frontend/SaralApp/saralAppInfo.json b/v1.0/frontend/SaralApp/saralAppInfo.json index 39364c137..44b709ef6 100644 --- a/v1.0/frontend/SaralApp/saralAppInfo.json +++ b/v1.0/frontend/SaralApp/saralAppInfo.json @@ -1,5 +1,5 @@ { - "saral.release.version": "v1.6.0", + "saral.release.version": "v1.6.1", "saral.info": "Sunbird Saral is a OCR plus mobile application to physitize data from physical layout.", "saral.documentation.link": "https://saral.sunbird.org/", "release.link": "https://saral.sunbird.org/engage/releases" diff --git a/v1.0/frontend/SaralApp/src/configs/config.js b/v1.0/frontend/SaralApp/src/configs/config.js index 9cf95cdb0..c92de5905 100644 --- a/v1.0/frontend/SaralApp/src/configs/config.js +++ b/v1.0/frontend/SaralApp/src/configs/config.js @@ -4,7 +4,7 @@ const configs = { export default configs; -export const apkVersion = '1.6.0'; +export const apkVersion = '1.6.1'; export const apkVersionId = '1'; export const apkURL = 'https://play.google.com/store/apps/details?id=com.up_saralapp'; From d7402d6769b99ef7ca82afadb3f9a797ebce1159 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Fri, 8 Sep 2023 12:49:55 +0530 Subject: [PATCH 43/56] version update --- v1.0/frontend/SaralApp/android/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v1.0/frontend/SaralApp/android/app/build.gradle b/v1.0/frontend/SaralApp/android/app/build.gradle index aac2dff8e..b619b0c33 100644 --- a/v1.0/frontend/SaralApp/android/app/build.gradle +++ b/v1.0/frontend/SaralApp/android/app/build.gradle @@ -134,7 +134,7 @@ android { applicationId "com.up_saralapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 13 + versionCode 18 versionName "1.3" } configurations.all { From 15578ec35e955ea483a6099e3cf472b752cecfa7 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Wed, 13 Sep 2023 13:12:06 +0530 Subject: [PATCH 44/56] Create terraform installation --- terraform installation | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 terraform installation diff --git a/terraform installation b/terraform installation new file mode 100644 index 000000000..d493e6c17 --- /dev/null +++ b/terraform installation @@ -0,0 +1,12 @@ +1. First, install the required dependencies using the following command: + apt-get install wget curl unzip software-properties-common gnupg2 -y +2. Next, download and add the HashiCorp signed gpg keys to your system: + curl -fsSL https://apt.releases.hashicorp.com/gpg | apt-key add - +3. Next, add the HashiCorp repository to the APT using the following command: + apt-add-repository "deb [arch=$(dpkg --print-architecture)] https://apt.releases.hashicorp.com $(lsb_release -cs) main" +4. Next, update the repository using the command given below: + apt-get update -y +5. Finally, install the Terraform by running the following command: + apt-get install terraform -y +6. Once the Terraform has been installed, verify it using the following command: + terraform -v From 13d12431f7171171c61f37eaeba2ce5190a80b24 Mon Sep 17 00:00:00 2001 From: vky25 <93203895+vky25@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:22:16 +0530 Subject: [PATCH 45/56] Create hosts --- .../inventory/inventory/hosts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Ansible-roles/mongodb-shard-cluster/inventory/inventory/hosts diff --git a/Ansible-roles/mongodb-shard-cluster/inventory/inventory/hosts b/Ansible-roles/mongodb-shard-cluster/inventory/inventory/hosts new file mode 100644 index 000000000..13634cb67 --- /dev/null +++ b/Ansible-roles/mongodb-shard-cluster/inventory/inventory/hosts @@ -0,0 +1,18 @@ + +[jenkins_hosts] +localhost + +[mongo_configs] +#172.17.0.8 new_hostname=mongo-shard-configs-1 mongoc_private_ip=172.17.0.8 +#172.17.0.9 new_hostname=mongo-shard-configs-2 mongoc_private_ip=172.17.0.9 +[mongo_mongos] +#172.17.0.10 new_hostname=mongo-shard-mongos-1 mongo_private_ip=172.17.0.10 +#172.17.0.11 new_hostname=mongo-shard-mongos-2 mongo_private_ip=172.17.0.11 +[mongo_shard] +#this has to setup for 3 times, each time only two servers should active. +#172.17.0.12 mongod_port=27017 new_hostname=mongo-shard-data-1 mongo_private_ip=172.17.0.12 +#172.17.0.13 mongod_port=27017 new_hostname=mongo-shard-data-2 mongo_private_ip=172.17.0.13 +#172.17.0.14 mongod_port=27017 new_hostname=mongo-shard-data-3 mongo_private_ip=172.17.0.14 +#172.17.0.15 mongod_port=27017 new_hostname=mongo-shard-data-4 mongo_private_ip=172.17.0.15 +#172.17.0.16 mongod_port=27017 new_hostname=mongo-shard-data-5 mongo_private_ip=172.17.0.16 +#172.17.0.17 mongod_port=27017 new_hostname=mongo-shard-data-6 mongo_private_ip=172.17.0.17 From 7985509f7bfd309b300c6551518c93ef1fe09da4 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Tue, 19 Sep 2023 11:31:02 +0530 Subject: [PATCH 46/56] Replacing the up name to com.saralapp --- v1.0/frontend/SaralApp/android/app/BUCK | 4 ++-- v1.0/frontend/SaralApp/android/app/build.gradle | 2 +- v1.0/frontend/SaralApp/android/app/google-services.json | 2 +- v1.0/frontend/SaralApp/android/app/proguard-rules.pro | 2 +- .../SaralApp/android/app/release/output-metadata.json | 4 ++-- .../app/src/debug/java/com/saralapp/ReactNativeFlipper.java | 2 +- .../SaralApp/android/app/src/main/AndroidManifest.xml | 2 +- .../android/app/src/main/java/com/saralapp/MainActivity.java | 2 +- .../app/src/main/java/com/saralapp/MainApplication.java | 4 ++-- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/v1.0/frontend/SaralApp/android/app/BUCK b/v1.0/frontend/SaralApp/android/app/BUCK index 83e830c0d..4b1293208 100644 --- a/v1.0/frontend/SaralApp/android/app/BUCK +++ b/v1.0/frontend/SaralApp/android/app/BUCK @@ -35,12 +35,12 @@ android_library( android_build_config( name = "build_config", - package = "com.up_saralapp", + package = "com.saralapp", ) android_resource( name = "res", - package = "com.up_saralapp", + package = "com.saralapp", res = "src/main/res", ) diff --git a/v1.0/frontend/SaralApp/android/app/build.gradle b/v1.0/frontend/SaralApp/android/app/build.gradle index b619b0c33..70a4258e0 100644 --- a/v1.0/frontend/SaralApp/android/app/build.gradle +++ b/v1.0/frontend/SaralApp/android/app/build.gradle @@ -131,7 +131,7 @@ android { compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { - applicationId "com.up_saralapp" + applicationId "com.saralapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 18 diff --git a/v1.0/frontend/SaralApp/android/app/google-services.json b/v1.0/frontend/SaralApp/android/app/google-services.json index 3ee15114b..b5a1aaf17 100644 --- a/v1.0/frontend/SaralApp/android/app/google-services.json +++ b/v1.0/frontend/SaralApp/android/app/google-services.json @@ -38,7 +38,7 @@ "client_info": { "mobilesdk_app_id": "1:912340222436:android:2045e6a671f206e99c47f1", "android_client_info": { - "package_name": "com.up_saralapp" + "package_name": "com.saralapp" } }, "oauth_client": [ diff --git a/v1.0/frontend/SaralApp/android/app/proguard-rules.pro b/v1.0/frontend/SaralApp/android/app/proguard-rules.pro index a408303fd..de3fdc7dc 100644 --- a/v1.0/frontend/SaralApp/android/app/proguard-rules.pro +++ b/v1.0/frontend/SaralApp/android/app/proguard-rules.pro @@ -9,7 +9,7 @@ # Add any project specific keep options here: --keep class com.up_saralapp.MainActivity +-keep class com.saralapp.MainActivity -keep public class * implements com.bumptech.glide.module.GlideModule diff --git a/v1.0/frontend/SaralApp/android/app/release/output-metadata.json b/v1.0/frontend/SaralApp/android/app/release/output-metadata.json index bf2053159..b62303119 100644 --- a/v1.0/frontend/SaralApp/android/app/release/output-metadata.json +++ b/v1.0/frontend/SaralApp/android/app/release/output-metadata.json @@ -4,7 +4,7 @@ "type": "APK", "kind": "Directory" }, - "applicationId": "com.up_saralapp", + "applicationId": "com.saralapp", "variantName": "release", "elements": [ { @@ -15,4 +15,4 @@ "outputFile": "app-release.apk" } ] -} \ No newline at end of file +} diff --git a/v1.0/frontend/SaralApp/android/app/src/debug/java/com/saralapp/ReactNativeFlipper.java b/v1.0/frontend/SaralApp/android/app/src/debug/java/com/saralapp/ReactNativeFlipper.java index 636bedd6b..33fa82904 100644 --- a/v1.0/frontend/SaralApp/android/app/src/debug/java/com/saralapp/ReactNativeFlipper.java +++ b/v1.0/frontend/SaralApp/android/app/src/debug/java/com/saralapp/ReactNativeFlipper.java @@ -4,7 +4,7 @@ *

This source code is licensed under the MIT license found in the LICENSE file in the root * directory of this source tree. */ -package com.up_saralapp; +package com.saralapp; import android.content.Context; import com.facebook.flipper.android.AndroidFlipperClient; diff --git a/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml b/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml index f9a77bdba..1ebe34fdc 100644 --- a/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml +++ b/v1.0/frontend/SaralApp/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.saralapp"> diff --git a/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainActivity.java b/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainActivity.java index cff3b61a4..5cb628fcd 100644 --- a/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainActivity.java +++ b/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainActivity.java @@ -1,4 +1,4 @@ -package com.up_saralapp; +package com.saralapp; import com.facebook.react.ReactActivity; import com.facebook.react.ReactActivityDelegate; diff --git a/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainApplication.java b/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainApplication.java index e25f838d4..addbff730 100644 --- a/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainApplication.java +++ b/v1.0/frontend/SaralApp/android/app/src/main/java/com/saralapp/MainApplication.java @@ -1,4 +1,4 @@ -package com.up_saralapp; +package com.saralapp; import android.app.Application; import android.content.Context; @@ -67,7 +67,7 @@ private static void initializeFlipper( We use reflection here to pick up the class that initializes Flipper, since Flipper library is not available in release mode */ - Class aClass = Class.forName("com.up_saralapp.ReactNativeFlipper"); + Class aClass = Class.forName("com.saralapp.ReactNativeFlipper"); aClass .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) .invoke(null, context, reactInstanceManager); From 64c2e5705822c46b0d74af1bdb7257181cd8bed4 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Tue, 19 Sep 2023 11:36:31 +0530 Subject: [PATCH 47/56] version update --- v1.0/frontend/SaralApp/src/configs/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v1.0/frontend/SaralApp/src/configs/config.js b/v1.0/frontend/SaralApp/src/configs/config.js index c92de5905..90a511e22 100644 --- a/v1.0/frontend/SaralApp/src/configs/config.js +++ b/v1.0/frontend/SaralApp/src/configs/config.js @@ -5,6 +5,6 @@ const configs = { export default configs; export const apkVersion = '1.6.1'; -export const apkVersionId = '1'; +export const apkVersionId = '1.3'; export const apkURL = 'https://play.google.com/store/apps/details?id=com.up_saralapp'; From 40b1edb3103219bb25a3728e7ab475ff90386144 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Tue, 19 Sep 2023 12:37:51 +0530 Subject: [PATCH 48/56] removing UP backend url --- v1.0/frontend/SaralApp/src/configs/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v1.0/frontend/SaralApp/src/configs/config.js b/v1.0/frontend/SaralApp/src/configs/config.js index 90a511e22..8b5671cfb 100644 --- a/v1.0/frontend/SaralApp/src/configs/config.js +++ b/v1.0/frontend/SaralApp/src/configs/config.js @@ -1,5 +1,5 @@ const configs = { - BASE_URL: 'https://saralapp.prernaup.in/api', + BASE_URL: 'TO_BE_REPLACED', }; export default configs; From aafd4a3167287c358a23c1ddc4f3f6e4114ec7e6 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Fri, 22 Sep 2023 18:54:03 +0530 Subject: [PATCH 49/56] SS-548 absent persent issue --- .../myScanScreens/SelectDetailsComponent.js | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/v1.0/frontend/SaralApp/src/modules/myScanScreens/SelectDetailsComponent.js b/v1.0/frontend/SaralApp/src/modules/myScanScreens/SelectDetailsComponent.js index 46a43e7d4..2a2409b9a 100644 --- a/v1.0/frontend/SaralApp/src/modules/myScanScreens/SelectDetailsComponent.js +++ b/v1.0/frontend/SaralApp/src/modules/myScanScreens/SelectDetailsComponent.js @@ -365,10 +365,11 @@ class SelectDetailsComponent extends Component { if (hasCacheData && cacheFilterData.length > 0) { this.setState({isLoading: false, calledStudentsData: true}); storeFactory.dispatch( - this.dispatchStudentExamData(cacheFilterData[0].data2), + this.dispatchStudentExamData(cacheFilterData[0].data), ); this.setState({isLoading: false}); - } else if (hasNetwork) { + } + if (hasNetwork) { this.setState( { calledStudentsData: true, @@ -382,7 +383,7 @@ class SelectDetailsComponent extends Component { this.props.APITransport(apiObj); }, ); - } else { + } else if (hasCacheData == null) { this.setState({isLoading: false}); this.callCustomModal( Strings.message_text, @@ -393,6 +394,7 @@ class SelectDetailsComponent extends Component { }; dispatchStudentExamData(payload) { + console.log('payload', payload); return { type: constants.GET_STUDENTS_EXAMS_LIST, payload, @@ -618,6 +620,7 @@ class SelectDetailsComponent extends Component { }; let studentsAndExamArr = await getStudentsExamData(); + let finalStudentsAndExamArr = []; if (studentsAndExamArr != null) { studentsAndExamArr.forEach(element => { @@ -640,6 +643,7 @@ class SelectDetailsComponent extends Component { } }); finalStudentsAndExamArr.push(obj); + let studentsExamDataSaved = await setStudentsExamData( finalStudentsAndExamArr, ); @@ -702,16 +706,10 @@ class SelectDetailsComponent extends Component { e.class == selectedClass && e.section == selectedSection, ); - let hasSubject = getStudentExamCache.findIndex( - e => - e.key == loginData.data.school.schoolId && - e.class == selectedClass && - e.section == selectedSection && - e.hasOwnProperty('subject'), - ); - if (result > -1 && hasSubject == -1) { + + if (result != -1) { getStudentExamCache[result].data = studentsAndExamData; - } else if (hasSubject == -1) { + } else { let payload = { key: `${loginData.data.school.schoolId}`, class: selectedClass, @@ -721,6 +719,7 @@ class SelectDetailsComponent extends Component { }; getStudentExamCache.push(payload); } + await setRegularStudentExamApi(getStudentExamCache); } else { let payload = { @@ -1111,8 +1110,7 @@ class SelectDetailsComponent extends Component { let conditionSwitch = element.key == this.props.loginData.data.school.schoolId && element.class == this.state.selectedClass && - element.section == this.state.selectedSection && - element.subject == this.state.selectedSubject; + element.section == this.state.selectedSection; if (conditionSwitch) { return true; } @@ -1124,19 +1122,23 @@ class SelectDetailsComponent extends Component { storeFactory.dispatch( this.dispatchStudentExamData(cacheFilterData[0].data), ); - } else if (hasNetwork) { + } + if (hasNetwork) { let dataPayload = { classId: this.state.selectedClassId, section: this.state.selectedSection, - subject: this.state.selectedSubject, }; let apiObj = new GetStudentsAndExamData(dataPayload, token, deviceUniqId); + this.props.APITransport(apiObj); this.setState({ isLoading: false, isCalledStudentAndExam: true, }); - } else { + storeFactory.dispatch( + this.dispatchStudentExamData(cacheFilterData[0].data), + ); + } else if (hasCacheData == null) { this.setState({isLoading: false}); this.callCustomModal( Strings.message_text, From 36c1d6e6e15f60599d3ec42b8e2ba157e21c8828 Mon Sep 17 00:00:00 2001 From: rsankagi Date: Fri, 22 Sep 2023 18:56:46 +0530 Subject: [PATCH 50/56] removed json file from git --- .../SaralApp/android/app/google-services.json | 68 ------------------- 1 file changed, 68 deletions(-) delete mode 100644 v1.0/frontend/SaralApp/android/app/google-services.json diff --git a/v1.0/frontend/SaralApp/android/app/google-services.json b/v1.0/frontend/SaralApp/android/app/google-services.json deleted file mode 100644 index b5a1aaf17..000000000 --- a/v1.0/frontend/SaralApp/android/app/google-services.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "project_info": { - "project_number": "912340222436", - "project_id": "saralapp-457ec", - "storage_bucket": "saralapp-457ec.appspot.com" - }, - "client": [ - { - "client_info": { - "mobilesdk_app_id": "1:912340222436:android:1180783a8bca0ddc9c47f1", - "android_client_info": { - "package_name": "com.saralapp" - } - }, - "oauth_client": [ - { - "client_id": "912340222436-aln8c9bmcl7pnud4um2j021kfoofgmtr.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyClhJNMvrePt8McJn2DOOGUVUBm9MOctgw" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "912340222436-aln8c9bmcl7pnud4um2j021kfoofgmtr.apps.googleusercontent.com", - "client_type": 3 - } - ] - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:912340222436:android:2045e6a671f206e99c47f1", - "android_client_info": { - "package_name": "com.saralapp" - } - }, - "oauth_client": [ - { - "client_id": "912340222436-aln8c9bmcl7pnud4um2j021kfoofgmtr.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyClhJNMvrePt8McJn2DOOGUVUBm9MOctgw" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "912340222436-aln8c9bmcl7pnud4um2j021kfoofgmtr.apps.googleusercontent.com", - "client_type": 3 - } - ] - } - } - } - ], - "configuration_version": "1" -} From 7906ff89cf528e82f06ce0fb8af4b8a6f1993b32 Mon Sep 17 00:00:00 2001 From: sanjay-v46 Date: Wed, 27 Sep 2023 09:24:59 +0530 Subject: [PATCH 51/56] update test coverage and code cleanup --- Jenkinsfile-prod | 2 +- v1.0/backend/output/coverage/clover.xml | 427 +++++++---- .../output/coverage/coverage-final.json | 12 +- .../controller/brandController.js.html | 108 ++- .../lcov-report/controller/index.html | 86 +-- .../controller/marksController.js.html | 159 ++-- .../controller/roiController.js.html | 65 +- .../controller/schoolController.js.html | 140 +++- .../controller/studentController.js.html | 179 +++-- .../output/coverage/lcov-report/index.html | 56 +- .../lcov-report/middleware/helper.js.html | 278 ++++++- .../lcov-report/middleware/index.html | 34 +- v1.0/backend/output/coverage/lcov.info | 705 +++++++++++------- v1.0/backend/src/models/marks.js | 4 +- 14 files changed, 1519 insertions(+), 736 deletions(-) diff --git a/Jenkinsfile-prod b/Jenkinsfile-prod index 1ca31f5d3..74b484e37 100644 --- a/Jenkinsfile-prod +++ b/Jenkinsfile-prod @@ -5,7 +5,7 @@ pipeline { stages{ stage ('checkout') { steps { - git branch: 'feature/performanceimprovement-v2', url: 'https://github.com/Sunbird-Saral/Project-Saral.git' + git branch: 'feature/v1-develop', url: 'https://github.com/Sunbird-Saral/Project-Saral.git' } } diff --git a/v1.0/backend/output/coverage/clover.xml b/v1.0/backend/output/coverage/clover.xml index a159dff23..774f0a663 100644 --- a/v1.0/backend/output/coverage/clover.xml +++ b/v1.0/backend/output/coverage/clover.xml @@ -1,36 +1,57 @@ - - - + + + - - - + + + - - + + - - - - - - + + + + + + + + + - - - - - - - + + + + + + + + - + + + + + + + + + + + + + + + + + + - - + + @@ -38,38 +59,49 @@ - - + + - + - - - - + + + + - + + - - - - + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + @@ -95,36 +127,52 @@ - + - + + + + + + - - + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - + + @@ -132,108 +180,177 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/v1.0/backend/output/coverage/coverage-final.json b/v1.0/backend/output/coverage/coverage-final.json index 407157b94..316779aa9 100644 --- a/v1.0/backend/output/coverage/coverage-final.json +++ b/v1.0/backend/output/coverage/coverage-final.json @@ -1,7 +1,7 @@ -{"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\controller\\brandController.js": {"path":"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\controller\\brandController.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":43}},"1":{"start":{"line":2,"column":15},"end":{"line":2,"column":41}},"2":{"start":{"line":5,"column":0},"end":{"line":33,"column":1}},"3":{"start":{"line":6,"column":4},"end":{"line":32,"column":5}},"4":{"start":{"line":7,"column":23},"end":{"line":7,"column":109}},"5":{"start":{"line":9,"column":22},"end":{"line":9,"column":186}},"6":{"start":{"line":11,"column":8},"end":{"line":26,"column":9}},"7":{"start":{"line":12,"column":12},"end":{"line":12,"column":39}},"8":{"start":{"line":14,"column":33},"end":{"line":14,"column":237}},"9":{"start":{"line":16,"column":12},"end":{"line":25,"column":13}},"10":{"start":{"line":17,"column":32},"end":{"line":17,"column":47}},"11":{"start":{"line":18,"column":16},"end":{"line":20,"column":19}},"12":{"start":{"line":22,"column":16},"end":{"line":24,"column":18}},"13":{"start":{"line":29,"column":8},"end":{"line":31,"column":11}},"14":{"start":{"line":35,"column":0},"end":{"line":53,"column":1}},"15":{"start":{"line":36,"column":4},"end":{"line":52,"column":5}},"16":{"start":{"line":37,"column":22},"end":{"line":37,"column":231}},"17":{"start":{"line":38,"column":8},"end":{"line":46,"column":9}},"18":{"start":{"line":39,"column":28},"end":{"line":39,"column":36}},"19":{"start":{"line":40,"column":12},"end":{"line":40,"column":50}},"20":{"start":{"line":43,"column":12},"end":{"line":45,"column":14}},"21":{"start":{"line":49,"column":8},"end":{"line":51,"column":11}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":25},"end":{"line":5,"column":26}},"loc":{"start":{"line":5,"column":51},"end":{"line":33,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":35,"column":32},"end":{"line":35,"column":33}},"loc":{"start":{"line":35,"column":58},"end":{"line":53,"column":1}},"line":35}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":8},"end":{"line":26,"column":9}},"type":"if","locations":[{"start":{"line":11,"column":8},"end":{"line":26,"column":9}},{"start":{"line":13,"column":15},"end":{"line":26,"column":9}}],"line":11},"1":{"loc":{"start":{"line":11,"column":12},"end":{"line":11,"column":45}},"type":"binary-expr","locations":[{"start":{"line":11,"column":12},"end":{"line":11,"column":17}},{"start":{"line":11,"column":21},"end":{"line":11,"column":45}}],"line":11},"2":{"loc":{"start":{"line":16,"column":12},"end":{"line":25,"column":13}},"type":"if","locations":[{"start":{"line":16,"column":12},"end":{"line":25,"column":13}},{"start":{"line":21,"column":19},"end":{"line":25,"column":13}}],"line":16},"3":{"loc":{"start":{"line":16,"column":16},"end":{"line":16,"column":51}},"type":"binary-expr","locations":[{"start":{"line":16,"column":16},"end":{"line":16,"column":28}},{"start":{"line":16,"column":32},"end":{"line":16,"column":51}}],"line":16},"4":{"loc":{"start":{"line":38,"column":8},"end":{"line":46,"column":9}},"type":"if","locations":[{"start":{"line":38,"column":8},"end":{"line":46,"column":9}},{"start":{"line":42,"column":15},"end":{"line":46,"column":9}}],"line":38}},"s":{"0":2,"1":2,"2":2,"3":3,"4":3,"5":3,"6":3,"7":1,"8":2,"9":2,"10":1,"11":1,"12":1,"13":0,"14":2,"15":2,"16":2,"17":2,"18":1,"19":1,"20":0,"21":1},"f":{"0":3,"1":2},"b":{"0":[1,2],"1":[3,1],"2":[1,1],"3":[2,1],"4":[1,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"528f5650e4645d9b775cff96c3ee55a1d132307a"} -,"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\controller\\marksController.js": {"path":"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\controller\\marksController.js","statementMap":{"0":{"start":{"line":1,"column":14},"end":{"line":1,"column":40}},"1":{"start":{"line":2,"column":14},"end":{"line":2,"column":40}},"2":{"start":{"line":3,"column":15},"end":{"line":3,"column":46}},"3":{"start":{"line":4,"column":25},"end":{"line":4,"column":56}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":25}},"5":{"start":{"line":6,"column":15},"end":{"line":6,"column":43}},"6":{"start":{"line":7,"column":17},"end":{"line":7,"column":36}},"7":{"start":{"line":8,"column":18},"end":{"line":8,"column":40}},"8":{"start":{"line":10,"column":0},"end":{"line":89,"column":1}},"9":{"start":{"line":11,"column":18},"end":{"line":11,"column":20}},"10":{"start":{"line":13,"column":4},"end":{"line":15,"column":5}},"11":{"start":{"line":17,"column":4},"end":{"line":88,"column":5}},"12":{"start":{"line":18,"column":8},"end":{"line":18,"column":102}},"13":{"start":{"line":18,"column":48},"end":{"line":18,"column":102}},"14":{"start":{"line":19,"column":27},"end":{"line":19,"column":48}},"15":{"start":{"line":20,"column":8},"end":{"line":21,"column":56}},"16":{"start":{"line":20,"column":67},"end":{"line":20,"column":89}},"17":{"start":{"line":21,"column":12},"end":{"line":21,"column":56}},"18":{"start":{"line":24,"column":24},"end":{"line":24,"column":40}},"19":{"start":{"line":25,"column":25},"end":{"line":25,"column":42}},"20":{"start":{"line":26,"column":23},"end":{"line":26,"column":38}},"21":{"start":{"line":27,"column":25},"end":{"line":27,"column":44}},"22":{"start":{"line":28,"column":24},"end":{"line":28,"column":40}},"23":{"start":{"line":29,"column":23},"end":{"line":29,"column":40}},"24":{"start":{"line":30,"column":26},"end":{"line":30,"column":46}},"25":{"start":{"line":31,"column":22},"end":{"line":31,"column":36}},"26":{"start":{"line":34,"column":8},"end":{"line":47,"column":11}},"27":{"start":{"line":35,"column":30},"end":{"line":45,"column":14}},"28":{"start":{"line":46,"column":12},"end":{"line":46,"column":33}},"29":{"start":{"line":49,"column":8},"end":{"line":49,"column":52}},"30":{"start":{"line":52,"column":26},"end":{"line":64,"column":9}},"31":{"start":{"line":53,"column":33},"end":{"line":63,"column":13}},"32":{"start":{"line":65,"column":8},"end":{"line":65,"column":56}},"33":{"start":{"line":67,"column":20},"end":{"line":74,"column":9}},"34":{"start":{"line":76,"column":24},"end":{"line":76,"column":47}},"35":{"start":{"line":78,"column":8},"end":{"line":78,"column":49}},"36":{"start":{"line":82,"column":8},"end":{"line":87,"column":9}},"37":{"start":{"line":83,"column":12},"end":{"line":83,"column":54}},"38":{"start":{"line":86,"column":12},"end":{"line":86,"column":54}},"39":{"start":{"line":91,"column":0},"end":{"line":150,"column":1}},"40":{"start":{"line":92,"column":4},"end":{"line":149,"column":5}},"41":{"start":{"line":93,"column":8},"end":{"line":95,"column":9}},"42":{"start":{"line":94,"column":12},"end":{"line":94,"column":63}},"43":{"start":{"line":97,"column":22},"end":{"line":97,"column":24}},"44":{"start":{"line":99,"column":8},"end":{"line":103,"column":9}},"45":{"start":{"line":100,"column":12},"end":{"line":100,"column":59}},"46":{"start":{"line":101,"column":29},"end":{"line":101,"column":129}},"47":{"start":{"line":102,"column":12},"end":{"line":102,"column":46}},"48":{"start":{"line":106,"column":73},"end":{"line":106,"column":81}},"49":{"start":{"line":108,"column":8},"end":{"line":111,"column":9}},"50":{"start":{"line":109,"column":12},"end":{"line":110,"column":67}},"51":{"start":{"line":113,"column":8},"end":{"line":115,"column":9}},"52":{"start":{"line":114,"column":12},"end":{"line":114,"column":37}},"53":{"start":{"line":117,"column":8},"end":{"line":119,"column":9}},"54":{"start":{"line":118,"column":12},"end":{"line":118,"column":35}},"55":{"start":{"line":121,"column":8},"end":{"line":123,"column":9}},"56":{"start":{"line":122,"column":12},"end":{"line":122,"column":35}},"57":{"start":{"line":125,"column":8},"end":{"line":127,"column":9}},"58":{"start":{"line":126,"column":12},"end":{"line":126,"column":31}},"59":{"start":{"line":129,"column":8},"end":{"line":131,"column":9}},"60":{"start":{"line":130,"column":12},"end":{"line":130,"column":59}},"61":{"start":{"line":133,"column":8},"end":{"line":139,"column":9}},"62":{"start":{"line":134,"column":12},"end":{"line":134,"column":32}},"63":{"start":{"line":135,"column":12},"end":{"line":135,"column":30}},"64":{"start":{"line":137,"column":12},"end":{"line":137,"column":31}},"65":{"start":{"line":138,"column":12},"end":{"line":138,"column":30}},"66":{"start":{"line":141,"column":26},"end":{"line":143,"column":95}},"67":{"start":{"line":146,"column":8},"end":{"line":146,"column":49}},"68":{"start":{"line":148,"column":8},"end":{"line":148,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":20},"end":{"line":10,"column":21}},"loc":{"start":{"line":10,"column":46},"end":{"line":89,"column":1}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":60},"end":{"line":20,"column":61}},"loc":{"start":{"line":20,"column":67},"end":{"line":20,"column":89}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":34,"column":42},"end":{"line":34,"column":43}},"loc":{"start":{"line":34,"column":58},"end":{"line":47,"column":9}},"line":34},"3":{"name":"(anonymous_3)","decl":{"start":{"line":53,"column":22},"end":{"line":53,"column":23}},"loc":{"start":{"line":53,"column":33},"end":{"line":63,"column":13}},"line":53},"4":{"name":"(anonymous_4)","decl":{"start":{"line":91,"column":22},"end":{"line":91,"column":23}},"loc":{"start":{"line":91,"column":48},"end":{"line":150,"column":1}},"line":91}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":4},"end":{"line":15,"column":5}},"type":"if","locations":[{"start":{"line":13,"column":4},"end":{"line":15,"column":5}},{"start":{},"end":{}}],"line":13},"1":{"loc":{"start":{"line":18,"column":8},"end":{"line":18,"column":102}},"type":"if","locations":[{"start":{"line":18,"column":8},"end":{"line":18,"column":102}},{"start":{},"end":{}}],"line":18},"2":{"loc":{"start":{"line":20,"column":8},"end":{"line":21,"column":56}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":21,"column":56}},{"start":{},"end":{}}],"line":20},"3":{"loc":{"start":{"line":82,"column":8},"end":{"line":87,"column":9}},"type":"if","locations":[{"start":{"line":82,"column":8},"end":{"line":87,"column":9}},{"start":{"line":85,"column":13},"end":{"line":87,"column":9}}],"line":82},"4":{"loc":{"start":{"line":82,"column":12},"end":{"line":82,"column":55}},"type":"binary-expr","locations":[{"start":{"line":82,"column":12},"end":{"line":82,"column":13}},{"start":{"line":82,"column":17},"end":{"line":82,"column":55}}],"line":82},"5":{"loc":{"start":{"line":93,"column":8},"end":{"line":95,"column":9}},"type":"if","locations":[{"start":{"line":93,"column":8},"end":{"line":95,"column":9}},{"start":{},"end":{}}],"line":93},"6":{"loc":{"start":{"line":99,"column":8},"end":{"line":103,"column":9}},"type":"if","locations":[{"start":{"line":99,"column":8},"end":{"line":103,"column":9}},{"start":{},"end":{}}],"line":99},"7":{"loc":{"start":{"line":99,"column":12},"end":{"line":99,"column":49}},"type":"binary-expr","locations":[{"start":{"line":99,"column":12},"end":{"line":99,"column":27}},{"start":{"line":99,"column":31},"end":{"line":99,"column":49}}],"line":99},"8":{"loc":{"start":{"line":108,"column":8},"end":{"line":111,"column":9}},"type":"if","locations":[{"start":{"line":108,"column":8},"end":{"line":111,"column":9}},{"start":{},"end":{}}],"line":108},"9":{"loc":{"start":{"line":113,"column":8},"end":{"line":115,"column":9}},"type":"if","locations":[{"start":{"line":113,"column":8},"end":{"line":115,"column":9}},{"start":{},"end":{}}],"line":113},"10":{"loc":{"start":{"line":117,"column":8},"end":{"line":119,"column":9}},"type":"if","locations":[{"start":{"line":117,"column":8},"end":{"line":119,"column":9}},{"start":{},"end":{}}],"line":117},"11":{"loc":{"start":{"line":121,"column":8},"end":{"line":123,"column":9}},"type":"if","locations":[{"start":{"line":121,"column":8},"end":{"line":123,"column":9}},{"start":{},"end":{}}],"line":121},"12":{"loc":{"start":{"line":121,"column":12},"end":{"line":121,"column":37}},"type":"binary-expr","locations":[{"start":{"line":121,"column":12},"end":{"line":121,"column":19}},{"start":{"line":121,"column":23},"end":{"line":121,"column":37}}],"line":121},"13":{"loc":{"start":{"line":125,"column":8},"end":{"line":127,"column":9}},"type":"if","locations":[{"start":{"line":125,"column":8},"end":{"line":127,"column":9}},{"start":{},"end":{}}],"line":125},"14":{"loc":{"start":{"line":129,"column":8},"end":{"line":131,"column":9}},"type":"if","locations":[{"start":{"line":129,"column":8},"end":{"line":131,"column":9}},{"start":{},"end":{}}],"line":129},"15":{"loc":{"start":{"line":129,"column":12},"end":{"line":129,"column":43}},"type":"binary-expr","locations":[{"start":{"line":129,"column":12},"end":{"line":129,"column":19}},{"start":{"line":129,"column":23},"end":{"line":129,"column":43}}],"line":129},"16":{"loc":{"start":{"line":133,"column":8},"end":{"line":139,"column":9}},"type":"if","locations":[{"start":{"line":133,"column":8},"end":{"line":139,"column":9}},{"start":{"line":136,"column":15},"end":{"line":139,"column":9}}],"line":133}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":3,"10":3,"11":3,"12":3,"13":0,"14":3,"15":3,"16":10,"17":1,"18":2,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"25":2,"26":2,"27":2,"28":2,"29":2,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":2,"37":1,"38":1,"39":2,"40":3,"41":3,"42":1,"43":3,"44":3,"45":1,"46":1,"47":1,"48":3,"49":3,"50":1,"51":3,"52":1,"53":3,"54":2,"55":3,"56":2,"57":3,"58":1,"59":3,"60":2,"61":3,"62":2,"63":2,"64":1,"65":1,"66":3,"67":3,"68":0},"f":{"0":3,"1":10,"2":2,"3":1,"4":3},"b":{"0":[3,0],"1":[0,3],"2":[1,2],"3":[1,1],"4":[2,2],"5":[1,2],"6":[1,2],"7":[3,1],"8":[1,2],"9":[1,2],"10":[2,1],"11":[2,1],"12":[3,2],"13":[1,2],"14":[2,1],"15":[3,2],"16":[2,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a2267c9cf0b2afa115187464622a53f290844f97"} -,"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\controller\\roiController.js": {"path":"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\controller\\roiController.js","statementMap":{"0":{"start":{"line":1,"column":14},"end":{"line":1,"column":40}},"1":{"start":{"line":2,"column":13},"end":{"line":2,"column":37}},"2":{"start":{"line":3,"column":16},"end":{"line":3,"column":43}},"3":{"start":{"line":6,"column":0},"end":{"line":53,"column":1}},"4":{"start":{"line":7,"column":4},"end":{"line":52,"column":5}},"5":{"start":{"line":8,"column":26},"end":{"line":8,"column":133}},"6":{"start":{"line":10,"column":8},"end":{"line":49,"column":9}},"7":{"start":{"line":11,"column":27},"end":{"line":11,"column":135}},"8":{"start":{"line":12,"column":29},"end":{"line":12,"column":185}},"9":{"start":{"line":13,"column":37},"end":{"line":13,"column":39}},"10":{"start":{"line":15,"column":12},"end":{"line":46,"column":13}},"11":{"start":{"line":16,"column":16},"end":{"line":33,"column":17}},"12":{"start":{"line":18,"column":20},"end":{"line":24,"column":21}},"13":{"start":{"line":26,"column":20},"end":{"line":32,"column":21}},"14":{"start":{"line":34,"column":26},"end":{"line":34,"column":90}},"15":{"start":{"line":36,"column":16},"end":{"line":43,"column":17}},"16":{"start":{"line":37,"column":20},"end":{"line":40,"column":23}},"17":{"start":{"line":42,"column":20},"end":{"line":42,"column":77}},"18":{"start":{"line":45,"column":16},"end":{"line":45,"column":73}},"19":{"start":{"line":48,"column":12},"end":{"line":48,"column":73}},"20":{"start":{"line":51,"column":8},"end":{"line":51,"column":31}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":21},"end":{"line":6,"column":22}},"loc":{"start":{"line":6,"column":47},"end":{"line":53,"column":1}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":49,"column":9}},"type":"if","locations":[{"start":{"line":10,"column":8},"end":{"line":49,"column":9}},{"start":{"line":47,"column":15},"end":{"line":49,"column":9}}],"line":10},"1":{"loc":{"start":{"line":15,"column":12},"end":{"line":46,"column":13}},"type":"if","locations":[{"start":{"line":15,"column":12},"end":{"line":46,"column":13}},{"start":{"line":44,"column":19},"end":{"line":46,"column":13}}],"line":15},"2":{"loc":{"start":{"line":16,"column":16},"end":{"line":33,"column":17}},"type":"if","locations":[{"start":{"line":16,"column":16},"end":{"line":33,"column":17}},{"start":{"line":25,"column":23},"end":{"line":33,"column":17}}],"line":16},"3":{"loc":{"start":{"line":16,"column":20},"end":{"line":16,"column":95}},"type":"binary-expr","locations":[{"start":{"line":16,"column":20},"end":{"line":16,"column":33}},{"start":{"line":16,"column":37},"end":{"line":16,"column":46}},{"start":{"line":16,"column":50},"end":{"line":16,"column":78}},{"start":{"line":16,"column":82},"end":{"line":16,"column":95}}],"line":16},"4":{"loc":{"start":{"line":36,"column":16},"end":{"line":43,"column":17}},"type":"if","locations":[{"start":{"line":36,"column":16},"end":{"line":43,"column":17}},{"start":{"line":41,"column":23},"end":{"line":43,"column":17}}],"line":36}},"s":{"0":1,"1":1,"2":1,"3":1,"4":5,"5":5,"6":5,"7":4,"8":4,"9":4,"10":4,"11":3,"12":2,"13":1,"14":3,"15":3,"16":0,"17":3,"18":1,"19":1,"20":0},"f":{"0":5},"b":{"0":[4,1],"1":[3,1],"2":[2,1],"3":[3,2,2,2],"4":[0,3]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a54a8d9dfb554fb893cf1b3f18da8a922bbf39eb"} -,"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\controller\\schoolController.js": {"path":"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\controller\\schoolController.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":43}},"1":{"start":{"line":2,"column":16},"end":{"line":2,"column":44}},"2":{"start":{"line":3,"column":14},"end":{"line":3,"column":40}},"3":{"start":{"line":4,"column":15},"end":{"line":4,"column":46}},"4":{"start":{"line":5,"column":25},"end":{"line":5,"column":56}},"5":{"start":{"line":6,"column":15},"end":{"line":6,"column":43}},"6":{"start":{"line":9,"column":0},"end":{"line":96,"column":2}},"7":{"start":{"line":12,"column":2},"end":{"line":95,"column":3}},"8":{"start":{"line":13,"column":17},"end":{"line":13,"column":19}},"9":{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},"10":{"start":{"line":15,"column":6},"end":{"line":15,"column":46}},"11":{"start":{"line":18,"column":18},"end":{"line":18,"column":75}},"12":{"start":{"line":20,"column":20},"end":{"line":20,"column":148}},"13":{"start":{"line":22,"column":4},"end":{"line":22,"column":45}},"14":{"start":{"line":24,"column":18},"end":{"line":24,"column":54}},"15":{"start":{"line":26,"column":18},"end":{"line":26,"column":20}},"16":{"start":{"line":27,"column":17},"end":{"line":48,"column":5}},"17":{"start":{"line":50,"column":15},"end":{"line":53,"column":5}},"18":{"start":{"line":55,"column":4},"end":{"line":69,"column":5}},"19":{"start":{"line":56,"column":24},"end":{"line":56,"column":149}},"20":{"start":{"line":58,"column":6},"end":{"line":66,"column":9}},"21":{"start":{"line":59,"column":49},"end":{"line":59,"column":53}},"22":{"start":{"line":60,"column":18},"end":{"line":64,"column":9}},"23":{"start":{"line":65,"column":8},"end":{"line":65,"column":25}},"24":{"start":{"line":67,"column":6},"end":{"line":67,"column":78}},"25":{"start":{"line":67,"column":29},"end":{"line":67,"column":77}},"26":{"start":{"line":68,"column":6},"end":{"line":68,"column":28}},"27":{"start":{"line":71,"column":4},"end":{"line":71,"column":17}},"28":{"start":{"line":72,"column":4},"end":{"line":74,"column":7}},"29":{"start":{"line":76,"column":4},"end":{"line":94,"column":5}},"30":{"start":{"line":77,"column":6},"end":{"line":77,"column":27}},"31":{"start":{"line":79,"column":6},"end":{"line":81,"column":8}},"32":{"start":{"line":83,"column":9},"end":{"line":94,"column":5}},"33":{"start":{"line":84,"column":7},"end":{"line":84,"column":21}},"34":{"start":{"line":85,"column":6},"end":{"line":87,"column":8}},"35":{"start":{"line":90,"column":6},"end":{"line":90,"column":20}},"36":{"start":{"line":91,"column":6},"end":{"line":93,"column":9}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":22},"end":{"line":9,"column":23}},"loc":{"start":{"line":9,"column":48},"end":{"line":96,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":58,"column":24},"end":{"line":58,"column":25}},"loc":{"start":{"line":58,"column":32},"end":{"line":66,"column":7}},"line":58},"2":{"name":"(anonymous_2)","decl":{"start":{"line":67,"column":19},"end":{"line":67,"column":20}},"loc":{"start":{"line":67,"column":29},"end":{"line":67,"column":77}},"line":67}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},"type":"if","locations":[{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},{"start":{},"end":{}}],"line":14},"1":{"loc":{"start":{"line":55,"column":4},"end":{"line":69,"column":5}},"type":"if","locations":[{"start":{"line":55,"column":4},"end":{"line":69,"column":5}},{"start":{},"end":{}}],"line":55},"2":{"loc":{"start":{"line":76,"column":4},"end":{"line":94,"column":5}},"type":"if","locations":[{"start":{"line":76,"column":4},"end":{"line":94,"column":5}},{"start":{"line":83,"column":9},"end":{"line":94,"column":5}}],"line":76},"3":{"loc":{"start":{"line":76,"column":8},"end":{"line":76,"column":65}},"type":"binary-expr","locations":[{"start":{"line":76,"column":8},"end":{"line":76,"column":9}},{"start":{"line":76,"column":13},"end":{"line":76,"column":65}}],"line":76},"4":{"loc":{"start":{"line":83,"column":9},"end":{"line":94,"column":5}},"type":"if","locations":[{"start":{"line":83,"column":9},"end":{"line":94,"column":5}},{"start":{"line":89,"column":9},"end":{"line":94,"column":5}}],"line":83},"5":{"loc":{"start":{"line":83,"column":13},"end":{"line":83,"column":56}},"type":"binary-expr","locations":[{"start":{"line":83,"column":13},"end":{"line":83,"column":14}},{"start":{"line":83,"column":18},"end":{"line":83,"column":56}}],"line":83}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":3,"8":3,"9":3,"10":3,"11":3,"12":2,"13":2,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":0,"26":1,"27":1,"28":1,"29":2,"30":1,"31":1,"32":1,"33":1,"34":1,"35":0,"36":0},"f":{"0":3,"1":1,"2":0},"b":{"0":[3,0],"1":[1,0],"2":[1,1],"3":[2,2],"4":[1,0],"5":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"421fdb76d7e6d0617f0383d5bec47e0b59b61090"} -,"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\controller\\studentController.js": {"path":"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\controller\\studentController.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":43}},"1":{"start":{"line":2,"column":17},"end":{"line":2,"column":46}},"2":{"start":{"line":3,"column":14},"end":{"line":3,"column":40}},"3":{"start":{"line":4,"column":14},"end":{"line":4,"column":40}},"4":{"start":{"line":5,"column":15},"end":{"line":5,"column":46}},"5":{"start":{"line":9,"column":0},"end":{"line":71,"column":2}},"6":{"start":{"line":10,"column":18},"end":{"line":10,"column":20}},"7":{"start":{"line":11,"column":22},"end":{"line":11,"column":24}},"8":{"start":{"line":13,"column":4},"end":{"line":13,"column":40}},"9":{"start":{"line":14,"column":4},"end":{"line":19,"column":5}},"10":{"start":{"line":15,"column":8},"end":{"line":16,"column":49}},"11":{"start":{"line":18,"column":8},"end":{"line":18,"column":71}},"12":{"start":{"line":21,"column":19},"end":{"line":21,"column":75}},"13":{"start":{"line":22,"column":4},"end":{"line":22,"column":34}},"14":{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},"15":{"start":{"line":25,"column":8},"end":{"line":25,"column":41}},"16":{"start":{"line":28,"column":4},"end":{"line":32,"column":5}},"17":{"start":{"line":29,"column":22},"end":{"line":29,"column":50}},"18":{"start":{"line":30,"column":8},"end":{"line":30,"column":38}},"19":{"start":{"line":31,"column":8},"end":{"line":31,"column":39}},"20":{"start":{"line":34,"column":4},"end":{"line":70,"column":5}},"21":{"start":{"line":36,"column":8},"end":{"line":36,"column":52}},"22":{"start":{"line":38,"column":25},"end":{"line":38,"column":106}},"23":{"start":{"line":41,"column":8},"end":{"line":59,"column":9}},"24":{"start":{"line":42,"column":25},"end":{"line":46,"column":13}},"25":{"start":{"line":48,"column":12},"end":{"line":50,"column":13}},"26":{"start":{"line":49,"column":16},"end":{"line":49,"column":42}},"27":{"start":{"line":52,"column":24},"end":{"line":52,"column":86}},"28":{"start":{"line":54,"column":12},"end":{"line":58,"column":13}},"29":{"start":{"line":55,"column":16},"end":{"line":55,"column":74}},"30":{"start":{"line":57,"column":16},"end":{"line":57,"column":53}},"31":{"start":{"line":61,"column":22},"end":{"line":61,"column":97}},"32":{"start":{"line":63,"column":8},"end":{"line":65,"column":11}},"33":{"start":{"line":67,"column":8},"end":{"line":69,"column":11}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":32},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":58},"end":{"line":71,"column":1}},"line":9}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":4},"end":{"line":19,"column":5}},"type":"if","locations":[{"start":{"line":14,"column":4},"end":{"line":19,"column":5}},{"start":{"line":17,"column":11},"end":{"line":19,"column":5}}],"line":14},"1":{"loc":{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},{"start":{},"end":{}}],"line":24},"2":{"loc":{"start":{"line":24,"column":8},"end":{"line":24,"column":53}},"type":"binary-expr","locations":[{"start":{"line":24,"column":8},"end":{"line":24,"column":25}},{"start":{"line":24,"column":29},"end":{"line":24,"column":53}}],"line":24},"3":{"loc":{"start":{"line":28,"column":4},"end":{"line":32,"column":5}},"type":"if","locations":[{"start":{"line":28,"column":4},"end":{"line":32,"column":5}},{"start":{},"end":{}}],"line":28},"4":{"loc":{"start":{"line":48,"column":12},"end":{"line":50,"column":13}},"type":"if","locations":[{"start":{"line":48,"column":12},"end":{"line":50,"column":13}},{"start":{},"end":{}}],"line":48},"5":{"loc":{"start":{"line":54,"column":12},"end":{"line":58,"column":13}},"type":"if","locations":[{"start":{"line":54,"column":12},"end":{"line":58,"column":13}},{"start":{"line":56,"column":19},"end":{"line":58,"column":13}}],"line":54},"6":{"loc":{"start":{"line":54,"column":16},"end":{"line":54,"column":49}},"type":"binary-expr","locations":[{"start":{"line":54,"column":16},"end":{"line":54,"column":21}},{"start":{"line":54,"column":25},"end":{"line":54,"column":49}}],"line":54}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":4,"7":4,"8":4,"9":4,"10":3,"11":1,"12":3,"13":3,"14":3,"15":3,"16":3,"17":3,"18":3,"19":3,"20":3,"21":3,"22":3,"23":3,"24":3,"25":3,"26":3,"27":3,"28":3,"29":1,"30":2,"31":3,"32":3,"33":0},"f":{"0":4},"b":{"0":[3,1],"1":[3,0],"2":[3,3],"3":[3,0],"4":[3,0],"5":[1,2],"6":[3,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ff26729627afbc38e4cf0c22139fb2e3f57853e6"} -,"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\middleware\\helper.js": {"path":"C:\\Users\\test\\react-native\\Project-Saral\\v1.0\\backend\\src\\middleware\\helper.js","statementMap":{"0":{"start":{"line":1,"column":25},"end":{"line":1,"column":56}},"1":{"start":{"line":2,"column":14},"end":{"line":2,"column":39}},"2":{"start":{"line":3,"column":14},"end":{"line":3,"column":40}},"3":{"start":{"line":4,"column":15},"end":{"line":4,"column":34}},"4":{"start":{"line":7,"column":30},"end":{"line":64,"column":1}},"5":{"start":{"line":9,"column":8},"end":{"line":36,"column":9}},"6":{"start":{"line":10,"column":26},"end":{"line":10,"column":85}},"7":{"start":{"line":11,"column":12},"end":{"line":33,"column":13}},"8":{"start":{"line":12,"column":31},"end":{"line":12,"column":48}},"9":{"start":{"line":13,"column":16},"end":{"line":31,"column":17}},"10":{"start":{"line":15,"column":24},"end":{"line":17,"column":25}},"11":{"start":{"line":16,"column":28},"end":{"line":16,"column":71}},"12":{"start":{"line":18,"column":24},"end":{"line":18,"column":30}},"13":{"start":{"line":20,"column":24},"end":{"line":22,"column":25}},"14":{"start":{"line":21,"column":28},"end":{"line":21,"column":71}},"15":{"start":{"line":23,"column":24},"end":{"line":23,"column":30}},"16":{"start":{"line":25,"column":24},"end":{"line":27,"column":25}},"17":{"start":{"line":26,"column":28},"end":{"line":26,"column":71}},"18":{"start":{"line":28,"column":24},"end":{"line":28,"column":30}},"19":{"start":{"line":35,"column":12},"end":{"line":35,"column":24}},"20":{"start":{"line":40,"column":8},"end":{"line":62,"column":9}},"21":{"start":{"line":41,"column":25},"end":{"line":46,"column":13}},"22":{"start":{"line":48,"column":12},"end":{"line":50,"column":13}},"23":{"start":{"line":49,"column":16},"end":{"line":49,"column":72}},"24":{"start":{"line":52,"column":28},"end":{"line":52,"column":73}},"25":{"start":{"line":54,"column":12},"end":{"line":56,"column":13}},"26":{"start":{"line":55,"column":16},"end":{"line":55,"column":72}},"27":{"start":{"line":58,"column":12},"end":{"line":58,"column":23}},"28":{"start":{"line":61,"column":12},"end":{"line":61,"column":23}},"29":{"start":{"line":66,"column":0},"end":{"line":66,"column":39}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":25},"end":{"line":8,"column":26}},"loc":{"start":{"line":8,"column":53},"end":{"line":37,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":39,"column":23},"end":{"line":39,"column":24}},"loc":{"start":{"line":39,"column":57},"end":{"line":63,"column":5}},"line":39}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":16},"end":{"line":31,"column":17}},"type":"switch","locations":[{"start":{"line":14,"column":20},"end":{"line":18,"column":30}},{"start":{"line":19,"column":20},"end":{"line":23,"column":30}},{"start":{"line":24,"column":20},"end":{"line":28,"column":30}},{"start":{"line":29,"column":20},"end":{"line":29,"column":28}}],"line":13},"1":{"loc":{"start":{"line":15,"column":24},"end":{"line":17,"column":25}},"type":"if","locations":[{"start":{"line":15,"column":24},"end":{"line":17,"column":25}},{"start":{},"end":{}}],"line":15},"2":{"loc":{"start":{"line":20,"column":24},"end":{"line":22,"column":25}},"type":"if","locations":[{"start":{"line":20,"column":24},"end":{"line":22,"column":25}},{"start":{},"end":{}}],"line":20},"3":{"loc":{"start":{"line":25,"column":24},"end":{"line":27,"column":25}},"type":"if","locations":[{"start":{"line":25,"column":24},"end":{"line":27,"column":25}},{"start":{},"end":{}}],"line":25},"4":{"loc":{"start":{"line":48,"column":12},"end":{"line":50,"column":13}},"type":"if","locations":[{"start":{"line":48,"column":12},"end":{"line":50,"column":13}},{"start":{},"end":{}}],"line":48},"5":{"loc":{"start":{"line":54,"column":12},"end":{"line":56,"column":13}},"type":"if","locations":[{"start":{"line":54,"column":12},"end":{"line":56,"column":13}},{"start":{},"end":{}}],"line":54}},"s":{"0":6,"1":6,"2":6,"3":6,"4":6,"5":3,"6":3,"7":3,"8":3,"9":3,"10":1,"11":1,"12":0,"13":1,"14":1,"15":0,"16":1,"17":1,"18":0,"19":3,"20":3,"21":3,"22":3,"23":1,"24":2,"25":2,"26":1,"27":1,"28":2,"29":6},"f":{"0":3,"1":3},"b":{"0":[1,1,1,0],"1":[1,0],"2":[1,0],"3":[1,0],"4":[1,2],"5":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e1190e809f052d0d217920471eaa0901b413caf6"} +{"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\controller\\brandController.js": {"path":"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\controller\\brandController.js","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":1,"column":49}},"1":{"start":{"line":2,"column":21},"end":{"line":2,"column":47}},"2":{"start":{"line":3,"column":15},"end":{"line":3,"column":43}},"3":{"start":{"line":6,"column":0},"end":{"line":50,"column":1}},"4":{"start":{"line":7,"column":4},"end":{"line":49,"column":7}},"5":{"start":{"line":8,"column":26},"end":{"line":8,"column":36}},"6":{"start":{"line":10,"column":25},"end":{"line":10,"column":41}},"7":{"start":{"line":11,"column":24},"end":{"line":11,"column":66}},"8":{"start":{"line":12,"column":23},"end":{"line":12,"column":63}},"9":{"start":{"line":14,"column":23},"end":{"line":14,"column":109}},"10":{"start":{"line":15,"column":22},"end":{"line":15,"column":186}},"11":{"start":{"line":17,"column":8},"end":{"line":40,"column":9}},"12":{"start":{"line":18,"column":28},"end":{"line":18,"column":38}},"13":{"start":{"line":19,"column":34},"end":{"line":19,"column":53}},"14":{"start":{"line":21,"column":12},"end":{"line":21,"column":81}},"15":{"start":{"line":22,"column":12},"end":{"line":22,"column":39}},"16":{"start":{"line":24,"column":33},"end":{"line":24,"column":237}},"17":{"start":{"line":26,"column":12},"end":{"line":39,"column":13}},"18":{"start":{"line":27,"column":32},"end":{"line":27,"column":47}},"19":{"start":{"line":28,"column":33},"end":{"line":28,"column":43}},"20":{"start":{"line":29,"column":39},"end":{"line":29,"column":59}},"21":{"start":{"line":31,"column":16},"end":{"line":31,"column":96}},"22":{"start":{"line":32,"column":16},"end":{"line":34,"column":19}},"23":{"start":{"line":36,"column":16},"end":{"line":38,"column":18}},"24":{"start":{"line":43,"column":8},"end":{"line":43,"column":22}},"25":{"start":{"line":44,"column":8},"end":{"line":46,"column":11}},"26":{"start":{"line":48,"column":8},"end":{"line":48,"column":14}},"27":{"start":{"line":52,"column":0},"end":{"line":81,"column":1}},"28":{"start":{"line":53,"column":4},"end":{"line":80,"column":7}},"29":{"start":{"line":54,"column":26},"end":{"line":54,"column":36}},"30":{"start":{"line":55,"column":25},"end":{"line":55,"column":41}},"31":{"start":{"line":56,"column":23},"end":{"line":56,"column":63}},"32":{"start":{"line":57,"column":22},"end":{"line":57,"column":226}},"33":{"start":{"line":59,"column":8},"end":{"line":71,"column":9}},"34":{"start":{"line":60,"column":28},"end":{"line":60,"column":36}},"35":{"start":{"line":61,"column":28},"end":{"line":61,"column":38}},"36":{"start":{"line":62,"column":34},"end":{"line":62,"column":53}},"37":{"start":{"line":64,"column":12},"end":{"line":64,"column":89}},"38":{"start":{"line":65,"column":12},"end":{"line":65,"column":50}},"39":{"start":{"line":68,"column":12},"end":{"line":70,"column":14}},"40":{"start":{"line":74,"column":8},"end":{"line":74,"column":22}},"41":{"start":{"line":75,"column":8},"end":{"line":77,"column":11}},"42":{"start":{"line":79,"column":8},"end":{"line":79,"column":14}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":25},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":51},"end":{"line":50,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":52,"column":32},"end":{"line":52,"column":33}},"loc":{"start":{"line":52,"column":58},"end":{"line":81,"column":1}},"line":52}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":8},"end":{"line":40,"column":9}},"type":"if","locations":[{"start":{"line":17,"column":8},"end":{"line":40,"column":9}},{"start":{"line":23,"column":15},"end":{"line":40,"column":9}}],"line":17},"1":{"loc":{"start":{"line":17,"column":12},"end":{"line":17,"column":45}},"type":"binary-expr","locations":[{"start":{"line":17,"column":12},"end":{"line":17,"column":17}},{"start":{"line":17,"column":21},"end":{"line":17,"column":45}}],"line":17},"2":{"loc":{"start":{"line":26,"column":12},"end":{"line":39,"column":13}},"type":"if","locations":[{"start":{"line":26,"column":12},"end":{"line":39,"column":13}},{"start":{"line":35,"column":19},"end":{"line":39,"column":13}}],"line":26},"3":{"loc":{"start":{"line":26,"column":16},"end":{"line":26,"column":51}},"type":"binary-expr","locations":[{"start":{"line":26,"column":16},"end":{"line":26,"column":28}},{"start":{"line":26,"column":32},"end":{"line":26,"column":51}}],"line":26},"4":{"loc":{"start":{"line":59,"column":8},"end":{"line":71,"column":9}},"type":"if","locations":[{"start":{"line":59,"column":8},"end":{"line":71,"column":9}},{"start":{"line":67,"column":15},"end":{"line":71,"column":9}}],"line":59}},"s":{"0":2,"1":2,"2":2,"3":2,"4":3,"5":3,"6":3,"7":3,"8":3,"9":3,"10":3,"11":3,"12":1,"13":1,"14":1,"15":1,"16":2,"17":2,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":0,"25":0,"26":3,"27":2,"28":2,"29":2,"30":2,"31":2,"32":2,"33":2,"34":1,"35":1,"36":1,"37":1,"38":1,"39":0,"40":1,"41":1,"42":2},"f":{"0":3,"1":2},"b":{"0":[1,2],"1":[3,1],"2":[1,1],"3":[2,1],"4":[1,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"52fdd9e0b186969279f639461728b5010aadcb96"} +,"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\controller\\marksController.js": {"path":"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\controller\\marksController.js","statementMap":{"0":{"start":{"line":1,"column":39},"end":{"line":1,"column":65}},"1":{"start":{"line":2,"column":20},"end":{"line":2,"column":46}},"2":{"start":{"line":3,"column":15},"end":{"line":3,"column":46}},"3":{"start":{"line":4,"column":25},"end":{"line":4,"column":56}},"4":{"start":{"line":5,"column":15},"end":{"line":5,"column":43}},"5":{"start":{"line":6,"column":18},"end":{"line":6,"column":40}},"6":{"start":{"line":7,"column":20},"end":{"line":7,"column":45}},"7":{"start":{"line":9,"column":0},"end":{"line":79,"column":1}},"8":{"start":{"line":10,"column":18},"end":{"line":10,"column":20}},"9":{"start":{"line":11,"column":22},"end":{"line":11,"column":32}},"10":{"start":{"line":13,"column":4},"end":{"line":15,"column":5}},"11":{"start":{"line":17,"column":4},"end":{"line":78,"column":5}},"12":{"start":{"line":18,"column":25},"end":{"line":18,"column":41}},"13":{"start":{"line":19,"column":8},"end":{"line":19,"column":59}},"14":{"start":{"line":20,"column":8},"end":{"line":20,"column":94}},"15":{"start":{"line":20,"column":49},"end":{"line":20,"column":94}},"16":{"start":{"line":21,"column":27},"end":{"line":21,"column":48}},"17":{"start":{"line":22,"column":8},"end":{"line":23,"column":56}},"18":{"start":{"line":22,"column":69},"end":{"line":22,"column":91}},"19":{"start":{"line":23,"column":12},"end":{"line":23,"column":56}},"20":{"start":{"line":26,"column":24},"end":{"line":26,"column":40}},"21":{"start":{"line":27,"column":25},"end":{"line":27,"column":42}},"22":{"start":{"line":28,"column":23},"end":{"line":28,"column":38}},"23":{"start":{"line":29,"column":25},"end":{"line":29,"column":44}},"24":{"start":{"line":30,"column":24},"end":{"line":30,"column":40}},"25":{"start":{"line":31,"column":23},"end":{"line":31,"column":40}},"26":{"start":{"line":32,"column":26},"end":{"line":32,"column":46}},"27":{"start":{"line":33,"column":22},"end":{"line":33,"column":36}},"28":{"start":{"line":35,"column":8},"end":{"line":58,"column":11}},"29":{"start":{"line":36,"column":25},"end":{"line":46,"column":29}},"30":{"start":{"line":48,"column":30},"end":{"line":56,"column":13}},"31":{"start":{"line":57,"column":12},"end":{"line":57,"column":33}},"32":{"start":{"line":60,"column":8},"end":{"line":60,"column":63}},"33":{"start":{"line":62,"column":8},"end":{"line":62,"column":64}},"34":{"start":{"line":63,"column":24},"end":{"line":63,"column":34}},"35":{"start":{"line":64,"column":30},"end":{"line":64,"column":49}},"36":{"start":{"line":65,"column":8},"end":{"line":65,"column":84}},"37":{"start":{"line":66,"column":8},"end":{"line":66,"column":64}},"38":{"start":{"line":68,"column":8},"end":{"line":68,"column":22}},"39":{"start":{"line":69,"column":8},"end":{"line":74,"column":9}},"40":{"start":{"line":70,"column":12},"end":{"line":70,"column":54}},"41":{"start":{"line":73,"column":12},"end":{"line":73,"column":54}},"42":{"start":{"line":76,"column":8},"end":{"line":76,"column":54}},"43":{"start":{"line":77,"column":8},"end":{"line":77,"column":14}},"44":{"start":{"line":81,"column":0},"end":{"line":157,"column":1}},"45":{"start":{"line":83,"column":4},"end":{"line":156,"column":5}},"46":{"start":{"line":84,"column":26},"end":{"line":84,"column":36}},"47":{"start":{"line":85,"column":25},"end":{"line":85,"column":41}},"48":{"start":{"line":86,"column":22},"end":{"line":86,"column":60}},"49":{"start":{"line":87,"column":22},"end":{"line":87,"column":60}},"50":{"start":{"line":89,"column":8},"end":{"line":91,"column":9}},"51":{"start":{"line":90,"column":12},"end":{"line":90,"column":75}},"52":{"start":{"line":93,"column":8},"end":{"line":95,"column":9}},"53":{"start":{"line":94,"column":12},"end":{"line":94,"column":63}},"54":{"start":{"line":97,"column":22},"end":{"line":97,"column":24}},"55":{"start":{"line":99,"column":8},"end":{"line":103,"column":9}},"56":{"start":{"line":100,"column":12},"end":{"line":100,"column":59}},"57":{"start":{"line":101,"column":29},"end":{"line":101,"column":129}},"58":{"start":{"line":102,"column":12},"end":{"line":102,"column":46}},"59":{"start":{"line":106,"column":73},"end":{"line":106,"column":81}},"60":{"start":{"line":108,"column":8},"end":{"line":111,"column":9}},"61":{"start":{"line":109,"column":12},"end":{"line":110,"column":67}},"62":{"start":{"line":113,"column":8},"end":{"line":115,"column":9}},"63":{"start":{"line":114,"column":12},"end":{"line":114,"column":37}},"64":{"start":{"line":117,"column":8},"end":{"line":119,"column":9}},"65":{"start":{"line":118,"column":12},"end":{"line":118,"column":35}},"66":{"start":{"line":121,"column":8},"end":{"line":123,"column":9}},"67":{"start":{"line":122,"column":12},"end":{"line":122,"column":35}},"68":{"start":{"line":125,"column":8},"end":{"line":127,"column":9}},"69":{"start":{"line":126,"column":12},"end":{"line":126,"column":31}},"70":{"start":{"line":129,"column":8},"end":{"line":131,"column":9}},"71":{"start":{"line":130,"column":12},"end":{"line":130,"column":59}},"72":{"start":{"line":133,"column":8},"end":{"line":139,"column":9}},"73":{"start":{"line":134,"column":12},"end":{"line":134,"column":32}},"74":{"start":{"line":135,"column":12},"end":{"line":135,"column":30}},"75":{"start":{"line":137,"column":12},"end":{"line":137,"column":31}},"76":{"start":{"line":138,"column":12},"end":{"line":138,"column":30}},"77":{"start":{"line":142,"column":26},"end":{"line":144,"column":95}},"78":{"start":{"line":146,"column":24},"end":{"line":146,"column":34}},"79":{"start":{"line":147,"column":31},"end":{"line":147,"column":50}},"80":{"start":{"line":149,"column":8},"end":{"line":149,"column":83}},"81":{"start":{"line":150,"column":8},"end":{"line":150,"column":49}},"82":{"start":{"line":152,"column":8},"end":{"line":152,"column":22}},"83":{"start":{"line":153,"column":8},"end":{"line":153,"column":50}},"84":{"start":{"line":155,"column":8},"end":{"line":155,"column":14}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":20},"end":{"line":9,"column":21}},"loc":{"start":{"line":9,"column":46},"end":{"line":79,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":22,"column":62},"end":{"line":22,"column":63}},"loc":{"start":{"line":22,"column":69},"end":{"line":22,"column":91}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":35,"column":42},"end":{"line":35,"column":43}},"loc":{"start":{"line":35,"column":58},"end":{"line":58,"column":9}},"line":35},"3":{"name":"(anonymous_3)","decl":{"start":{"line":81,"column":22},"end":{"line":81,"column":23}},"loc":{"start":{"line":81,"column":48},"end":{"line":157,"column":1}},"line":81}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":4},"end":{"line":15,"column":5}},"type":"if","locations":[{"start":{"line":13,"column":4},"end":{"line":15,"column":5}},{"start":{},"end":{}}],"line":13},"1":{"loc":{"start":{"line":20,"column":8},"end":{"line":20,"column":94}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":20,"column":94}},{"start":{},"end":{}}],"line":20},"2":{"loc":{"start":{"line":22,"column":8},"end":{"line":23,"column":56}},"type":"if","locations":[{"start":{"line":22,"column":8},"end":{"line":23,"column":56}},{"start":{},"end":{}}],"line":22},"3":{"loc":{"start":{"line":69,"column":8},"end":{"line":74,"column":9}},"type":"if","locations":[{"start":{"line":69,"column":8},"end":{"line":74,"column":9}},{"start":{"line":72,"column":13},"end":{"line":74,"column":9}}],"line":69},"4":{"loc":{"start":{"line":69,"column":12},"end":{"line":69,"column":55}},"type":"binary-expr","locations":[{"start":{"line":69,"column":12},"end":{"line":69,"column":13}},{"start":{"line":69,"column":17},"end":{"line":69,"column":55}}],"line":69},"5":{"loc":{"start":{"line":89,"column":8},"end":{"line":91,"column":9}},"type":"if","locations":[{"start":{"line":89,"column":8},"end":{"line":91,"column":9}},{"start":{},"end":{}}],"line":89},"6":{"loc":{"start":{"line":93,"column":8},"end":{"line":95,"column":9}},"type":"if","locations":[{"start":{"line":93,"column":8},"end":{"line":95,"column":9}},{"start":{},"end":{}}],"line":93},"7":{"loc":{"start":{"line":99,"column":8},"end":{"line":103,"column":9}},"type":"if","locations":[{"start":{"line":99,"column":8},"end":{"line":103,"column":9}},{"start":{},"end":{}}],"line":99},"8":{"loc":{"start":{"line":99,"column":12},"end":{"line":99,"column":49}},"type":"binary-expr","locations":[{"start":{"line":99,"column":12},"end":{"line":99,"column":27}},{"start":{"line":99,"column":31},"end":{"line":99,"column":49}}],"line":99},"9":{"loc":{"start":{"line":108,"column":8},"end":{"line":111,"column":9}},"type":"if","locations":[{"start":{"line":108,"column":8},"end":{"line":111,"column":9}},{"start":{},"end":{}}],"line":108},"10":{"loc":{"start":{"line":113,"column":8},"end":{"line":115,"column":9}},"type":"if","locations":[{"start":{"line":113,"column":8},"end":{"line":115,"column":9}},{"start":{},"end":{}}],"line":113},"11":{"loc":{"start":{"line":117,"column":8},"end":{"line":119,"column":9}},"type":"if","locations":[{"start":{"line":117,"column":8},"end":{"line":119,"column":9}},{"start":{},"end":{}}],"line":117},"12":{"loc":{"start":{"line":121,"column":8},"end":{"line":123,"column":9}},"type":"if","locations":[{"start":{"line":121,"column":8},"end":{"line":123,"column":9}},{"start":{},"end":{}}],"line":121},"13":{"loc":{"start":{"line":121,"column":12},"end":{"line":121,"column":37}},"type":"binary-expr","locations":[{"start":{"line":121,"column":12},"end":{"line":121,"column":19}},{"start":{"line":121,"column":23},"end":{"line":121,"column":37}}],"line":121},"14":{"loc":{"start":{"line":125,"column":8},"end":{"line":127,"column":9}},"type":"if","locations":[{"start":{"line":125,"column":8},"end":{"line":127,"column":9}},{"start":{},"end":{}}],"line":125},"15":{"loc":{"start":{"line":129,"column":8},"end":{"line":131,"column":9}},"type":"if","locations":[{"start":{"line":129,"column":8},"end":{"line":131,"column":9}},{"start":{},"end":{}}],"line":129},"16":{"loc":{"start":{"line":129,"column":12},"end":{"line":129,"column":43}},"type":"binary-expr","locations":[{"start":{"line":129,"column":12},"end":{"line":129,"column":19}},{"start":{"line":129,"column":23},"end":{"line":129,"column":43}}],"line":129},"17":{"loc":{"start":{"line":133,"column":8},"end":{"line":139,"column":9}},"type":"if","locations":[{"start":{"line":133,"column":8},"end":{"line":139,"column":9}},{"start":{"line":136,"column":15},"end":{"line":139,"column":9}}],"line":133}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":3,"9":3,"10":3,"11":3,"12":3,"13":3,"14":3,"15":0,"16":3,"17":3,"18":10,"19":1,"20":2,"21":2,"22":2,"23":2,"24":2,"25":2,"26":2,"27":2,"28":2,"29":2,"30":2,"31":2,"32":2,"33":1,"34":1,"35":1,"36":1,"37":1,"38":2,"39":2,"40":1,"41":1,"42":3,"43":3,"44":2,"45":3,"46":3,"47":3,"48":3,"49":3,"50":3,"51":0,"52":3,"53":1,"54":3,"55":3,"56":1,"57":1,"58":1,"59":3,"60":3,"61":1,"62":3,"63":1,"64":3,"65":2,"66":3,"67":2,"68":3,"69":1,"70":3,"71":2,"72":3,"73":2,"74":2,"75":1,"76":1,"77":3,"78":3,"79":3,"80":3,"81":3,"82":0,"83":0,"84":3},"f":{"0":3,"1":10,"2":2,"3":3},"b":{"0":[3,0],"1":[0,3],"2":[1,2],"3":[1,1],"4":[2,2],"5":[0,3],"6":[1,2],"7":[1,2],"8":[3,1],"9":[1,2],"10":[1,2],"11":[2,1],"12":[2,1],"13":[3,2],"14":[1,2],"15":[2,1],"16":[3,2],"17":[2,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6e12a6f7dd59c76d4b9ea0d8f8e0946510416442"} +,"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\controller\\roiController.js": {"path":"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\controller\\roiController.js","statementMap":{"0":{"start":{"line":1,"column":20},"end":{"line":1,"column":46}},"1":{"start":{"line":2,"column":19},"end":{"line":2,"column":43}},"2":{"start":{"line":3,"column":22},"end":{"line":3,"column":49}},"3":{"start":{"line":4,"column":15},"end":{"line":4,"column":43}},"4":{"start":{"line":6,"column":0},"end":{"line":66,"column":1}},"5":{"start":{"line":8,"column":4},"end":{"line":65,"column":7}},"6":{"start":{"line":9,"column":26},"end":{"line":9,"column":36}},"7":{"start":{"line":10,"column":25},"end":{"line":10,"column":41}},"8":{"start":{"line":11,"column":22},"end":{"line":11,"column":60}},"9":{"start":{"line":12,"column":24},"end":{"line":12,"column":66}},"10":{"start":{"line":13,"column":21},"end":{"line":13,"column":57}},"11":{"start":{"line":15,"column":26},"end":{"line":15,"column":133}},"12":{"start":{"line":17,"column":8},"end":{"line":59,"column":9}},"13":{"start":{"line":18,"column":27},"end":{"line":18,"column":135}},"14":{"start":{"line":19,"column":29},"end":{"line":19,"column":185}},"15":{"start":{"line":20,"column":37},"end":{"line":20,"column":39}},"16":{"start":{"line":22,"column":12},"end":{"line":56,"column":13}},"17":{"start":{"line":23,"column":16},"end":{"line":40,"column":17}},"18":{"start":{"line":25,"column":20},"end":{"line":31,"column":21}},"19":{"start":{"line":33,"column":20},"end":{"line":39,"column":21}},"20":{"start":{"line":41,"column":26},"end":{"line":41,"column":90}},"21":{"start":{"line":42,"column":32},"end":{"line":42,"column":42}},"22":{"start":{"line":43,"column":38},"end":{"line":43,"column":57}},"23":{"start":{"line":45,"column":16},"end":{"line":45,"column":83}},"24":{"start":{"line":46,"column":16},"end":{"line":53,"column":17}},"25":{"start":{"line":47,"column":20},"end":{"line":50,"column":23}},"26":{"start":{"line":52,"column":20},"end":{"line":52,"column":77}},"27":{"start":{"line":55,"column":16},"end":{"line":55,"column":73}},"28":{"start":{"line":58,"column":12},"end":{"line":58,"column":73}},"29":{"start":{"line":61,"column":8},"end":{"line":61,"column":22}},"30":{"start":{"line":62,"column":8},"end":{"line":62,"column":31}},"31":{"start":{"line":64,"column":8},"end":{"line":64,"column":14}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":21},"end":{"line":6,"column":22}},"loc":{"start":{"line":6,"column":47},"end":{"line":66,"column":1}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":8},"end":{"line":59,"column":9}},"type":"if","locations":[{"start":{"line":17,"column":8},"end":{"line":59,"column":9}},{"start":{"line":57,"column":15},"end":{"line":59,"column":9}}],"line":17},"1":{"loc":{"start":{"line":22,"column":12},"end":{"line":56,"column":13}},"type":"if","locations":[{"start":{"line":22,"column":12},"end":{"line":56,"column":13}},{"start":{"line":54,"column":19},"end":{"line":56,"column":13}}],"line":22},"2":{"loc":{"start":{"line":23,"column":16},"end":{"line":40,"column":17}},"type":"if","locations":[{"start":{"line":23,"column":16},"end":{"line":40,"column":17}},{"start":{"line":32,"column":23},"end":{"line":40,"column":17}}],"line":23},"3":{"loc":{"start":{"line":23,"column":20},"end":{"line":23,"column":95}},"type":"binary-expr","locations":[{"start":{"line":23,"column":20},"end":{"line":23,"column":33}},{"start":{"line":23,"column":37},"end":{"line":23,"column":46}},{"start":{"line":23,"column":50},"end":{"line":23,"column":78}},{"start":{"line":23,"column":82},"end":{"line":23,"column":95}}],"line":23},"4":{"loc":{"start":{"line":46,"column":16},"end":{"line":53,"column":17}},"type":"if","locations":[{"start":{"line":46,"column":16},"end":{"line":53,"column":17}},{"start":{"line":51,"column":23},"end":{"line":53,"column":17}}],"line":46}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":5,"6":5,"7":5,"8":5,"9":5,"10":5,"11":5,"12":5,"13":4,"14":4,"15":4,"16":4,"17":3,"18":2,"19":1,"20":3,"21":3,"22":3,"23":3,"24":3,"25":0,"26":3,"27":1,"28":1,"29":0,"30":0,"31":5},"f":{"0":5},"b":{"0":[4,1],"1":[3,1],"2":[2,1],"3":[3,2,2,2],"4":[0,3]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7762fa27e248ba479f4467a5483587bfe465062f"} +,"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\controller\\schoolController.js": {"path":"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\controller\\schoolController.js","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":1,"column":49}},"1":{"start":{"line":2,"column":22},"end":{"line":2,"column":50}},"2":{"start":{"line":3,"column":20},"end":{"line":3,"column":46}},"3":{"start":{"line":4,"column":15},"end":{"line":4,"column":46}},"4":{"start":{"line":5,"column":25},"end":{"line":5,"column":56}},"5":{"start":{"line":6,"column":15},"end":{"line":6,"column":43}},"6":{"start":{"line":9,"column":0},"end":{"line":116,"column":2}},"7":{"start":{"line":11,"column":2},"end":{"line":115,"column":3}},"8":{"start":{"line":12,"column":22},"end":{"line":12,"column":32}},"9":{"start":{"line":13,"column":21},"end":{"line":13,"column":37}},"10":{"start":{"line":14,"column":18},"end":{"line":14,"column":56}},"11":{"start":{"line":15,"column":20},"end":{"line":15,"column":62}},"12":{"start":{"line":16,"column":20},"end":{"line":16,"column":62}},"13":{"start":{"line":18,"column":17},"end":{"line":18,"column":19}},"14":{"start":{"line":19,"column":4},"end":{"line":21,"column":5}},"15":{"start":{"line":20,"column":6},"end":{"line":20,"column":46}},"16":{"start":{"line":23,"column":18},"end":{"line":23,"column":87}},"17":{"start":{"line":25,"column":20},"end":{"line":25,"column":145}},"18":{"start":{"line":27,"column":4},"end":{"line":27,"column":57}},"19":{"start":{"line":29,"column":18},"end":{"line":29,"column":54}},"20":{"start":{"line":31,"column":18},"end":{"line":31,"column":20}},"21":{"start":{"line":32,"column":17},"end":{"line":59,"column":5}},"22":{"start":{"line":61,"column":15},"end":{"line":64,"column":5}},"23":{"start":{"line":66,"column":4},"end":{"line":84,"column":5}},"24":{"start":{"line":67,"column":24},"end":{"line":67,"column":144}},"25":{"start":{"line":69,"column":6},"end":{"line":71,"column":7}},"26":{"start":{"line":70,"column":8},"end":{"line":70,"column":37}},"27":{"start":{"line":73,"column":6},"end":{"line":81,"column":9}},"28":{"start":{"line":74,"column":49},"end":{"line":74,"column":53}},"29":{"start":{"line":75,"column":18},"end":{"line":79,"column":9}},"30":{"start":{"line":80,"column":8},"end":{"line":80,"column":25}},"31":{"start":{"line":82,"column":6},"end":{"line":82,"column":78}},"32":{"start":{"line":82,"column":29},"end":{"line":82,"column":77}},"33":{"start":{"line":83,"column":6},"end":{"line":83,"column":28}},"34":{"start":{"line":85,"column":20},"end":{"line":85,"column":30}},"35":{"start":{"line":86,"column":26},"end":{"line":86,"column":45}},"36":{"start":{"line":88,"column":4},"end":{"line":88,"column":73}},"37":{"start":{"line":90,"column":4},"end":{"line":92,"column":7}},"38":{"start":{"line":94,"column":4},"end":{"line":112,"column":5}},"39":{"start":{"line":95,"column":6},"end":{"line":95,"column":26}},"40":{"start":{"line":97,"column":6},"end":{"line":99,"column":8}},"41":{"start":{"line":101,"column":9},"end":{"line":112,"column":5}},"42":{"start":{"line":102,"column":6},"end":{"line":102,"column":20}},"43":{"start":{"line":103,"column":6},"end":{"line":105,"column":8}},"44":{"start":{"line":108,"column":6},"end":{"line":108,"column":21}},"45":{"start":{"line":109,"column":6},"end":{"line":111,"column":9}},"46":{"start":{"line":114,"column":5},"end":{"line":114,"column":11}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":22},"end":{"line":9,"column":23}},"loc":{"start":{"line":9,"column":48},"end":{"line":116,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":73,"column":24},"end":{"line":73,"column":25}},"loc":{"start":{"line":73,"column":32},"end":{"line":81,"column":7}},"line":73},"2":{"name":"(anonymous_2)","decl":{"start":{"line":82,"column":19},"end":{"line":82,"column":20}},"loc":{"start":{"line":82,"column":29},"end":{"line":82,"column":77}},"line":82}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":4},"end":{"line":21,"column":5}},"type":"if","locations":[{"start":{"line":19,"column":4},"end":{"line":21,"column":5}},{"start":{},"end":{}}],"line":19},"1":{"loc":{"start":{"line":66,"column":4},"end":{"line":84,"column":5}},"type":"if","locations":[{"start":{"line":66,"column":4},"end":{"line":84,"column":5}},{"start":{},"end":{}}],"line":66},"2":{"loc":{"start":{"line":69,"column":6},"end":{"line":71,"column":7}},"type":"if","locations":[{"start":{"line":69,"column":6},"end":{"line":71,"column":7}},{"start":{},"end":{}}],"line":69},"3":{"loc":{"start":{"line":94,"column":4},"end":{"line":112,"column":5}},"type":"if","locations":[{"start":{"line":94,"column":4},"end":{"line":112,"column":5}},{"start":{"line":101,"column":9},"end":{"line":112,"column":5}}],"line":94},"4":{"loc":{"start":{"line":94,"column":8},"end":{"line":94,"column":65}},"type":"binary-expr","locations":[{"start":{"line":94,"column":8},"end":{"line":94,"column":9}},{"start":{"line":94,"column":13},"end":{"line":94,"column":65}}],"line":94},"5":{"loc":{"start":{"line":101,"column":9},"end":{"line":112,"column":5}},"type":"if","locations":[{"start":{"line":101,"column":9},"end":{"line":112,"column":5}},{"start":{"line":107,"column":9},"end":{"line":112,"column":5}}],"line":101},"6":{"loc":{"start":{"line":101,"column":13},"end":{"line":101,"column":56}},"type":"binary-expr","locations":[{"start":{"line":101,"column":13},"end":{"line":101,"column":14}},{"start":{"line":101,"column":18},"end":{"line":101,"column":56}}],"line":101}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":4,"8":4,"9":4,"10":4,"11":4,"12":4,"13":4,"14":4,"15":4,"16":4,"17":3,"18":3,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"25":2,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":0,"33":1,"34":1,"35":1,"36":1,"37":1,"38":3,"39":1,"40":1,"41":2,"42":1,"43":1,"44":1,"45":1,"46":4},"f":{"0":4,"1":1,"2":0},"b":{"0":[4,0],"1":[2,0],"2":[1,1],"3":[1,2],"4":[3,3],"5":[1,1],"6":[2,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f8f36158e4955cc39b7453ba31bd04c99046f015"} +,"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\controller\\studentController.js": {"path":"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\controller\\studentController.js","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":1,"column":49}},"1":{"start":{"line":2,"column":23},"end":{"line":2,"column":52}},"2":{"start":{"line":3,"column":20},"end":{"line":3,"column":46}},"3":{"start":{"line":4,"column":20},"end":{"line":4,"column":46}},"4":{"start":{"line":5,"column":15},"end":{"line":5,"column":46}},"5":{"start":{"line":6,"column":15},"end":{"line":6,"column":43}},"6":{"start":{"line":10,"column":0},"end":{"line":88,"column":2}},"7":{"start":{"line":11,"column":4},"end":{"line":87,"column":7}},"8":{"start":{"line":12,"column":25},"end":{"line":12,"column":41}},"9":{"start":{"line":13,"column":24},"end":{"line":13,"column":66}},"10":{"start":{"line":14,"column":25},"end":{"line":14,"column":69}},"11":{"start":{"line":15,"column":22},"end":{"line":15,"column":60}},"12":{"start":{"line":16,"column":22},"end":{"line":16,"column":60}},"13":{"start":{"line":18,"column":26},"end":{"line":18,"column":36}},"14":{"start":{"line":19,"column":22},"end":{"line":19,"column":24}},"15":{"start":{"line":20,"column":26},"end":{"line":20,"column":28}},"16":{"start":{"line":22,"column":8},"end":{"line":22,"column":44}},"17":{"start":{"line":23,"column":8},"end":{"line":28,"column":9}},"18":{"start":{"line":24,"column":12},"end":{"line":25,"column":53}},"19":{"start":{"line":27,"column":12},"end":{"line":27,"column":75}},"20":{"start":{"line":30,"column":23},"end":{"line":30,"column":79}},"21":{"start":{"line":31,"column":8},"end":{"line":31,"column":38}},"22":{"start":{"line":33,"column":8},"end":{"line":35,"column":9}},"23":{"start":{"line":34,"column":12},"end":{"line":34,"column":45}},"24":{"start":{"line":37,"column":8},"end":{"line":41,"column":9}},"25":{"start":{"line":38,"column":26},"end":{"line":38,"column":54}},"26":{"start":{"line":39,"column":12},"end":{"line":39,"column":42}},"27":{"start":{"line":40,"column":12},"end":{"line":40,"column":43}},"28":{"start":{"line":42,"column":8},"end":{"line":42,"column":64}},"29":{"start":{"line":44,"column":25},"end":{"line":44,"column":106}},"30":{"start":{"line":45,"column":24},"end":{"line":45,"column":34}},"31":{"start":{"line":46,"column":30},"end":{"line":46,"column":49}},"32":{"start":{"line":48,"column":8},"end":{"line":48,"column":107}},"33":{"start":{"line":50,"column":8},"end":{"line":69,"column":9}},"34":{"start":{"line":51,"column":25},"end":{"line":56,"column":13}},"35":{"start":{"line":58,"column":12},"end":{"line":60,"column":13}},"36":{"start":{"line":59,"column":16},"end":{"line":59,"column":42}},"37":{"start":{"line":62,"column":24},"end":{"line":62,"column":89}},"38":{"start":{"line":64,"column":12},"end":{"line":68,"column":13}},"39":{"start":{"line":65,"column":16},"end":{"line":65,"column":74}},"40":{"start":{"line":67,"column":16},"end":{"line":67,"column":53}},"41":{"start":{"line":71,"column":22},"end":{"line":71,"column":97}},"42":{"start":{"line":73,"column":25},"end":{"line":73,"column":35}},"43":{"start":{"line":74,"column":31},"end":{"line":74,"column":51}},"44":{"start":{"line":76,"column":8},"end":{"line":76,"column":105}},"45":{"start":{"line":77,"column":8},"end":{"line":79,"column":11}},"46":{"start":{"line":81,"column":8},"end":{"line":81,"column":22}},"47":{"start":{"line":82,"column":8},"end":{"line":84,"column":11}},"48":{"start":{"line":86,"column":8},"end":{"line":86,"column":14}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":32},"end":{"line":10,"column":33}},"loc":{"start":{"line":10,"column":58},"end":{"line":88,"column":1}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":8},"end":{"line":28,"column":9}},"type":"if","locations":[{"start":{"line":23,"column":8},"end":{"line":28,"column":9}},{"start":{"line":26,"column":15},"end":{"line":28,"column":9}}],"line":23},"1":{"loc":{"start":{"line":33,"column":8},"end":{"line":35,"column":9}},"type":"if","locations":[{"start":{"line":33,"column":8},"end":{"line":35,"column":9}},{"start":{},"end":{}}],"line":33},"2":{"loc":{"start":{"line":33,"column":12},"end":{"line":33,"column":57}},"type":"binary-expr","locations":[{"start":{"line":33,"column":12},"end":{"line":33,"column":29}},{"start":{"line":33,"column":33},"end":{"line":33,"column":57}}],"line":33},"3":{"loc":{"start":{"line":37,"column":8},"end":{"line":41,"column":9}},"type":"if","locations":[{"start":{"line":37,"column":8},"end":{"line":41,"column":9}},{"start":{},"end":{}}],"line":37},"4":{"loc":{"start":{"line":58,"column":12},"end":{"line":60,"column":13}},"type":"if","locations":[{"start":{"line":58,"column":12},"end":{"line":60,"column":13}},{"start":{},"end":{}}],"line":58},"5":{"loc":{"start":{"line":64,"column":12},"end":{"line":68,"column":13}},"type":"if","locations":[{"start":{"line":64,"column":12},"end":{"line":68,"column":13}},{"start":{"line":66,"column":19},"end":{"line":68,"column":13}}],"line":64},"6":{"loc":{"start":{"line":64,"column":16},"end":{"line":64,"column":49}},"type":"binary-expr","locations":[{"start":{"line":64,"column":16},"end":{"line":64,"column":21}},{"start":{"line":64,"column":25},"end":{"line":64,"column":49}}],"line":64}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":5,"8":5,"9":5,"10":5,"11":5,"12":5,"13":5,"14":5,"15":5,"16":5,"17":5,"18":4,"19":1,"20":4,"21":4,"22":4,"23":4,"24":4,"25":4,"26":4,"27":4,"28":4,"29":4,"30":4,"31":4,"32":4,"33":4,"34":4,"35":4,"36":4,"37":4,"38":3,"39":1,"40":2,"41":3,"42":3,"43":3,"44":3,"45":3,"46":1,"47":1,"48":5},"f":{"0":5},"b":{"0":[4,1],"1":[4,0],"2":[4,4],"3":[4,0],"4":[4,0],"5":[1,2],"6":[3,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"33fe368b1910438793eb2ec818ea912bae098f9a"} +,"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\middleware\\helper.js": {"path":"C:\\Users\\Sanjay V\\Documents\\saral-new\\Project-Saral\\v1.0\\backend\\src\\middleware\\helper.js","statementMap":{"0":{"start":{"line":1,"column":25},"end":{"line":1,"column":56}},"1":{"start":{"line":2,"column":20},"end":{"line":2,"column":45}},"2":{"start":{"line":3,"column":20},"end":{"line":3,"column":46}},"3":{"start":{"line":4,"column":23},"end":{"line":4,"column":51}},"4":{"start":{"line":5,"column":15},"end":{"line":5,"column":34}},"5":{"start":{"line":8,"column":30},"end":{"line":142,"column":1}},"6":{"start":{"line":10,"column":8},"end":{"line":39,"column":9}},"7":{"start":{"line":11,"column":26},"end":{"line":11,"column":64}},"8":{"start":{"line":13,"column":26},"end":{"line":13,"column":85}},"9":{"start":{"line":14,"column":12},"end":{"line":36,"column":13}},"10":{"start":{"line":15,"column":31},"end":{"line":15,"column":48}},"11":{"start":{"line":16,"column":16},"end":{"line":34,"column":17}},"12":{"start":{"line":18,"column":24},"end":{"line":20,"column":25}},"13":{"start":{"line":19,"column":28},"end":{"line":19,"column":71}},"14":{"start":{"line":21,"column":24},"end":{"line":21,"column":30}},"15":{"start":{"line":23,"column":24},"end":{"line":25,"column":25}},"16":{"start":{"line":24,"column":28},"end":{"line":24,"column":71}},"17":{"start":{"line":26,"column":24},"end":{"line":26,"column":30}},"18":{"start":{"line":28,"column":24},"end":{"line":30,"column":25}},"19":{"start":{"line":29,"column":28},"end":{"line":29,"column":71}},"20":{"start":{"line":31,"column":24},"end":{"line":31,"column":30}},"21":{"start":{"line":38,"column":12},"end":{"line":38,"column":24}},"22":{"start":{"line":43,"column":8},"end":{"line":66,"column":9}},"23":{"start":{"line":44,"column":26},"end":{"line":44,"column":64}},"24":{"start":{"line":45,"column":25},"end":{"line":50,"column":13}},"25":{"start":{"line":52,"column":12},"end":{"line":54,"column":13}},"26":{"start":{"line":53,"column":16},"end":{"line":53,"column":72}},"27":{"start":{"line":56,"column":28},"end":{"line":56,"column":73}},"28":{"start":{"line":58,"column":12},"end":{"line":60,"column":13}},"29":{"start":{"line":59,"column":16},"end":{"line":59,"column":72}},"30":{"start":{"line":62,"column":12},"end":{"line":62,"column":23}},"31":{"start":{"line":65,"column":12},"end":{"line":65,"column":23}},"32":{"start":{"line":69,"column":8},"end":{"line":81,"column":9}},"33":{"start":{"line":70,"column":29},"end":{"line":70,"column":73}},"34":{"start":{"line":72,"column":24},"end":{"line":74,"column":13}},"35":{"start":{"line":75,"column":25},"end":{"line":75,"column":55}},"36":{"start":{"line":76,"column":26},"end":{"line":76,"column":55}},"37":{"start":{"line":77,"column":28},"end":{"line":77,"column":83}},"38":{"start":{"line":78,"column":12},"end":{"line":78,"column":40}},"39":{"start":{"line":80,"column":12},"end":{"line":80,"column":23}},"40":{"start":{"line":86,"column":19},"end":{"line":86,"column":21}},"41":{"start":{"line":89,"column":12},"end":{"line":91,"column":13}},"42":{"start":{"line":90,"column":16},"end":{"line":90,"column":23}},"43":{"start":{"line":92,"column":25},"end":{"line":92,"column":29}},"44":{"start":{"line":93,"column":12},"end":{"line":108,"column":13}},"45":{"start":{"line":94,"column":16},"end":{"line":98,"column":17}},"46":{"start":{"line":95,"column":20},"end":{"line":95,"column":46}},"47":{"start":{"line":96,"column":23},"end":{"line":98,"column":17}},"48":{"start":{"line":97,"column":20},"end":{"line":97,"column":31}},"49":{"start":{"line":99,"column":19},"end":{"line":108,"column":13}},"50":{"start":{"line":100,"column":16},"end":{"line":107,"column":17}},"51":{"start":{"line":101,"column":20},"end":{"line":101,"column":50}},"52":{"start":{"line":102,"column":20},"end":{"line":104,"column":21}},"53":{"start":{"line":103,"column":24},"end":{"line":103,"column":50}},"54":{"start":{"line":106,"column":20},"end":{"line":106,"column":32}},"55":{"start":{"line":110,"column":12},"end":{"line":110,"column":34}},"56":{"start":{"line":114,"column":12},"end":{"line":136,"column":13}},"57":{"start":{"line":115,"column":16},"end":{"line":133,"column":18}},"58":{"start":{"line":116,"column":20},"end":{"line":132,"column":21}},"59":{"start":{"line":117,"column":24},"end":{"line":124,"column":25}},"60":{"start":{"line":118,"column":28},"end":{"line":118,"column":58}},"61":{"start":{"line":119,"column":28},"end":{"line":119,"column":64}},"62":{"start":{"line":120,"column":28},"end":{"line":120,"column":108}},"63":{"start":{"line":122,"column":29},"end":{"line":124,"column":25}},"64":{"start":{"line":123,"column":28},"end":{"line":123,"column":90}},"65":{"start":{"line":125,"column":27},"end":{"line":132,"column":21}},"66":{"start":{"line":126,"column":24},"end":{"line":128,"column":25}},"67":{"start":{"line":127,"column":28},"end":{"line":127,"column":42}},"68":{"start":{"line":129,"column":24},"end":{"line":131,"column":26}},"69":{"start":{"line":130,"column":28},"end":{"line":130,"column":78}},"70":{"start":{"line":135,"column":16},"end":{"line":135,"column":81}},"71":{"start":{"line":139,"column":8},"end":{"line":139,"column":36}},"72":{"start":{"line":140,"column":8},"end":{"line":140,"column":20}},"73":{"start":{"line":144,"column":0},"end":{"line":144,"column":39}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":25},"end":{"line":9,"column":26}},"loc":{"start":{"line":9,"column":65},"end":{"line":40,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":42,"column":23},"end":{"line":42,"column":24}},"loc":{"start":{"line":42,"column":70},"end":{"line":67,"column":5}},"line":42},"2":{"name":"(anonymous_2)","decl":{"start":{"line":68,"column":29},"end":{"line":68,"column":30}},"loc":{"start":{"line":68,"column":73},"end":{"line":82,"column":5}},"line":68},"3":{"name":"(anonymous_3)","decl":{"start":{"line":85,"column":42},"end":{"line":85,"column":43}},"loc":{"start":{"line":85,"column":74},"end":{"line":141,"column":5}},"line":85},"4":{"name":"transformData","decl":{"start":{"line":88,"column":17},"end":{"line":88,"column":30}},"loc":{"start":{"line":88,"column":69},"end":{"line":111,"column":9}},"line":88},"5":{"name":"iterateOverObject","decl":{"start":{"line":113,"column":17},"end":{"line":113,"column":34}},"loc":{"start":{"line":113,"column":79},"end":{"line":137,"column":9}},"line":113},"6":{"name":"(anonymous_6)","decl":{"start":{"line":115,"column":41},"end":{"line":115,"column":42}},"loc":{"start":{"line":115,"column":48},"end":{"line":133,"column":17}},"line":115},"7":{"name":"(anonymous_7)","decl":{"start":{"line":129,"column":44},"end":{"line":129,"column":45}},"loc":{"start":{"line":129,"column":57},"end":{"line":131,"column":25}},"line":129}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":16},"end":{"line":34,"column":17}},"type":"switch","locations":[{"start":{"line":17,"column":20},"end":{"line":21,"column":30}},{"start":{"line":22,"column":20},"end":{"line":26,"column":30}},{"start":{"line":27,"column":20},"end":{"line":31,"column":30}},{"start":{"line":32,"column":20},"end":{"line":32,"column":28}}],"line":16},"1":{"loc":{"start":{"line":18,"column":24},"end":{"line":20,"column":25}},"type":"if","locations":[{"start":{"line":18,"column":24},"end":{"line":20,"column":25}},{"start":{},"end":{}}],"line":18},"2":{"loc":{"start":{"line":23,"column":24},"end":{"line":25,"column":25}},"type":"if","locations":[{"start":{"line":23,"column":24},"end":{"line":25,"column":25}},{"start":{},"end":{}}],"line":23},"3":{"loc":{"start":{"line":28,"column":24},"end":{"line":30,"column":25}},"type":"if","locations":[{"start":{"line":28,"column":24},"end":{"line":30,"column":25}},{"start":{},"end":{}}],"line":28},"4":{"loc":{"start":{"line":52,"column":12},"end":{"line":54,"column":13}},"type":"if","locations":[{"start":{"line":52,"column":12},"end":{"line":54,"column":13}},{"start":{},"end":{}}],"line":52},"5":{"loc":{"start":{"line":58,"column":12},"end":{"line":60,"column":13}},"type":"if","locations":[{"start":{"line":58,"column":12},"end":{"line":60,"column":13}},{"start":{},"end":{}}],"line":58},"6":{"loc":{"start":{"line":89,"column":12},"end":{"line":91,"column":13}},"type":"if","locations":[{"start":{"line":89,"column":12},"end":{"line":91,"column":13}},{"start":{},"end":{}}],"line":89},"7":{"loc":{"start":{"line":89,"column":15},"end":{"line":89,"column":110}},"type":"binary-expr","locations":[{"start":{"line":89,"column":15},"end":{"line":89,"column":42}},{"start":{"line":89,"column":46},"end":{"line":89,"column":82}},{"start":{"line":89,"column":86},"end":{"line":89,"column":110}}],"line":89},"8":{"loc":{"start":{"line":93,"column":12},"end":{"line":108,"column":13}},"type":"if","locations":[{"start":{"line":93,"column":12},"end":{"line":108,"column":13}},{"start":{"line":99,"column":19},"end":{"line":108,"column":13}}],"line":93},"9":{"loc":{"start":{"line":93,"column":15},"end":{"line":93,"column":71}},"type":"binary-expr","locations":[{"start":{"line":93,"column":16},"end":{"line":93,"column":27}},{"start":{"line":93,"column":31},"end":{"line":93,"column":47}},{"start":{"line":93,"column":52},"end":{"line":93,"column":71}}],"line":93},"10":{"loc":{"start":{"line":94,"column":16},"end":{"line":98,"column":17}},"type":"if","locations":[{"start":{"line":94,"column":16},"end":{"line":98,"column":17}},{"start":{"line":96,"column":23},"end":{"line":98,"column":17}}],"line":94},"11":{"loc":{"start":{"line":96,"column":23},"end":{"line":98,"column":17}},"type":"if","locations":[{"start":{"line":96,"column":23},"end":{"line":98,"column":17}},{"start":{},"end":{}}],"line":96},"12":{"loc":{"start":{"line":99,"column":19},"end":{"line":108,"column":13}},"type":"if","locations":[{"start":{"line":99,"column":19},"end":{"line":108,"column":13}},{"start":{},"end":{}}],"line":99},"13":{"loc":{"start":{"line":99,"column":22},"end":{"line":99,"column":50}},"type":"binary-expr","locations":[{"start":{"line":99,"column":22},"end":{"line":99,"column":25}},{"start":{"line":99,"column":29},"end":{"line":99,"column":37}},{"start":{"line":99,"column":41},"end":{"line":99,"column":50}}],"line":99},"14":{"loc":{"start":{"line":100,"column":16},"end":{"line":107,"column":17}},"type":"if","locations":[{"start":{"line":100,"column":16},"end":{"line":107,"column":17}},{"start":{"line":105,"column":23},"end":{"line":107,"column":17}}],"line":100},"15":{"loc":{"start":{"line":102,"column":20},"end":{"line":104,"column":21}},"type":"if","locations":[{"start":{"line":102,"column":20},"end":{"line":104,"column":21}},{"start":{},"end":{}}],"line":102},"16":{"loc":{"start":{"line":113,"column":40},"end":{"line":113,"column":46}},"type":"default-arg","locations":[{"start":{"line":113,"column":42},"end":{"line":113,"column":46}}],"line":113},"17":{"loc":{"start":{"line":113,"column":48},"end":{"line":113,"column":57}},"type":"default-arg","locations":[{"start":{"line":113,"column":53},"end":{"line":113,"column":57}}],"line":113},"18":{"loc":{"start":{"line":113,"column":59},"end":{"line":113,"column":77}},"type":"default-arg","locations":[{"start":{"line":113,"column":68},"end":{"line":113,"column":77}}],"line":113},"19":{"loc":{"start":{"line":114,"column":12},"end":{"line":136,"column":13}},"type":"if","locations":[{"start":{"line":114,"column":12},"end":{"line":136,"column":13}},{"start":{"line":134,"column":19},"end":{"line":136,"column":13}}],"line":114},"20":{"loc":{"start":{"line":116,"column":20},"end":{"line":132,"column":21}},"type":"if","locations":[{"start":{"line":116,"column":20},"end":{"line":132,"column":21}},{"start":{"line":125,"column":27},"end":{"line":132,"column":21}}],"line":116},"21":{"loc":{"start":{"line":117,"column":24},"end":{"line":124,"column":25}},"type":"if","locations":[{"start":{"line":117,"column":24},"end":{"line":124,"column":25}},{"start":{"line":122,"column":29},"end":{"line":124,"column":25}}],"line":117},"22":{"loc":{"start":{"line":118,"column":41},"end":{"line":118,"column":57}},"type":"binary-expr","locations":[{"start":{"line":118,"column":41},"end":{"line":118,"column":51}},{"start":{"line":118,"column":55},"end":{"line":118,"column":57}}],"line":118},"23":{"loc":{"start":{"line":119,"column":44},"end":{"line":119,"column":63}},"type":"binary-expr","locations":[{"start":{"line":119,"column":44},"end":{"line":119,"column":57}},{"start":{"line":119,"column":61},"end":{"line":119,"column":63}}],"line":119},"24":{"loc":{"start":{"line":122,"column":29},"end":{"line":124,"column":25}},"type":"if","locations":[{"start":{"line":122,"column":29},"end":{"line":124,"column":25}},{"start":{},"end":{}}],"line":122},"25":{"loc":{"start":{"line":125,"column":27},"end":{"line":132,"column":21}},"type":"if","locations":[{"start":{"line":125,"column":27},"end":{"line":132,"column":21}},{"start":{},"end":{}}],"line":125},"26":{"loc":{"start":{"line":126,"column":24},"end":{"line":128,"column":25}},"type":"if","locations":[{"start":{"line":126,"column":24},"end":{"line":128,"column":25}},{"start":{},"end":{}}],"line":126},"27":{"loc":{"start":{"line":126,"column":27},"end":{"line":126,"column":66}},"type":"binary-expr","locations":[{"start":{"line":126,"column":27},"end":{"line":126,"column":50}},{"start":{"line":126,"column":54},"end":{"line":126,"column":66}}],"line":126}},"s":{"0":8,"1":8,"2":8,"3":8,"4":8,"5":8,"6":3,"7":3,"8":3,"9":3,"10":3,"11":3,"12":1,"13":1,"14":0,"15":1,"16":1,"17":0,"18":1,"19":1,"20":0,"21":3,"22":3,"23":3,"24":3,"25":3,"26":1,"27":2,"28":2,"29":1,"30":1,"31":2,"32":2,"33":2,"34":2,"35":2,"36":2,"37":2,"38":1,"39":1,"40":5,"41":132,"42":20,"43":112,"44":112,"45":1,"46":1,"47":0,"48":0,"49":111,"50":111,"51":55,"52":55,"53":5,"54":56,"55":112,"56":7,"57":7,"58":137,"59":132,"60":12,"61":12,"62":12,"63":120,"64":120,"65":5,"66":5,"67":3,"68":5,"69":2,"70":0,"71":5,"72":5,"73":8},"f":{"0":3,"1":3,"2":2,"3":5,"4":132,"5":7,"6":137,"7":2},"b":{"0":[1,1,1,0],"1":[1,0],"2":[1,0],"3":[1,0],"4":[1,2],"5":[1,1],"6":[20,112],"7":[132,21,20],"8":[1,111],"9":[112,111,1],"10":[1,0],"11":[0,0],"12":[111,0],"13":[111,25,0],"14":[55,56],"15":[5,50],"16":[5],"17":[5],"18":[5],"19":[7,0],"20":[132,5],"21":[12,120],"22":[12,2],"23":[12,2],"24":[120,0],"25":[5,0],"26":[3,2],"27":[5,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2753bd46e70d8e3eb7d2beccb2f5273855bcbe46"} } diff --git a/v1.0/backend/output/coverage/lcov-report/controller/brandController.js.html b/v1.0/backend/output/coverage/lcov-report/controller/brandController.js.html index a422d105a..79f40e374 100644 --- a/v1.0/backend/output/coverage/lcov-report/controller/brandController.js.html +++ b/v1.0/backend/output/coverage/lcov-report/controller/brandController.js.html @@ -23,9 +23,9 @@

All files / controller
- 90.9% + 93.02% Statements - 20/22 + 40/43
@@ -44,9 +44,9 @@

All files / controller
- 90.9% + 93.02% Lines - 20/22 + 40/43
@@ -115,7 +115,36 @@

All files / controller 50 51 52 -532x +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +812x +2x 2x     @@ -124,8 +153,17 @@

All files / controller 3x   3x +3x +3x   3x +3x +  +3x +1x +1x +  +1x 1x   2x @@ -133,6 +171,10 @@

All files / controller 2x 1x 1x +1x +  +1x +1x       @@ -144,15 +186,26 @@

All files / controller       +        +3x +      2x 2x 2x 2x +2x +2x +  +2x +1x +1x +1x +  1x 1x   @@ -164,26 +217,43 @@

All files / controller     1x +1x       - 
const Schools = require('../models/school')
-const Brands = require('../models/brand')
+2x
+ 
+ 
const schoolsSchema = require('../models/school')
+const brandsSchema = require('../models/brand')
+const logger = require('../logging/logger')
  
  
 exports.fetchBrandData = async (req, res, next) => {
     try {
-        const school = await Schools.findOne({ schoolId: req.school.schoolId , $comment: "Find School Data"})
+        const startTime = new Date()
+ 
+        let connection = req.dbConnection;
+        const Schools = connection.model('Schools', schoolsSchema)
+        const Brands = connection.model('Brands', brandsSchema)
  
+        const school = await Schools.findOne({ schoolId: req.school.schoolId , $comment: "Find School Data"})
         const brand = await Brands.findOne({ state: school.state ,  $comment: "Fetch Brand Data API For Find Brand according to state." }, { _id: 0, __v: 0, createdAt: 0, updatedAt: 0 })
  
         if (brand && typeof brand == "object") {
+            const endTime = new Date();
+            const executionTime = endTime - startTime;
+    
+            logger.info(`Execution time for Get Brand API : ${executionTime}ms`);
             res.status(200).json(brand)
         } else {
             const defaultBrand = await Brands.find({ state: { $exists: false } , $comment: "Fetch Brand Data API For Find Brand where state is not present."  }, { appName: 1, themeColor1: 1, themeColor2: 1, logoImage: 1, _id: 0 }).lean()
  
             if (defaultBrand && defaultBrand.length) {
                 let resultObj = defaultBrand[0]
+                const endTime2 = new Date();
+                const executionTime2 = endTime2 - startTime;
+        
+                logger.info(`Execution time for Get Brand (DEFAULT) API : ${executionTime2}ms`);
                 res.status(200).json({
                     ...resultObj
                 });
@@ -195,17 +265,28 @@ 

All files / controller }   } catch (e) { + logger.warn(e) res.status(400).json({ e }); - } + }finally { + next() + } }   exports.fetchDefaultBrandData = async (req, res, next) => { try { - const brand = await Brands.find({ state: { $exists: false } ,$comment: "Fetch Default Brand Data API For Find Brand where state is not present."}, { appName: 1, themeColor1: 1, themeColor2: 1, logoImage: 1, _id: 0 }).lean() + const startTime = new Date(); + let connection = req.dbConnection; + const Brands = connection.model('Brands', brandsSchema) + const brand = await Brands.find({ state: { $exists: false } , $comment: "Fetch Brand Data API For Find Brand where state is not present." }, { appName: 1, themeColor1: 1, themeColor2: 1, logoImage: 1, _id: 0 }).lean() + if (brand.length) { let resultObj = brand[0] + const endTime = new Date(); + const executionTime = endTime - startTime; + + logger.info(`Execution time for Get Default Brand API : ${executionTime}ms`); res.status(200).json({ ...resultObj })   } else E{ @@ -215,10 +296,13 @@

All files / controller }   } catch (e) { + logger.warn(e) res.status(400).json({ e }); - } + } finally { + next() + } }

@@ -226,7 +310,7 @@

All files / controller