diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 91f31b23cd31465f35cf698136939ff7429bd78d..e40f00eb1666eacd5f1016f99ebcf94199eb85ae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,8 @@ variables: PORT: 80 REPLICA: 1 UTEST_RUNTIME_IMAGE: seistore-svc-runtime + SDMS_MIN_REPLICAS: 1 + SDMS_MAX_REPLICAS: 5 #aws variables AWS_SERVICE: seismic-store @@ -34,7 +36,7 @@ variables: OSDU_GCP_APPLICATION: seismic-store OSDU_GCP_ENTITLEMENT_BASE_URL_PATH: /entitlements/v2 OSDU_GCP_DATA_PARTITION_REST_HEADER_KEY: data-partition-id - OSDU_GCP_DES_SERVICE_HOST_COMPLIANCE: https://os-legal-attcrcktoa-uc.a.run.app/api + OSDU_GCP_DES_SERVICE_HOST_COMPLIANCE: https://community.osdu-gcp.go3-nrg.projects.epam.com/api OSDU_GCP_DES_SERVICE_HOST_STORAGE: https://os-storage-attcrcktoa-uc.a.run.app/api OSDU_GCP_ENV_VARS: CLOUDPROVIDER=${OSDU_GCP_CLOUD_PROVIDER},DES_SERVICE_HOST_PARTITION=${OSDU_GCP_PARTITION_API},ENTITLEMENT_BASE_URL_PATH=${OSDU_GCP_ENTITLEMENT_BASE_URL_PATH},DATA_PARTITION_REST_HEADER_KEY=${OSDU_GCP_DATA_PARTITION_REST_HEADER_KEY},DES_SERVICE_HOST_STORAGE=${OSDU_GCP_DES_SERVICE_HOST_STORAGE},DES_SERVICE_HOST_COMPLIANCE=${OSDU_GCP_DES_SERVICE_HOST_COMPLIANCE},SEISTORE_DES_TARGET_AUDIENCE=${GOOGLE_AUDIENCE},SERVICE_CLOUD_PROJECT=${OSDU_GCP_PROJECT},APP_ENVIRONMENT_IDENTIFIER=${TENANT},IMP_SERVICE_ACCOUNT_SIGNER=${OSDU_GCP_IMP_SERVICE_ACCOUNT_SIGNER},DES_SERVICE_HOST_ENTITLEMENT=${OSDU_GCP_ENTITLEMENTS_V2_BASE_URL},SEISTORE_DES_APPKEY=${OSDU_GCP_SEISTORE_DES_APPKEY},DES_REDIS_INSTANCE_ADDRESS=${OSDU_GCP_DES_REDIS_INSTANCE_ADDRESS},DES_REDIS_INSTANCE_PORT=${OSDU_GCP_DES_REDIS_INSTANCE_PORT},LOCKSMAP_REDIS_INSTANCE_ADDRESS=${OSDU_GCP_LOCKSMAP_REDIS_INSTANCE_ADDRESS} --vpc-connector=$OSDU_GCP_VPC_CONNECTOR @@ -52,6 +54,9 @@ include: # lint - local: "/devops/osdu/scanners/lint-node.yml" + + # scan for secrets + - local: "/devops/osdu/scanners/scan-for-secrets-node.yml" # containerize - project: "osdu/platform/ci-cd-pipelines" diff --git a/NOTICE b/NOTICE index c7b1ebf3a03ca2a287a16a8d1b5097153c1932f9..3db75a0bcb29311cbbcaa8fc7e01e3a9ef6c6b9b 100644 --- a/NOTICE +++ b/NOTICE @@ -468,7 +468,7 @@ The following software have components provided under the terms of this license: - cross-spawn (from https://www.npmjs.com/package/cross-spawn) - crypto-random-string (from https://www.npmjs.com/package/crypto-random-string) - d64 (from https://www.npmjs.com/package/d64) -- dashdash (from https://github.com/trentm/node-dashdash) +- dashdash (from https://www.npmjs.com/package/dashdash) - date-and-time (from https://www.npmjs.com/package/date-and-time) - date-format (from https://www.npmjs.com/package/date-format) - date-format (from https://www.npmjs.com/package/date-format) @@ -511,7 +511,7 @@ The following software have components provided under the terms of this license: - execa (from https://www.npmjs.com/package/execa) - express (from https://www.npmjs.com/package/express) - extend (from https://www.npmjs.com/package/extend) -- extsprintf (from https://github.com/davepacheco/node-extsprintf) +- extsprintf (from https://www.npmjs.com/package/extsprintf) - fast-deep-equal (from https://www.npmjs.com/package/fast-deep-equal) - fast-json-stable-stringify (from https://www.npmjs.com/package/fast-json-stable-stringify) - fast-safe-stringify (from https://www.npmjs.com/package/fast-safe-stringify) @@ -708,7 +708,7 @@ The following software have components provided under the terms of this license: - performance-now (from https://www.npmjs.com/package/performance-now) - priorityqueuejs (from https://www.npmjs.com/package/priorityqueuejs) - process (from https://www.npmjs.com/package/process) -- process-nextick-args (from https://github.com/calvinmetcalf/process-nextick-args) +- process-nextick-args (from https://www.npmjs.com/package/process-nextick-args) - promise.prototype.finally (from https://www.npmjs.com/package/promise.prototype.finally) - protobufjs (from https://www.npmjs.com/package/protobufjs) - proxy-addr (from https://www.npmjs.com/package/proxy-addr) @@ -815,7 +815,7 @@ The following software have components provided under the terms of this license: - universalify (from https://www.npmjs.com/package/universalify) - unpipe (from https://github.com/stream-utils/unpipe) - untildify (from https://www.npmjs.com/package/untildify) -- url (from https://github.com/defunctzombie/node-url#readme) +- url (from https://www.npmjs.com/package/url) - url-join (from https://www.npmjs.com/package/url-join) - urllib3 (from https://urllib3.readthedocs.io/) - util-deprecate (from https://github.com/TooTallNate/util-deprecate) @@ -827,7 +827,7 @@ The following software have components provided under the terms of this license: - uuid (from https://www.npmjs.com/package/uuid) - uuid (from https://www.npmjs.com/package/uuid) - vary (from https://www.npmjs.com/package/vary) -- verror (from https://github.com/davepacheco/node-verror) +- verror (from https://www.npmjs.com/package/verror) - which (from https://github.com/isaacs/node-which#readme) - which-module (from https://www.npmjs.com/package/which-module) - wide-align (from https://www.npmjs.com/package/wide-align) @@ -930,3 +930,4 @@ The following software have components provided under the terms of this license: - jmespath (from https://www.npmjs.com/package/jmespath) - json-schema (from http://github.com/kriszyp/json-schema) - querystring (from https://www.npmjs.com/package/querystring) +- sax (from https://www.npmjs.com/package/sax) \ No newline at end of file diff --git a/devops/azure/chart/helm-config.yaml b/devops/azure/chart/helm-config.yaml index 6caba091990e29224102014b2c2566324bd9c3d2..7f8cbf9cf511e8bd6fe6d802b8668ea021022c8e 100644 --- a/devops/azure/chart/helm-config.yaml +++ b/devops/azure/chart/helm-config.yaml @@ -2,6 +2,8 @@ global: replicaCount: #{REPLICA_COUNT}# namespace: osdu podidentity: osdu-identity + minReplicaCount: #{SDMS_MIN_REPLICAS}# + maxReplicaCount: #{SDMS_MAX_REPLICAS}# configEnv: cloudProvider: #{PROVIDER_NAME}# diff --git a/devops/azure/chart/templates/hpa.yaml b/devops/azure/chart/templates/hpa.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a3261666d6600c44107ee8d5906b13d5c1772717 --- /dev/null +++ b/devops/azure/chart/templates/hpa.yaml @@ -0,0 +1,42 @@ +apiVersion: autoscaling/v2beta2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }} + namespace: osdu +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }} + minReplicas: {{ .Values.global.minReplicaCount }} + maxReplicas: {{ .Values.global.maxReplicaCount }} + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 50 + behavior: + scaleDown: + stabilizationWindowSeconds: 300 + # Either remove 20% of current pods or 2 pods (whichever is lower) every 15 seconds until the the HPA stabilizes + selectPolicy: Min + policies: + - type: Percent + value: 20 + periodSeconds: 15 + - type: Pods + value: 2 + periodSeconds: 15 + scaleUp: + stabilizationWindowSeconds: 0 + # Either add 100% of current pods or 4 pods (whichever is higher) every 1 second until the the HPA stabilizes + selectPolicy: Max + policies: + - type: Percent + value: 85 + periodSeconds: 1 + - type: Pods + value: 4 + periodSeconds: 1 \ No newline at end of file diff --git a/devops/azure/chart/templates/service.yaml b/devops/azure/chart/templates/service.yaml index 54ca4be44d552dd69e4c1aea8e2eb53738fca4fa..3705667611737014fdd60abee1b92e1b6c814a4c 100644 --- a/devops/azure/chart/templates/service.yaml +++ b/devops/azure/chart/templates/service.yaml @@ -12,5 +12,6 @@ spec: - protocol: TCP port: 80 targetPort: 80 + name: http selector: - app: {{ .Release.Name }} \ No newline at end of file + app: {{ .Release.Name }} diff --git a/devops/docker/detect_secrets/.secrets.baseline b/devops/docker/detect_secrets/.secrets.baseline index 813a38174e05b68e48bebcb753483a8fe5d038be..213c27874ffe0ef6dbea7495f50cc16e91951a1b 100644 --- a/devops/docker/detect_secrets/.secrets.baseline +++ b/devops/docker/detect_secrets/.secrets.baseline @@ -87,6734 +87,15 @@ }, { "path": "detect_secrets.filters.heuristic.is_templated_secret" + }, + { + "path": "detect_secrets.filters.regex.should_exclude_file", + "pattern": [ + "npm-shrinkwrap.json", + "package.json" + ] } ], - "results": { - "devops\\scripts\\azure_jwt_client.py": [ - { - "type": "JSON Web Token", - "filename": "devops\\scripts\\azure_jwt_client.py", - "hashed_secret": "3390a0ba726675aadafe9f6858917d205235fb46", - "is_verified": false, - "line_number": 53 - } - ], - "npm-shrinkwrap.json": [ - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "713070d135406d8985f0bc8ecebded953b8104d6", - "is_verified": false, - "line_number": 10 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "83abd804165c868257ebc0d94b2ed0372e0b292b", - "is_verified": false, - "line_number": 18 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f2d2c3234574c75a4acce65d9d0f15f348e6df73", - "is_verified": false, - "line_number": 23 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ce946d10acce7264938322f4cd59799286682fcc", - "is_verified": false, - "line_number": 34 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1bee111a8c7715006eb942992b5cdf9b5ffd0ac9", - "is_verified": false, - "line_number": 56 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7a0586b51936eb843aedbb5a3832217bebc3eff7", - "is_verified": false, - "line_number": 66 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "204edd14679f8fbbafe4e933df4a8365cf34f399", - "is_verified": false, - "line_number": 76 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "304e6c1afc33f1650678a8d462cd8ee7922543fe", - "is_verified": false, - "line_number": 83 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5cc6f0b81da8d169b3828eff239831832f634828", - "is_verified": false, - "line_number": 94 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "08f360a813f1b98f654e9cd644a894cf7d57e61b", - "is_verified": false, - "line_number": 102 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ffb10289035e255730999470c2c67ff59197203d", - "is_verified": false, - "line_number": 112 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8ecd6866e9580d7008fe74a0650b5440071194a6", - "is_verified": false, - "line_number": 129 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "99a2673cb856b1ff3876b80fb69940edf52390f8", - "is_verified": false, - "line_number": 137 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "84acac03db70c555cc0810b2709d07523cc3370d", - "is_verified": false, - "line_number": 149 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "77270bc39d4835f004bd03e3ebce6d367b65f529", - "is_verified": false, - "line_number": 166 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fd933c71e82d5519ae0cb0779b370d02f6935759", - "is_verified": false, - "line_number": 176 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a33cb141db456be963a83db4b2f415a6b6753b3f", - "is_verified": false, - "line_number": 183 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "57b038078cea8a7bb0479bba9395106d9c57a0ee", - "is_verified": false, - "line_number": 198 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "48c17d7a69cb9714377c0c661759572fbebbae3c", - "is_verified": false, - "line_number": 206 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "06387d2796daff2f9ddf3c7315badc06d326e0fc", - "is_verified": false, - "line_number": 222 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e95698d066d3ab0c0c947ee88d9ef4a9359903b7", - "is_verified": false, - "line_number": 231 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "756444bea4ea3d67844d8ddf58ad32356e9c2430", - "is_verified": false, - "line_number": 263 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9fda10771117cd0838110f9ecf461dd956fa92fc", - "is_verified": false, - "line_number": 269 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "57bdf3aed066780f7864443187199836970a2413", - "is_verified": false, - "line_number": 277 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fcbdcf8dd47a7a8b6e45d714118cf01dc2940a3b", - "is_verified": false, - "line_number": 297 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f32f3df3e6b9cf9ce337f01a56201efdec813748", - "is_verified": false, - "line_number": 308 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f793b0bc967cdaf2a5e532fa4f41a574b0aa6234", - "is_verified": false, - "line_number": 317 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8715705a5698c6b4835b2341fd629a17e00552f8", - "is_verified": false, - "line_number": 326 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b697ca0055621834a13107d5d0c401f4c2c889de", - "is_verified": false, - "line_number": 337 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ed5695eb040e5c940801b8d72eb96490e4b2f11e", - "is_verified": false, - "line_number": 348 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bb05672f29d196996d896664a1b8ab1d5b96fe4d", - "is_verified": false, - "line_number": 357 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3de084e244b8cee5e85a65912415cc90ea37b393", - "is_verified": false, - "line_number": 368 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8368db68b0ace9e898989e5e645c5e1eddf99b11", - "is_verified": false, - "line_number": 374 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c8487eed1393b0a748ba9dc962882e46fddcb393", - "is_verified": false, - "line_number": 385 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e03d2e7f94cae96de01e239439396d9c76214431", - "is_verified": false, - "line_number": 391 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "12b26ade82b19da64ce07e048c7878c3b9b8c226", - "is_verified": false, - "line_number": 402 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f53722a143bd2448db211cc541abe739b052af54", - "is_verified": false, - "line_number": 430 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0b472e36aa0acfbb6d7a6efc9ca9fcb36b77a570", - "is_verified": false, - "line_number": 441 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b67f98ee32923667953241d816d9fd8b73b05031", - "is_verified": false, - "line_number": 457 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "06884be634acb9ff16562ab93522093244b75a4e", - "is_verified": false, - "line_number": 465 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "922ac7db4914c20910496a41c474631928d6c2f2", - "is_verified": false, - "line_number": 476 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d5e822897b1f37e6ce1a864e2ba9af8f9bfc5539", - "is_verified": false, - "line_number": 490 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2a57a9814486d6f83257ec94e65d1024819611b8", - "is_verified": false, - "line_number": 495 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1b8baff471379ae80650e5966c6455bd1bfc3e9f", - "is_verified": false, - "line_number": 505 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "321d8a37da2048b7932d3e801da87b02fb55c03b", - "is_verified": false, - "line_number": 512 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "29677635c24f38ef76d0ce8c0ff4014bc0e622c7", - "is_verified": false, - "line_number": 528 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e53e2b721d313d270aadf533b0c8ea15603d9b7c", - "is_verified": false, - "line_number": 541 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1dea4ebe4fcca28841d636b8746d4e405a5f84a7", - "is_verified": false, - "line_number": 551 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e126351ec9125a7f29dd9ce40ff1c4746a177c77", - "is_verified": false, - "line_number": 561 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "67da6a18e55c239fbc3e01dbcc87f0c915533121", - "is_verified": false, - "line_number": 577 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6f1ca2e8e002edd367bb8d5ea36ba7a11e1c7e9f", - "is_verified": false, - "line_number": 593 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d7a768e2790978c276b4aea6aa150ebd4eb11aa4", - "is_verified": false, - "line_number": 600 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "771c004033094f92422624303105d5fbfa354622", - "is_verified": false, - "line_number": 642 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ad42fb5aaad2ee89c59dfb5d15510ff787f82bc4", - "is_verified": false, - "line_number": 651 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e4865c8840af7e0bda1f5e5ba4660f31f8258a5f", - "is_verified": false, - "line_number": 661 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "650424494ee4e850247a2758430e457f4565ce20", - "is_verified": false, - "line_number": 669 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "84a2bb6415dd8f86ab37242e1ae5f4c521f1b148", - "is_verified": false, - "line_number": 680 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0ec51849544eb8570c85a3a30a28c3ecffa20916", - "is_verified": false, - "line_number": 692 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0644458e8c9bf33f5b0e57659e364d25d63c5558", - "is_verified": false, - "line_number": 701 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "093e4712596c8906a9d71ae1a85d19a0365b49e9", - "is_verified": false, - "line_number": 717 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5a19590e07656d46716b85402a38bb5ab5b0cc13", - "is_verified": false, - "line_number": 725 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "99b3665d4d90125291080d6a5bd3ffcfab884722", - "is_verified": false, - "line_number": 736 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2a9de3b5d16a23ea19ccb4938ca38f28aeddff73", - "is_verified": false, - "line_number": 741 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "75c933d323a527128cef3c231b1bd71037848755", - "is_verified": false, - "line_number": 751 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d7cdb9c755d36ef6bba01ff385c215194d07c523", - "is_verified": false, - "line_number": 760 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b59f2dc6dc242975c0a10b77533dfdbd813c248d", - "is_verified": false, - "line_number": 768 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "df92b1a39f67f3eddfe1c63b4285ba2fccac7b67", - "is_verified": false, - "line_number": 780 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "44c7ecfd47e1b85be18de43744314e6ab196b697", - "is_verified": false, - "line_number": 788 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "03edbe2e35e4244d03ec1f59ae4b9e86cb180365", - "is_verified": false, - "line_number": 793 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2b7a737724211b0aed56463a3bc6221932af375e", - "is_verified": false, - "line_number": 800 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b2d4223382b1bc4f5471250f157862aee163be4b", - "is_verified": false, - "line_number": 917 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "845dc099e966cd856142787f8cbb61fe439e4e00", - "is_verified": false, - "line_number": 932 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e8d1e590a9d972bd90e5d5d3a603a14ca8d8ca4d", - "is_verified": false, - "line_number": 954 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "cc9188e0e274fe4b8d24847a7a65c0e1a14845f6", - "is_verified": false, - "line_number": 962 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f53d74d7bf1f9ba773f743e6d3fcafc577ad4d8a", - "is_verified": false, - "line_number": 967 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2b898a45b55bf8f54b9738420aee1eadcc6d2c54", - "is_verified": false, - "line_number": 988 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7755950a3e5a7312d1f51644839c8758c84b6e66", - "is_verified": false, - "line_number": 1043 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "09a98c65fca85f505c79f4e2e8f8677d76fa09e7", - "is_verified": false, - "line_number": 1051 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "53227afa9451947bae9e8cf7b81a284c75fbf423", - "is_verified": false, - "line_number": 1059 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bbf8abeac9229f5feff9d0c77c8357bf3077e697", - "is_verified": false, - "line_number": 1071 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "461f36bca1300527f8ef4343dcea8ed8d1c0592f", - "is_verified": false, - "line_number": 1076 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "61642c5726c683482266d7c1767ea19ace67e6cc", - "is_verified": false, - "line_number": 1088 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "82716fc9093c847e6ec9bfebaa83eda6f605b3e5", - "is_verified": false, - "line_number": 1097 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1a003141957154f332dbd5c46b806e1cf4b55c26", - "is_verified": false, - "line_number": 1113 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "63d9b233c4c6726db3eea4d792836aefd414617f", - "is_verified": false, - "line_number": 1164 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "50e36c365704961fed30718c52e5a022842f002c", - "is_verified": false, - "line_number": 1176 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a11673480042654afdc38575309b1419e9d291a0", - "is_verified": false, - "line_number": 1215 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d69c03a6c481565a321e7b90776918eaad16e532", - "is_verified": false, - "line_number": 1225 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fd33dd14173bfd70078d8447a2a8fc99ff1cf02f", - "is_verified": false, - "line_number": 1235 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0953b82fdcdc848b166e849bf9321103a59b43d0", - "is_verified": false, - "line_number": 1258 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d92befdcf0dd4cd007d91c5f0e9e244584b83988", - "is_verified": false, - "line_number": 1284 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a2440e4822a884042f53c59108ecc51311780c93", - "is_verified": false, - "line_number": 1300 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "554bf1dc2efb739ca897b0b3f359ba3569dabb12", - "is_verified": false, - "line_number": 1345 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c85e816bdd25dbf61ad965be1968207ab85423a9", - "is_verified": false, - "line_number": 1388 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f1a98f3032e42cfbc7de8f25a5e7d2a9cc2ef245", - "is_verified": false, - "line_number": 1405 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "463e94fb25c6fe5ecc09be54b8ef54e1a85d6d9b", - "is_verified": false, - "line_number": 1417 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "059d50c29fd1544cda7e0d3145bea62afb837504", - "is_verified": false, - "line_number": 1428 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "53eb81011e58d13ba36abf0a63335aadd4018a92", - "is_verified": false, - "line_number": 1440 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e6faa8eb0aeed0c05a213ef7a7956139c794d07f", - "is_verified": false, - "line_number": 1460 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1c1c16799957f77d54bac4782677b9b1e1c2a0f3", - "is_verified": false, - "line_number": 1465 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d5ec021cbb92c3486e38fac176f4f59a6c1d92e8", - "is_verified": false, - "line_number": 1526 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b27ff3ac762b6be92fb5f3d3d3808f18a77e63f2", - "is_verified": false, - "line_number": 1563 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "622a3612bd67f8e5a4483d7ddb99a3eb02668ef5", - "is_verified": false, - "line_number": 1573 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "10539f1a5f9805d0e2798637338bc2f23c05837c", - "is_verified": false, - "line_number": 1588 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "17de9618066016056e7d1dd8690049fe6159a218", - "is_verified": false, - "line_number": 1597 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "accd3d42ae3e5a54f5c871a2c507ec4d5955911f", - "is_verified": false, - "line_number": 1609 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8c52ca0333f52041452294fac04a9d131857498a", - "is_verified": false, - "line_number": 1617 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3267e201609bb7bdc3ffdfd9c041536d4878bdba", - "is_verified": false, - "line_number": 1623 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2f7616613b9a1365c6bd51db2725d55351eaba7d", - "is_verified": false, - "line_number": 1647 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4f17038a7f4c22cc94c842753eef5e7fc81087a7", - "is_verified": false, - "line_number": 1670 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7df64a619d00be88db778db8ded581dbeec4ccf0", - "is_verified": false, - "line_number": 1679 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "22c2070640ae8ee15a21e0938de09b1c70a22fe8", - "is_verified": false, - "line_number": 1694 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "36cef48debb26fe0dff6721ad27a0a482cfbc372", - "is_verified": false, - "line_number": 1705 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8675afed357f047e9999e4bf8e2a7c2d33400dde", - "is_verified": false, - "line_number": 1725 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ae1e79c9fe967805b9aefaba1322e28f7589f954", - "is_verified": false, - "line_number": 1759 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "22c5290c63ad664e1a226cc04eff3d5a10c70e7f", - "is_verified": false, - "line_number": 1792 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "aad3d26852c0d24314486991e4ed4235c00746db", - "is_verified": false, - "line_number": 1797 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "43dc0d46006033cc67b0e0b9080247b4a346c193", - "is_verified": false, - "line_number": 1805 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ba583b7d05f061b91093b947efc72b674177be51", - "is_verified": false, - "line_number": 1810 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "729d707b3a1922c4b5fc4075869f618fcec6cbe5", - "is_verified": false, - "line_number": 1841 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "31e40475feac5ac39452c59090abfb5b60d8779d", - "is_verified": false, - "line_number": 1856 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "14e736d5c6fc8d1b8c28f8b75b49296816092977", - "is_verified": false, - "line_number": 1880 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c4df4b6857390c2d58bff0e0230b0e7d39a6f88d", - "is_verified": false, - "line_number": 1885 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "40d3d610ad244612a19fb1750014aaf7f6b4cadd", - "is_verified": false, - "line_number": 1912 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8d73d8305636ee95590d6dec473b9b324bcfbe1d", - "is_verified": false, - "line_number": 1917 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "69b85e63f93da0757b54ca7c4a1af4c8a970d3df", - "is_verified": false, - "line_number": 1923 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0488335dc41166beb78a0f6963a8f66a78d5c020", - "is_verified": false, - "line_number": 1934 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8623abb3e657eb53add3e32d2d18abb9c431688a", - "is_verified": false, - "line_number": 1943 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1db167079aca7da50d198b964334b75bd9983db3", - "is_verified": false, - "line_number": 1948 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e60716d47e13d2b0cb49517ea127da3badd9cae3", - "is_verified": false, - "line_number": 1953 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f0361d8610a19499075c201031a4e07204f1d32c", - "is_verified": false, - "line_number": 1958 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "092a06ab0d3a8c26a47f45169e3e6d38e3c87e5b", - "is_verified": false, - "line_number": 1972 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "20926572a6704aa78aa0522110a45e5f249bdfed", - "is_verified": false, - "line_number": 1977 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "30abf9a0558fd0de2140d62a73b06c70ec18fea4", - "is_verified": false, - "line_number": 1992 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "497aae2deb0d31695c26b84d87ad47682b7f58b5", - "is_verified": false, - "line_number": 1997 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "64be812ac39fe54ed19b43be21c324ede58f9f6c", - "is_verified": false, - "line_number": 2006 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a467aa05ca90f90f5517cce12f703faf34ea1eca", - "is_verified": false, - "line_number": 2016 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "27fafab8e5c0ddc1b46027566a2aba46cc2bba83", - "is_verified": false, - "line_number": 2027 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bdb947c3defd69d133bb734bd12ee8c5f31252c2", - "is_verified": false, - "line_number": 2033 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0b95da5a90e063654ae7a967bf2a5d618c123b22", - "is_verified": false, - "line_number": 2038 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "526bb100634721b37b7bb842dec9be5464895b4d", - "is_verified": false, - "line_number": 2044 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "49d27122dda1f0e47ccac08fba63472df1c81b35", - "is_verified": false, - "line_number": 2053 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2ffec92ba1cb96465e9e975f35c07dba37f48d9c", - "is_verified": false, - "line_number": 2062 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1e17cf7a1c7d35d4d7a479798ae539805e428215", - "is_verified": false, - "line_number": 2067 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "aa53b50cae152240536c42608dfd1154376095c7", - "is_verified": false, - "line_number": 2073 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "42159d8280931108aa5fd79ba75fb843f8ef5074", - "is_verified": false, - "line_number": 2078 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "08721f9a3f4bfb7b2ed44a9ee4f7909bc053cf78", - "is_verified": false, - "line_number": 2086 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a256b8b56c449c01cadffd43992a2de79202812e", - "is_verified": false, - "line_number": 2095 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f8cef343c17439abdc44a70f71bbead879800f41", - "is_verified": false, - "line_number": 2100 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "372580ca6d48f74e9d6475fb06b95ac6abb6177f", - "is_verified": false, - "line_number": 2108 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d42378cd4f3022e5e1679bfe8c305a2eb647a8c0", - "is_verified": false, - "line_number": 2118 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c4c891e3b72ac2f38c382043372c568ea603db97", - "is_verified": false, - "line_number": 2127 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fc1b34d2dc0a8f6cf0d8ded30c0771de52ae7168", - "is_verified": false, - "line_number": 2136 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "da2b2e6016b026ace10c6f757158d0a6319bd9a7", - "is_verified": false, - "line_number": 2144 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7a0c87cf97098eebf654745cd3e70cb104c8fcd4", - "is_verified": false, - "line_number": 2153 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "87c55a124423f0b218a83a3393ec37d6e0d5bc4a", - "is_verified": false, - "line_number": 2162 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6d0e2933ecfe11c9e87a3413b950ece209578a44", - "is_verified": false, - "line_number": 2167 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3b8be9cec99ddc9af28d1557040d2ddca4b800c7", - "is_verified": false, - "line_number": 2172 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "21f3f2677475d82d3bf785d6f9a5abe017b5409b", - "is_verified": false, - "line_number": 2178 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1b4fd356c693949bd6dbe6ca9f93bfd77b9d18ad", - "is_verified": false, - "line_number": 2183 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bf94cff1cc679cbf00b825d3e3c57f36f39149ec", - "is_verified": false, - "line_number": 2204 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b8e8ea78154352778ce6c41eb733ea459cbca784", - "is_verified": false, - "line_number": 2211 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "507093beab002cb5176cc4fdd361d39b35a43368", - "is_verified": false, - "line_number": 2216 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9662148ac502422b7aaddaa921c4498ce5daecf2", - "is_verified": false, - "line_number": 2225 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "19a103962827d9a8dbb0b4509f908c1612a9950d", - "is_verified": false, - "line_number": 2234 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f0a8e7c444683f9e5309d3a1443150b19880c4db", - "is_verified": false, - "line_number": 2245 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "33c32f149b326f1bce8159a62091a38113c3c43a", - "is_verified": false, - "line_number": 2257 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "76d2249ba356abb1bc625726cfb043aa796daf5a", - "is_verified": false, - "line_number": 2267 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e7759899809903d19e7f57fdb8cf18d942398370", - "is_verified": false, - "line_number": 2276 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f1446b84cd677644bb3e9ef0d2e604cf88fc48db", - "is_verified": false, - "line_number": 2282 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "50936f6afdebc8f7c93616c1bd01e55d842275da", - "is_verified": false, - "line_number": 2292 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "72423082199cd7cdad4314ac5e82899b11cf695b", - "is_verified": false, - "line_number": 2297 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2073ed075f3660a0109af5aebac350ff2cda886e", - "is_verified": false, - "line_number": 2305 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "87b487b84c6bef6374fb6933f828386080f4f1d3", - "is_verified": false, - "line_number": 2323 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "471e5e779b70df804b6e5e97a9b911362542657b", - "is_verified": false, - "line_number": 2329 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "86c936c2fd0b15334fb3e7e08ea42b385c42f7a1", - "is_verified": false, - "line_number": 2334 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a896da46c897d3a0d007843006621f78dbcabf51", - "is_verified": false, - "line_number": 2342 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e2e1866b6cbdf718d5683064e5d5bccbb0ba8228", - "is_verified": false, - "line_number": 2351 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "39fb362f866f2bfcb16260885e930433ac3f8d7c", - "is_verified": false, - "line_number": 2369 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "944def249b215292d02ded1190ecfb5f71bd00c8", - "is_verified": false, - "line_number": 2379 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bfa6c39120e1c303eb1f72e66462ca249e6e5cbc", - "is_verified": false, - "line_number": 2390 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "845aaf24f7f1104268d267c929cdebb56ca61a40", - "is_verified": false, - "line_number": 2397 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ed7712d7317e2fbad8233dc59efbc310b5705d02", - "is_verified": false, - "line_number": 2403 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4b7c01ffdb93e38512115795b5e932ffbc79e3cb", - "is_verified": false, - "line_number": 2409 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "04f6724bc54be9dadbf0a7b2a5916460994d7be1", - "is_verified": false, - "line_number": 2414 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4ed49acfbd180533265d2099f3043963c4a24443", - "is_verified": false, - "line_number": 2423 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "428e72f71455a785963f1df5f85c26c6d6ae519b", - "is_verified": false, - "line_number": 2431 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9e71fece302483bc1cf82ff86e2f56424519a77e", - "is_verified": false, - "line_number": 2438 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4bb32f26b9806cc5d7ff736eb5b8558703f06c45", - "is_verified": false, - "line_number": 2448 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a4a113de019fbdd3f34fea984eef9cc297765d60", - "is_verified": false, - "line_number": 2457 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "791ecf9e423ab1d079a50373301ed79bd563b0f5", - "is_verified": false, - "line_number": 2468 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d208a8d2ee01ca62f09802c275315818f647735b", - "is_verified": false, - "line_number": 2477 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d15154431f7643ba9cb80a63908dc01cce20f928", - "is_verified": false, - "line_number": 2485 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "153275cdb65dfb567514d1aa57fc1a5f14937b3e", - "is_verified": false, - "line_number": 2502 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "afcd43c83599fb9d4f180692c01ff53ddc76b456", - "is_verified": false, - "line_number": 2518 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "17c6bf5b282a544965220dd188f8f72b3e02a1a3", - "is_verified": false, - "line_number": 2523 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "af8ad2e9093afba6092ace2b94e961b830d0ad49", - "is_verified": false, - "line_number": 2529 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8e813f242a94030aa828534fc28df6fafdefe7fc", - "is_verified": false, - "line_number": 2567 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d2eb4e9361fd3c06052590c09d8b407f1753b2d4", - "is_verified": false, - "line_number": 2573 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6ebe9724873357aaea25e329efb726fa61b843e7", - "is_verified": false, - "line_number": 2581 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5c9f3871e62f3bdd36028c6ee53279e5f224db6e", - "is_verified": false, - "line_number": 2586 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9bf5a02716806b93f2fb4acb11c748669774a14f", - "is_verified": false, - "line_number": 2592 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f1dbba169db046906924ccd784068a2306096634", - "is_verified": false, - "line_number": 2597 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2c7bd6cdc39b5b8a0f32aa11988a0ec769526cdb", - "is_verified": false, - "line_number": 2605 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "74106597d0b482d1234b7c43497027a1296250af", - "is_verified": false, - "line_number": 2610 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8c58890089d3de44638169ab4a4a6ae85c68c681", - "is_verified": false, - "line_number": 2616 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2f536f5e6b76b4cbb0f65e1142a4f9ee52b7625a", - "is_verified": false, - "line_number": 2622 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4e5c67f7930c0aff81ff1e76e4c34ab88a915d61", - "is_verified": false, - "line_number": 2627 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bde39883b29c55ee0bac5f04bf3f3a3b1cef7d0d", - "is_verified": false, - "line_number": 2635 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9787d966f19a0d8d0021b31d34cfdfcebdb9c28a", - "is_verified": false, - "line_number": 2651 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4567385b3781de8782dbfa51501b2dde0b8bfadb", - "is_verified": false, - "line_number": 2656 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c4fea87bd49c4427d7215d57ada9ff3177e0c471", - "is_verified": false, - "line_number": 2672 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "12917e7235ce486ca51a296b896afa5e3b4fda54", - "is_verified": false, - "line_number": 2677 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6f9bfb49cb818d2fe07592515e4c3f7a0bbd7e0e", - "is_verified": false, - "line_number": 2682 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "307a947aa422c67fdefb07178198a004fb2c0d94", - "is_verified": false, - "line_number": 2687 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0ba2fc9a137313ae1fdda2b5476dedf0595bda3a", - "is_verified": false, - "line_number": 2696 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fa83dcbf0f435ee38066d19a2a43815510f96bc4", - "is_verified": false, - "line_number": 2703 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "017a7eab3d63331ecfe768927c8907a5a31888e5", - "is_verified": false, - "line_number": 2708 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b37bab170091339c9c57b06d90d99229a7f7bb78", - "is_verified": false, - "line_number": 2713 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "456d02ad0d4d84a2516934ac4cd212b702a35971", - "is_verified": false, - "line_number": 2721 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "92b56edda4f2906f548fe77c015490e6ba2ee4c3", - "is_verified": false, - "line_number": 2726 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7c3f84a55fce488eeff7609ffd1798b4b0346079", - "is_verified": false, - "line_number": 2731 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "936b0959aa13f1decc76be1d80acaac0860847b7", - "is_verified": false, - "line_number": 2737 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "95cb14f25b6629e7828a931248a07a18cf6be9c2", - "is_verified": false, - "line_number": 2745 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "408691ddec57537e414a6a987b08f20540a202c6", - "is_verified": false, - "line_number": 2750 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e2f8ed204b081d28612cca592b04d252763cfd43", - "is_verified": false, - "line_number": 2756 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4bad86c43b7cd06efc130272d8e4de2b32636371", - "is_verified": false, - "line_number": 2761 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8e948a3b773d1a2e4b6f4220216efa734315246d", - "is_verified": false, - "line_number": 2778 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f883f0bd87d8455814f491e2067bd3f62454c7c2", - "is_verified": false, - "line_number": 2786 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "19eea0e64f6a3311b04e472035df10c23f23dd0a", - "is_verified": false, - "line_number": 2791 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "98aa604e1da31f4b40ed3096e18c8a3cc51786b2", - "is_verified": false, - "line_number": 2798 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3aafb400e42871c4a994eba8013e4ff1034c2724", - "is_verified": false, - "line_number": 2804 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d61249f34437705a28fb8b6097dc589a6bfc96a0", - "is_verified": false, - "line_number": 2813 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1719f9e62d0306988a3deefa5d1dc1ea15f69149", - "is_verified": false, - "line_number": 2831 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f7c71d8da72d650036ab8a5dc50df05fe99976e9", - "is_verified": false, - "line_number": 2836 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0512e37fbedf1d16828680a038a241b4780a5c04", - "is_verified": false, - "line_number": 2842 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "224c4e17a99b292b077da584c8aa5fb090ba1b25", - "is_verified": false, - "line_number": 2852 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7d9cd3243acfca649da3f02815907f3c86e33d62", - "is_verified": false, - "line_number": 2857 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7fbed2685f32de994e74206fbb2e09c45f2fb94a", - "is_verified": false, - "line_number": 2862 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "67f242ccd08bbb3427a629b98d96d67a203136a9", - "is_verified": false, - "line_number": 2868 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "549c6a72a5d6d8822b1175c0205f7800f5a75e1d", - "is_verified": false, - "line_number": 2893 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0cc93dfdf4ae08bc374b99af985b25d2427f71d8", - "is_verified": false, - "line_number": 2908 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8f3f0a93cc4a16f194259e584268af391102d785", - "is_verified": false, - "line_number": 2913 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f9079c4430069e1a3a8253651fe4b735f6cbe32a", - "is_verified": false, - "line_number": 2919 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "81cb6be182eb79444202c4563080aee75296a672", - "is_verified": false, - "line_number": 2931 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7e0c8e7bebd3b26c7a99961ec3498c0448dcb08d", - "is_verified": false, - "line_number": 2940 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8df249e12908e83fb392833e658e97db5ba1d3dc", - "is_verified": false, - "line_number": 2947 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "80f8d53f3fedde239f695d6a4c44c78b4aff0a44", - "is_verified": false, - "line_number": 2958 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7ef3be27b1019d26ffd25b7ed25606dfb7b22220", - "is_verified": false, - "line_number": 2963 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "dcf32b4254051ffec36827bb5f20b51a69e313be", - "is_verified": false, - "line_number": 2977 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "086b47ff4b09d5daf48fc11a12842df114051a64", - "is_verified": false, - "line_number": 2986 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "69e4418b2ffb487c86b50465bb7a8dd539577c3f", - "is_verified": false, - "line_number": 2991 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c710e3c6295d433d76945e9e648144440ff6881c", - "is_verified": false, - "line_number": 3001 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9f47ec1bf4b8df99f19ef00c4a11c510ee3347b6", - "is_verified": false, - "line_number": 3007 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "488689dc072b37207fc8513887479813ac502de6", - "is_verified": false, - "line_number": 3013 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "524069c0f6f8b9db9c28bc746b82f4fe8fa0891e", - "is_verified": false, - "line_number": 3025 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9dea089983c59e5976cc041563d338d52f197e66", - "is_verified": false, - "line_number": 3049 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1d058af75c5e26cc0359ac1630d62782f1b954b1", - "is_verified": false, - "line_number": 3055 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4424ddaeabbc0908ec6235fa847252d5959a08fb", - "is_verified": false, - "line_number": 3063 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b876eadc4946ae55efa33b36bef38d9c6dbc5c98", - "is_verified": false, - "line_number": 3079 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0d8b99381e4ee2312c7def98de2115a8f75f866e", - "is_verified": false, - "line_number": 3084 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "00e8ad95806422c71e6e3358849f10e0402681a4", - "is_verified": false, - "line_number": 3099 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "cd0805877953c8437edffdd24713ec0068038620", - "is_verified": false, - "line_number": 3143 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "27826961cc0c1f0c8172c7ad27c44059d1cf1cee", - "is_verified": false, - "line_number": 3154 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7bc2a29249d4c79d00152e6b7e23f1bad50ee72d", - "is_verified": false, - "line_number": 3160 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ee9eb6d176f9abeb924e7fedd2c0b168ff10e28f", - "is_verified": false, - "line_number": 3166 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "af6a2fcdc5ecdaca9a4afc96918a7e99bd8d12f1", - "is_verified": false, - "line_number": 3176 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1c0091e3807e7f15cfafeef8f012579de707a801", - "is_verified": false, - "line_number": 3187 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "09aa5b652da2e32aebb7e4c74e001d604b48033b", - "is_verified": false, - "line_number": 3193 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a033617febb0b833a00a6ddfe1dd31dcabd6adc1", - "is_verified": false, - "line_number": 3233 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b1739b5f43d946a0b8a9b1d58f304433370834bb", - "is_verified": false, - "line_number": 3243 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e5ef6e6610482d5fe2e6952bec2e03dd7970534c", - "is_verified": false, - "line_number": 3253 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "996f5ded04e1d5db379c4155b224c99550e48ffc", - "is_verified": false, - "line_number": 3270 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fb3644382a0358d484186a7907448991a47f4763", - "is_verified": false, - "line_number": 3275 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "473d6a2d432e392ff85b80b322481af2aa9cc0a4", - "is_verified": false, - "line_number": 3281 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a13adfb7b0fc319e6f4f83858194caf0a49df09f", - "is_verified": false, - "line_number": 3286 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3da27985279d7d55ced598655b77d5a3aef28e39", - "is_verified": false, - "line_number": 3295 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "31b0a06708bb059b62b759353c5febcba276fa4c", - "is_verified": false, - "line_number": 3308 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c182e71713f8c76e48acdb19a541f4a6da57de26", - "is_verified": false, - "line_number": 3317 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a535737cf069592de2c7e1259736e930ff75bf18", - "is_verified": false, - "line_number": 3322 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "83307cb75a4a44ba528f4a0aefcec2a8018dc6d8", - "is_verified": false, - "line_number": 3331 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ba2511de309f557383cb669b33877739a452da3a", - "is_verified": false, - "line_number": 3339 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9e410fb138ef51bcc2e742322de1c7db1c1639f3", - "is_verified": false, - "line_number": 3381 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "595ca7bd5bf071dbe45866459c0457fa37834267", - "is_verified": false, - "line_number": 3402 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8f2d13e4f45ae4895bfd83f17e0f27556e4870a2", - "is_verified": false, - "line_number": 3419 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4cfcfce29718cd8a83f4d86020d252153380a3df", - "is_verified": false, - "line_number": 3425 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ed0d6b851c4d28971dfaa6fa9ea87e24c09cccd5", - "is_verified": false, - "line_number": 3431 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "26f76deebe03d118284ce3a2b105ef284a3af65b", - "is_verified": false, - "line_number": 3439 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d4f0bec7c77821e9cbe25505afb224a19f55bfdb", - "is_verified": false, - "line_number": 3444 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ca5991846a5c9f1941a9f711b31379a95e24f92f", - "is_verified": false, - "line_number": 3455 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "82f698d0f7c81831a5b7369291342042521765f7", - "is_verified": false, - "line_number": 3468 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f139a49e56f7947e44506a34ceb737079ef76c58", - "is_verified": false, - "line_number": 3473 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c96d81662cc7919208154e7152fa0033391b7bcd", - "is_verified": false, - "line_number": 3478 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7156492f40fb2479a45780b3d2959c29b27b6374", - "is_verified": false, - "line_number": 3493 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c419c7b20a8991013630cc9a1e675aeb32a0f28a", - "is_verified": false, - "line_number": 3498 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bdbf4e0c92fdac99fd100b18303b3ed73b149bd2", - "is_verified": false, - "line_number": 3507 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e094c7fbaceb29f934250986a62b0eeca3874320", - "is_verified": false, - "line_number": 3513 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "885304335818f51938422166d361cddacfd626d0", - "is_verified": false, - "line_number": 3530 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "915ca894a8ec19ffcd55555e6c8daac1fe882751", - "is_verified": false, - "line_number": 3535 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "77ab5bff023eea717c8dd87ca838b36ef8b335e8", - "is_verified": false, - "line_number": 3540 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3ce7e0b6dfac0fdd6cfb5bcea5c87c1694432831", - "is_verified": false, - "line_number": 3546 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ec8a83737b73d60d903f68891f613a1d4d017aa9", - "is_verified": false, - "line_number": 3587 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "dac0640634507d1e51d1abb71fad3023e8efe72c", - "is_verified": false, - "line_number": 3603 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7936c50d635af51c7be94d8b52da77b365c31671", - "is_verified": false, - "line_number": 3612 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b8a0215d626bc3960dbf9a778e6b73ed1e0f1239", - "is_verified": false, - "line_number": 3626 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "caa11587d4daf3e87d31dd141e8b8a869e7c738f", - "is_verified": false, - "line_number": 3632 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bdec0bd617c266917184ad0e32fb2baa5704329f", - "is_verified": false, - "line_number": 3641 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f0257d02d23f53e799476af74cf0386375d4b6c2", - "is_verified": false, - "line_number": 3652 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "753517b924727827ee24c9a5a84b35aaf51128a7", - "is_verified": false, - "line_number": 3669 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "565f1fcd24069ce5728ff99d1855ca96859b8e45", - "is_verified": false, - "line_number": 3675 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "85d854730013e2c2f1f8d6fd55d4c672476a6ad8", - "is_verified": false, - "line_number": 3680 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f4ac69f86117d727d4c62178f3ab0d03d7f97c60", - "is_verified": false, - "line_number": 3689 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5f0b39878136f8042cc63be336b0b69e6235b55b", - "is_verified": false, - "line_number": 3701 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5a0ea0c228c0fbd308c174ff4d187eedf3dcc0bb", - "is_verified": false, - "line_number": 3707 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "adfec6e1850a9f4a7705b1baa93921d21fcf6758", - "is_verified": false, - "line_number": 3713 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "aee5a7c076977d95a08bd6e74758096e1e5b91a0", - "is_verified": false, - "line_number": 3765 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7ea379a1bf787a21401c8c39f285e4e84b478d72", - "is_verified": false, - "line_number": 3770 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c90fbbdafcd2a572535fd18892dba4aa9bc721a7", - "is_verified": false, - "line_number": 3778 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f6d8fdcbba275dba71f7c782241d7accc26f5e7f", - "is_verified": false, - "line_number": 3784 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "eb4d4fbb2a8fe7c662b33090a5904096526b2ddc", - "is_verified": false, - "line_number": 3789 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4eeca95460b80b98040506156a63e01a0bbf6904", - "is_verified": false, - "line_number": 3794 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f5792251434753c66297a82d9cf93ab8435cc9d4", - "is_verified": false, - "line_number": 3800 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "04e99d547ab23aa7aa1a1ef93da0b1a9cc0f0ecb", - "is_verified": false, - "line_number": 3808 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7d6c45d0c459f7efb2978ac36c219a40cbeac40f", - "is_verified": false, - "line_number": 3813 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f8e8b3ecfaea3ca0fd7439ae665d385c68212acb", - "is_verified": false, - "line_number": 3818 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bbec2fdf1cf26c70a7f2eb82f9f24fe4b29125ea", - "is_verified": false, - "line_number": 3824 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "001d1c5b6dd68dc1c73d24adfd6cef9918a5bc95", - "is_verified": false, - "line_number": 3833 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c6b86cf7a4ca1c82d4a9480545155c459983bbeb", - "is_verified": false, - "line_number": 3844 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "38a3fca8018967df3821ca47a5cc720110a7da14", - "is_verified": false, - "line_number": 3853 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1a05c4be165ca48209a3c1f561e2f5e4dd6526c0", - "is_verified": false, - "line_number": 3861 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8564cd9794f0fd491793c15ef1f21ee599773c26", - "is_verified": false, - "line_number": 3872 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "04450eaacfa844f84926d04d6a07534cde99b28e", - "is_verified": false, - "line_number": 3880 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "77327d599243a696396c7c064135e2e17f6d24d4", - "is_verified": false, - "line_number": 3885 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "abc43635d1df70bc42c9e7dea2141b3524dd8bc5", - "is_verified": false, - "line_number": 3890 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b4c295435d09bbdfb91ced9040379166d67ccbd2", - "is_verified": false, - "line_number": 3895 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bb2bf296d6e086b471d45a26af9fd57f55289a75", - "is_verified": false, - "line_number": 3900 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "57c660c5e1b05af3e5f4289afd5601a032cbcfc7", - "is_verified": false, - "line_number": 3905 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "320963fa5a353ec608561f807d1bac47e54acf72", - "is_verified": false, - "line_number": 3911 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "285abbf7263dc60c0f9b71750333e96167d77f0d", - "is_verified": false, - "line_number": 3917 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "390f515c0550965e0edea5bb71a7be1f7107399b", - "is_verified": false, - "line_number": 3922 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2897b720e3de0fe5ec277e64da69a8b53ae44dda", - "is_verified": false, - "line_number": 3937 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c9dded50433bb5d6d64cf2076d3b5c1cdc4e7f58", - "is_verified": false, - "line_number": 3942 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3c929055f9a9f2e590f0253543a64a3c89d2e09e", - "is_verified": false, - "line_number": 3948 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "90c4af2cdaf6c6ca3a8bc2ca93a97962be22611d", - "is_verified": false, - "line_number": 3958 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "614e1f521e14e13537760612014052672370955d", - "is_verified": false, - "line_number": 3964 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b38648f9123172da0eb7fca4b21eddb8fc4f1a23", - "is_verified": false, - "line_number": 3973 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a32ffe8d9fdbaeb585585ce8cd7b374a3023dc5c", - "is_verified": false, - "line_number": 3983 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8d0c3a9010c322ef54cf59f2d7b472887a496641", - "is_verified": false, - "line_number": 3991 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4275b7ec9188f3fadc0ccb0c42032f17310199b3", - "is_verified": false, - "line_number": 4016 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "07abcd1238214ff35a7de51fd98de5b3a9f77888", - "is_verified": false, - "line_number": 4029 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fc7b2f07f919c3f8e20aa78a1756d2bcca252fb9", - "is_verified": false, - "line_number": 4037 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "aad62e1dae782ae71c8abd98bd29e01e0b3705fd", - "is_verified": false, - "line_number": 4042 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "796925256bc0f4dc43cdfab7fbff852eace18f42", - "is_verified": false, - "line_number": 4052 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f392e7bd9bb3df33f6bf04855bdf5258a9d6e54f", - "is_verified": false, - "line_number": 4065 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8af94d587ff04c1f1a5c8990e2ade46a8fc41f6b", - "is_verified": false, - "line_number": 4071 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ad831cb053700bc85261c0f68d9803a2fa9f5ec9", - "is_verified": false, - "line_number": 4081 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "71bfb9006334eb2e744fdcd6f656617f265d8d6c", - "is_verified": false, - "line_number": 4090 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1d7ba18b4a9edeb908d2ffcb73f3c5558f7a7525", - "is_verified": false, - "line_number": 4095 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "65538215f1409711eb0ad7c14186f1420652be07", - "is_verified": false, - "line_number": 4113 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "48f543ec6c829029183c8ce7904f3873d2eb3045", - "is_verified": false, - "line_number": 4123 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "14308cfbf117dbb6043a80f92e4adec122782cae", - "is_verified": false, - "line_number": 4129 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a572d171ac0cc10b2e331c7d31056e63fcfc9760", - "is_verified": false, - "line_number": 4135 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c06508ec06eccd00fa92cdf8ab20f6ec9d48bbde", - "is_verified": false, - "line_number": 4144 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7e280af4ec2d573144d98e89ed2e1dfd817ca48f", - "is_verified": false, - "line_number": 4149 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "afca0b380a66cc359f66a3e2b1c00103a9b5807d", - "is_verified": false, - "line_number": 4154 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c1e15c09228ec2a5c5301e677dbacdeeed5103af", - "is_verified": false, - "line_number": 4160 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d8863c346b87ab9e420048134928a830cdb44e4f", - "is_verified": false, - "line_number": 4173 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8391286cc1bda9f5510e294af9545020bed4e1df", - "is_verified": false, - "line_number": 4179 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2fcbf434b04ba0a49ae29f1d9ea0edc30881350b", - "is_verified": false, - "line_number": 4185 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "941b3e7836a6f26d32311893ac5d9ad0a52c45ca", - "is_verified": false, - "line_number": 4191 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bdc1322162b3c2d06c4103afb50937bf6085ebf2", - "is_verified": false, - "line_number": 4196 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "34743e1f7d9541c4a726b998f20baf828c694213", - "is_verified": false, - "line_number": 4201 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2fe04172ea20a5306b83ee5fa3115ce9b26a3f05", - "is_verified": false, - "line_number": 4207 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "865a8108fc3bc7f86527f9ac5b6dfc0cded15565", - "is_verified": false, - "line_number": 4223 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0fd9a27b38d94a9d674b1fccc47f3b6a2f61e5e3", - "is_verified": false, - "line_number": 4228 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c8cd52c3cac611b968d949d507c35c91ff317291", - "is_verified": false, - "line_number": 4242 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bcb0a064a9b6f856935b5375646d8de97b234dbf", - "is_verified": false, - "line_number": 4264 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5bf17c4375713f640d891ea4628897bdd7fe4e85", - "is_verified": false, - "line_number": 4272 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3937ac1b11e97055d2054a588e474d9f427016d1", - "is_verified": false, - "line_number": 4279 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "85324324e21d0dfbfb5248ac92fa0f289d2e25f8", - "is_verified": false, - "line_number": 4288 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "acce4ef8d841ffa646256da3af7b79ad5cb78158", - "is_verified": false, - "line_number": 4350 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1fd0732cca36b1aa67d9bc66918e37588acadce9", - "is_verified": false, - "line_number": 4355 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "54fe04966ce0171d605b123ec4d7efeaead72899", - "is_verified": false, - "line_number": 4366 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "cb039f641fdea8299522fb690505f4c23a220d91", - "is_verified": false, - "line_number": 4374 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "22e7ae9b65ade417baac61e6f0d84a54783ba759", - "is_verified": false, - "line_number": 4386 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ea11766aa27aaadd2059326e9f60764c8e85e381", - "is_verified": false, - "line_number": 4391 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8e71b7828c7c554f05dbbabddd63301b5fc56771", - "is_verified": false, - "line_number": 4397 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fea0d9c5b0c53c41e6a0a961a49cccc170847120", - "is_verified": false, - "line_number": 4402 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "774eca9b42e13c9b6fce631a97afd84e037b17b1", - "is_verified": false, - "line_number": 4407 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "478f6a38dc888e35470bd5957ef426d1ebfa5812", - "is_verified": false, - "line_number": 4413 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "223137f9e0bf60e0dcbf8ccce8ce69cd0765bc29", - "is_verified": false, - "line_number": 4418 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a23f7abc489aef65137dd9274f45c418dc0b10ca", - "is_verified": false, - "line_number": 4423 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "236b55b299a8adbd0dcfc96a1363e496c844c425", - "is_verified": false, - "line_number": 4428 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "24f733c1ae590ad1aec381ccb7178385bf7e8ce3", - "is_verified": false, - "line_number": 4437 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "47ea40b8e5df6783598df509aa331f2adaed2818", - "is_verified": false, - "line_number": 4443 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bb11554a965bdedecbf2d06eab164977b5b9cf85", - "is_verified": false, - "line_number": 4449 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2072834961e980f104f7a8f7af4d97aed97811f5", - "is_verified": false, - "line_number": 4455 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ebe2160ede628e0faeac9fe70c215cd38d28d8f6", - "is_verified": false, - "line_number": 4464 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ef1f5f202be2108cc027ff53fba8f060ab7112d5", - "is_verified": false, - "line_number": 4493 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bbf59c40414734b472547f7e4dae5597a74e2459", - "is_verified": false, - "line_number": 4504 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ce5ef15a9c7ee972830dce8a05583ac50275c674", - "is_verified": false, - "line_number": 4514 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0987509f1737d3768558ac71de7b481f4170f957", - "is_verified": false, - "line_number": 4520 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "676ada89dea8b27c7aec35c6ef64b92468725789", - "is_verified": false, - "line_number": 4529 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c332747f8870d8e199832a0f07d5a5d606ff752d", - "is_verified": false, - "line_number": 4541 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c89202b558f40d2eb5a484f75c096f8eb15f39fc", - "is_verified": false, - "line_number": 4547 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e97c3a6c0a2efb793cc6238b47facb871d6a5d47", - "is_verified": false, - "line_number": 4553 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d32245eb2fc073dabdbb460693aba2ed5f07ae3d", - "is_verified": false, - "line_number": 4558 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "456e58897460dcc7a1c822d1096d3e1ca0917a46", - "is_verified": false, - "line_number": 4563 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e87cb507cf95fce410f941f4f6d1fa154a6089e3", - "is_verified": false, - "line_number": 4571 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "32b21734f6e558872707a9a486a46507deda8307", - "is_verified": false, - "line_number": 4586 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "22206cf821d4b9973924eaea2904659d4758755d", - "is_verified": false, - "line_number": 4594 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9cb2b0347722893cde39bbe83f9df7c3c6e1b7c3", - "is_verified": false, - "line_number": 4604 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "344e37e02a35dd31cc7dc945b7fe7b2da88344c0", - "is_verified": false, - "line_number": 4609 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "afef895f68735646705f0ed9cbea650955128e2a", - "is_verified": false, - "line_number": 4619 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "31a41817127c8d2b7b304c326b05d7319934e7a6", - "is_verified": false, - "line_number": 4625 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "150852e9f1e877547306d59618a136fb535b40e3", - "is_verified": false, - "line_number": 4630 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "30f83e08246dd077642640554c47028b19712706", - "is_verified": false, - "line_number": 4635 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7d34aa04ab2275cecd3f396f230993d3ea5b2b9c", - "is_verified": false, - "line_number": 4641 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "92ca60b1a7cc9f1e08a13cf79edda566969cf2f4", - "is_verified": false, - "line_number": 4651 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0135b705dd774036325c5e18edf08e19875db710", - "is_verified": false, - "line_number": 4661 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "12ffe31fe2cdc41991054eec09b2a8e1105b126e", - "is_verified": false, - "line_number": 4669 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9c422f6dfca5f8acb3d3923f7aed45865b8e1168", - "is_verified": false, - "line_number": 4674 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2bccc39b2e611df59b39c8be90cadba46615265a", - "is_verified": false, - "line_number": 4681 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6e5cabcbedacd2c45925e5784e8d2a7b539c354b", - "is_verified": false, - "line_number": 4691 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "db09e60948b1ff036c0db2c08e97c7c51231d896", - "is_verified": false, - "line_number": 4697 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "776347d30b5c604d73753134826f0ff35e71483d", - "is_verified": false, - "line_number": 4709 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "11bc2d99c3f7858920753a3e46ddbb0d9e781e9f", - "is_verified": false, - "line_number": 4717 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "37070ba65fa07967abc2b230636d1064ed1b37af", - "is_verified": false, - "line_number": 4722 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8b7e35cac971f442ba6e9106b6f2fcfd7d3922a1", - "is_verified": false, - "line_number": 4737 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6d986a9ead20e572b700f4bedb006b1c26c0ad86", - "is_verified": false, - "line_number": 4756 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "88fa0dc05ac06d6827f14cb3135476138b70aebe", - "is_verified": false, - "line_number": 4780 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a07d364f2a8d1b1db31a8237bb34d00146bf1a8a", - "is_verified": false, - "line_number": 4794 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "dc805cd06cbb416de233c9f3ec8edd03a6ab5d73", - "is_verified": false, - "line_number": 4813 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "184476d985c0d799b82544165cb4d456129f594c", - "is_verified": false, - "line_number": 4819 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "185969aa79ef4306297f6604700c1f06815701e0", - "is_verified": false, - "line_number": 4824 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c20c5f84e577e0a43d1cebcfba622fcf21dcce79", - "is_verified": false, - "line_number": 4830 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a07bf2246b3829acd53d6d19a4f832f53ea9541d", - "is_verified": false, - "line_number": 4840 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "aea8f7ae787ad25f04c232d2f01917f4ff7d154c", - "is_verified": false, - "line_number": 4845 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "366aa562a1f82689f3c2de0537712e4955c10c9c", - "is_verified": false, - "line_number": 4853 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "277e32c5ba00ef90c6f76c7004fde2ecac6d2e18", - "is_verified": false, - "line_number": 4914 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6f9f90d5c3121e1d187582da18b59b8d0e2fbf2e", - "is_verified": false, - "line_number": 4922 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "371ca38e7acde2cb9e7c1a8bea0355722ff047cf", - "is_verified": false, - "line_number": 4935 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bd8ec533753a71d76052e1b0079a2e14c5bfa8d5", - "is_verified": false, - "line_number": 4944 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "95631761acb6ffe366cd95710b517dabfd6537e6", - "is_verified": false, - "line_number": 4954 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3c9fef30e43f43278daa4509961eab33bef749a0", - "is_verified": false, - "line_number": 4965 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "70c01d678b92cd74a6a72f58934e1fa990d35a03", - "is_verified": false, - "line_number": 4978 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4a8328cce5786d4abf8b689de6376b1aa7d0bfa8", - "is_verified": false, - "line_number": 5079 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7b423b2551a0523b133feb3c3c32efea6e3fbd31", - "is_verified": false, - "line_number": 5202 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c3fdee28b170b0791903f61b667687d022ce8ea0", - "is_verified": false, - "line_number": 5210 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9fb24debe5e1c9dc21e5d77b76fc3644429656b9", - "is_verified": false, - "line_number": 5217 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7f1dfcc1c509ce014eee33a7e9cfd033c5d8dfd6", - "is_verified": false, - "line_number": 5271 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "74843735ef6efa4c111172f25c69f3172832f367", - "is_verified": false, - "line_number": 5334 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "92356dc4886ea0ffb51de6eb51aa9ccdd7c8bd6c", - "is_verified": false, - "line_number": 5339 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fff32f4819e70ee4d4613040d0900ce0516573ca", - "is_verified": false, - "line_number": 5345 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9027d1291ccf0dd3b908e86a64547011dde753c2", - "is_verified": false, - "line_number": 5401 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b95e69c7f4328ea641952f875c3b079a1585c9d1", - "is_verified": false, - "line_number": 5413 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6b30fe731c8444c0263b57aacbdaedb771ec01a5", - "is_verified": false, - "line_number": 5418 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f8feccd17eb37adbde0e41eb186cf32c382ca9bf", - "is_verified": false, - "line_number": 5427 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c27808d80059f49dfadb9bb5feb3037b53108f3a", - "is_verified": false, - "line_number": 5435 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2e6b02e583d82b7826b83c0e42ba2a068b0bc811", - "is_verified": false, - "line_number": 5444 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "84b1b34e9ab0f530c90695b8fe21f592b7d67d49", - "is_verified": false, - "line_number": 5450 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0fbf255cafd26b664c433d893e8f5f94ede5b3d7", - "is_verified": false, - "line_number": 5455 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d0f9d6f819b8012cd7282dfb0a9587c71ae346e8", - "is_verified": false, - "line_number": 5460 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9aa8ea71c7fe334e364961c85ff810691de5f05e", - "is_verified": false, - "line_number": 5465 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "96b299789c89faf2ca7467ca7e034c969bed15f6", - "is_verified": false, - "line_number": 5481 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5c6f1612652c11273f6dc6ed43f6d3f39a8ee5b7", - "is_verified": false, - "line_number": 5489 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2e57dc0b4869be03a51c92ea4f5ed224f3a1d964", - "is_verified": false, - "line_number": 5495 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d2306a21994eefb44d055e593477d8c194e2acab", - "is_verified": false, - "line_number": 5500 - }, - { - "type": "Secret Keyword", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2985b094dfe3d948423800b3e5f0c2c7e1c2dbf3", - "is_verified": false, - "line_number": 5503 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3be3da0f097af4bd6766946ab5400734b2893996", - "is_verified": false, - "line_number": 5509 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "02651d12f5c14c412bddbbb0e3b5f27215c34b2c", - "is_verified": false, - "line_number": 5518 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a27fe246df458a031e27048e194a55ec7bb23d35", - "is_verified": false, - "line_number": 5524 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "98eafa06e0c7e089c19e79dedf5989c3eb2f0568", - "is_verified": false, - "line_number": 5538 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d45927a031d172357e269785199a4c6e75ff5fc4", - "is_verified": false, - "line_number": 5557 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "578075d5fe7696abc90cada12555cfa373d4ae5b", - "is_verified": false, - "line_number": 5577 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bf47364c2d4ad0308ef016fe4a89f6c7dc21ef86", - "is_verified": false, - "line_number": 5583 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "596703f0a5e5733835b4ca2328c4ba1f8884efb6", - "is_verified": false, - "line_number": 5593 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "774497b0d3051e67a442882df5b6e56912f41d80", - "is_verified": false, - "line_number": 5603 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "768c25729bb5f793948b6f5cf680be00a708e1dd", - "is_verified": false, - "line_number": 5609 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "154a3081f8393ae153dd7f09fd20f2b548f85048", - "is_verified": false, - "line_number": 5628 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3e6c18abd5b90c63da0bd8b4c0d3a142e3d5a83d", - "is_verified": false, - "line_number": 5634 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "209bf9cfe9000c6851cd4f94165d30ee1cd3dca1", - "is_verified": false, - "line_number": 5642 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ceefe41e342c854f79bf28ace04e7d5dcea23a3a", - "is_verified": false, - "line_number": 5647 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "100e2d5dddf453d710f276f116d5e200cbde9a74", - "is_verified": false, - "line_number": 5655 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "41135cd24fce09855f67710faed09efce38cd9fb", - "is_verified": false, - "line_number": 5666 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1109544447e298af75035b2bbfc851610f963a65", - "is_verified": false, - "line_number": 5680 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "cf09cb791688fe019284bfdc362abc41918645a5", - "is_verified": false, - "line_number": 5695 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "326aa0fbb5de3f8f869c844e7d1266db58fb80f1", - "is_verified": false, - "line_number": 5700 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "89de5e951981adef247e993c57d90f8e2a80d319", - "is_verified": false, - "line_number": 5705 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ee52c74498f69932f24449e84197169fc33857ff", - "is_verified": false, - "line_number": 5721 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6a7283084b5ad74635599d4a9fd19652649fde7e", - "is_verified": false, - "line_number": 5801 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b9509cb72e127330340c248f2e104ef2d55fbf0d", - "is_verified": false, - "line_number": 5810 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7a776bf5a4da300c1529ae11a159912fb08c6ed7", - "is_verified": false, - "line_number": 5843 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "60b0881054a5f4a2c3e646cf0590c20b5ffe9416", - "is_verified": false, - "line_number": 5849 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "604848660a25de2cf20190756215ec3d960e83df", - "is_verified": false, - "line_number": 5862 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "74f9d51a4f86e615832e3136f3e98b9c62b1cde6", - "is_verified": false, - "line_number": 5870 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "66aec12e32853ec2bb60273735e4c872633143c0", - "is_verified": false, - "line_number": 5895 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ebd14b2fb6297824bd2a1b98469f1f72635dd378", - "is_verified": false, - "line_number": 5900 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "568665a36f53931a139377d292a649d19e432e10", - "is_verified": false, - "line_number": 5907 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "29c3fb067e57a9ef5582a873ebaa18edf72b2971", - "is_verified": false, - "line_number": 5913 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "575c9b4e0765ae6ab9a4f38eb1186ea361691f73", - "is_verified": false, - "line_number": 5919 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7c06334983b03ab80c24cf6584f556f1d28fa130", - "is_verified": false, - "line_number": 5924 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "12a49232584c1836a97604792a77d192ad36f6cd", - "is_verified": false, - "line_number": 5929 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3c22fe71719555d5e4c508c724ee1c9a9728d8a1", - "is_verified": false, - "line_number": 5934 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9c22f8a06d2141381d255132595e95980b03f8b2", - "is_verified": false, - "line_number": 5943 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0d81ce44e2a33f18b3ef3a22b5e19d0a9f907e82", - "is_verified": false, - "line_number": 5948 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "010c74767d0258ae99de6e092f9a281ce697c651", - "is_verified": false, - "line_number": 5953 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b7f8937f7821d03786e13293e0d0482c51adbf7a", - "is_verified": false, - "line_number": 5958 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b7bc5b9add5c02a3ab8ce73f641bf76220055f86", - "is_verified": false, - "line_number": 5964 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "36772b0a4de160ad3eec470df23d92655268e759", - "is_verified": false, - "line_number": 5972 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d3cf1e2ab7e950f5b89451b5b17a47e30c94f358", - "is_verified": false, - "line_number": 5981 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "154a3ce060dd3ba22ca90c7437156c014bd47677", - "is_verified": false, - "line_number": 5990 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8f95bdf43361cffe6720264f402b5636239f6367", - "is_verified": false, - "line_number": 5995 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f89ed9527422d1b197cbc9a4515b18bf462823a3", - "is_verified": false, - "line_number": 6001 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d81e2b3377c83097e87a9ee843ceca57e572239f", - "is_verified": false, - "line_number": 6006 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8a1e78f5040981812aea53d7d3881748724e0196", - "is_verified": false, - "line_number": 6012 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "51f1d8a64e7cab12b96f79fc3dd2816968b9a8e9", - "is_verified": false, - "line_number": 6020 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2ffcda6c72be26e61f5622c6f8905d3b2d0ebca3", - "is_verified": false, - "line_number": 6025 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ff3f8501e117490c486aad0129ba6b4a0b753095", - "is_verified": false, - "line_number": 6030 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "16225dde2ec301d038a0bdbda68de4a174fbfdd0", - "is_verified": false, - "line_number": 6038 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ca7a44d6d8038dbdc4cf4860882903ab9abb9a58", - "is_verified": false, - "line_number": 6043 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "02caf1c0c7c1e839b9b3b85fa41701a1d38c679b", - "is_verified": false, - "line_number": 6049 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "80d73b6f7e87f07e3ae70ef1e692aa9569574551", - "is_verified": false, - "line_number": 6055 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f997f480531d137b87109bf8879332b9a7f27b12", - "is_verified": false, - "line_number": 6060 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5e1ef5987552ffcce5eab6ac6d4f8d20a07c5188", - "is_verified": false, - "line_number": 6065 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "38952752ebde485c02a80bff1d81ebe95664bcca", - "is_verified": false, - "line_number": 6071 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "84440f42baa2bf5bc575824d8fbb01243c2fa3bc", - "is_verified": false, - "line_number": 6076 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "cf54da6337d2a87439de9f8df0d404cc517e31a9", - "is_verified": false, - "line_number": 6098 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "dd24a7ed56e9f007a5b6efe8d0f8c36ced221e09", - "is_verified": false, - "line_number": 6104 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "90ac8f7e21718164b2dde0191848fcb5aec6e808", - "is_verified": false, - "line_number": 6117 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2101133e41e592b334319a5db5ca399ce071c020", - "is_verified": false, - "line_number": 6123 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "044d41ecd2dcf46abda43c2d9ca3271611952c75", - "is_verified": false, - "line_number": 6129 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b7bd2957e31afc47cf2aacf45fb1d58bbeabc540", - "is_verified": false, - "line_number": 6151 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "56400c88c97d1cf63c07905417cd5c192f6db60a", - "is_verified": false, - "line_number": 6157 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "db5ab0931d25ed2423f4a25ec3a2211f70a580e6", - "is_verified": false, - "line_number": 6175 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "11b44a1f44ba2a2832b3bca95a83cf8ba4d6dd70", - "is_verified": false, - "line_number": 6181 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "98c0e5c3c75afe39cf9b7ffc1751d7342e04f1e1", - "is_verified": false, - "line_number": 6190 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8b91666ca5db81784f6fb60297c1d0e14dc14e3a", - "is_verified": false, - "line_number": 6205 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a138c5aefc47562990ad8f9024051d842662e91d", - "is_verified": false, - "line_number": 6220 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b67bde39e971dcdc6881d9a2fe6c440384b3ddaf", - "is_verified": false, - "line_number": 6237 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b4d7f7baa20ef4df508b63b90bdf9c558cff7664", - "is_verified": false, - "line_number": 6254 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "440afbb0c8eabb43daf7816afdc2b3f03e3cf6d1", - "is_verified": false, - "line_number": 6265 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4318bad24216f32a013c1a1cf6aad5424a0c3a30", - "is_verified": false, - "line_number": 6287 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "150b60d278251f2470dd690016afe038bc1bb7f1", - "is_verified": false, - "line_number": 6297 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5856bd4cb3a23981807d6e537408344c13ffaada", - "is_verified": false, - "line_number": 6302 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "870b77771c8cd38bf0d3372a5b03dd38eeda8681", - "is_verified": false, - "line_number": 6308 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "535582d92da3a4158e592ec29868bfd8467b8bce", - "is_verified": false, - "line_number": 6318 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "21de762a2634fc1e188c9d3b78bc0a15099c51b0", - "is_verified": false, - "line_number": 6323 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7d2d3cbac5b5f9d8a8eec0a803658427968d5d14", - "is_verified": false, - "line_number": 6329 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a38b32005305ff20174b03ddb42d76d3ef9cd7cb", - "is_verified": false, - "line_number": 6344 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "23b096d9b48ed5d9a778d3db5807c5c7a2357c93", - "is_verified": false, - "line_number": 6351 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "127f92724797904fb4e6de2dfff2c71c07739612", - "is_verified": false, - "line_number": 6356 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7e49eae03cfac1c21f012fd6aa098265f24fadfa", - "is_verified": false, - "line_number": 6366 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a48a7533de837b1a75c158181730774859b77e06", - "is_verified": false, - "line_number": 6375 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f89428ff15e389c94b5d9a9be0bb43deceba3306", - "is_verified": false, - "line_number": 6383 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bc788b9febb8e95114c2e78a9d5297f80bbedb2c", - "is_verified": false, - "line_number": 6407 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3948d021f57a64547079a19a99ffb83b00f7909b", - "is_verified": false, - "line_number": 6418 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4b938cae6b629e550233995cc3b2d3d382ed8472", - "is_verified": false, - "line_number": 6424 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e78463bad038ee43cc2f4b21de2dbc95f77c84e7", - "is_verified": false, - "line_number": 6434 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "60edf9357ab126e077a488706704a2f658e19087", - "is_verified": false, - "line_number": 6459 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fe80ae5fd89dc744daeefe2029052939df58ff07", - "is_verified": false, - "line_number": 6466 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3a00544189e052116033b4dc7a11fa6abe55eb11", - "is_verified": false, - "line_number": 6475 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "dbc0b5540c23790b72b662b81c71cd842631bdce", - "is_verified": false, - "line_number": 6485 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ead0dafa6e89b1614c7959b021904c8d6ef90d69", - "is_verified": false, - "line_number": 6500 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2ba119e236179f10a68b7d86cf9321a0fdd0ebe6", - "is_verified": false, - "line_number": 6505 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "00d6ea44b7be30814197b45f8c412b781d953dda", - "is_verified": false, - "line_number": 6516 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8ced18953aef1de96618b493adbe5ac7734a72b3", - "is_verified": false, - "line_number": 6521 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a4ccbfa5e4b7c896f9c7a8b5e6f2b0c0251cac97", - "is_verified": false, - "line_number": 6531 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a54c4cac8552c20f9229b05a522324c20ef93122", - "is_verified": false, - "line_number": 6536 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e74f4d64c72a0cb10d8873ef97bf60c4d70eb511", - "is_verified": false, - "line_number": 6543 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4e225fefbf7dc3257f5c46a1432177846b500e71", - "is_verified": false, - "line_number": 6549 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e24a8cec071d865526b863f7dc34bd49679f7a29", - "is_verified": false, - "line_number": 6560 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "107e8f0b5f2a18512b75d616ee7c2c1a43b9a63e", - "is_verified": false, - "line_number": 6568 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e9fdc3025cd10bd8aa4508611e6b7b7a9d650a2c", - "is_verified": false, - "line_number": 6573 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bff1c8017c8c03a2b5952af4e6752dd83f5bfc87", - "is_verified": false, - "line_number": 6578 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bdff41952e92f1f32980c57d8b9181a8c35fff42", - "is_verified": false, - "line_number": 6584 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5934ae7a8477794792bca838dfeea341d95d6289", - "is_verified": false, - "line_number": 6589 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6334d58586a0e1c08715acb4d684a51eb9ec6629", - "is_verified": false, - "line_number": 6594 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7a861fd6c837564f380a21344bd0a8813df04b49", - "is_verified": false, - "line_number": 6605 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fbb28b1b999eb995fec9e44d1de4af810b9a194a", - "is_verified": false, - "line_number": 6611 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "582840ae3d98da7f63b4bedb366cedf03a7e9117", - "is_verified": false, - "line_number": 6616 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8ece95f516644cb92f31611b9d7bfc89ea1a0326", - "is_verified": false, - "line_number": 6622 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3d12813eb5c424e88ec45708bf15d4bea9434fc8", - "is_verified": false, - "line_number": 6628 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "08c10b2f6334808b58f8973fda4f0dd75cca4cfc", - "is_verified": false, - "line_number": 6633 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "eff7b0597dd7f88860c6494a2a0a6018f3198417", - "is_verified": false, - "line_number": 6638 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fe5a7880e51e23a67cff658b14529b060e051406", - "is_verified": false, - "line_number": 6643 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "da682a3e28e4b4418de3019feb225d2e8ea97e9d", - "is_verified": false, - "line_number": 6648 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2b85c9714d5df4c634945784d7d7dd26c0896b40", - "is_verified": false, - "line_number": 6653 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "af078acfe7bc52ead9db77bf9149363b78e0c668", - "is_verified": false, - "line_number": 6658 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f30db3965cfaf45c216038e7ce454d23be9c08b4", - "is_verified": false, - "line_number": 6669 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a73ff4c53097970327e57b6062a724bed19d971f", - "is_verified": false, - "line_number": 6675 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9fa718669248512c918f98c3d709ae75e2548701", - "is_verified": false, - "line_number": 6681 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f4ead8a29448966a9dbff855bc058b85735d91b0", - "is_verified": false, - "line_number": 6686 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2e1c190a76e77abe1a33d3ea5203d1c2a4418604", - "is_verified": false, - "line_number": 6698 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e2a5bcb70a9c6628a649c97800562d869afcab3c", - "is_verified": false, - "line_number": 6704 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "53edd63ca0f476068c4aeb89287a20cced5f06fc", - "is_verified": false, - "line_number": 6709 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1f2f8272a31a287b7cc600ac7e308769793a8601", - "is_verified": false, - "line_number": 6715 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bf194822fce0045563487eab1045b65211fe1b16", - "is_verified": false, - "line_number": 6720 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f9f7bf27205e67d8a666e1faca5d51b5cacf7276", - "is_verified": false, - "line_number": 6729 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9ed653cadf362f6a753dc1c5b95b963e0c66de13", - "is_verified": false, - "line_number": 6751 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c81de9bf31d61b2c5cde4638325b2bb4c703d891", - "is_verified": false, - "line_number": 6763 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "29a0c321ca8076b0f0fe772306a3677f7fa307f2", - "is_verified": false, - "line_number": 6772 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bc714a54e9a2417c96673ace958e407d2b9dc5e6", - "is_verified": false, - "line_number": 6777 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7ed5906c17ddd4e8330c8475dac722175e5e67c4", - "is_verified": false, - "line_number": 6783 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b86075857e712d4d898c682faa2995188bc8d10d", - "is_verified": false, - "line_number": 6791 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b3b2aa76fc2ebd3cd08643321fa5c7667d68ebd5", - "is_verified": false, - "line_number": 6800 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a452d42b18bfd99b82bf43cbe8bb8094c13750eb", - "is_verified": false, - "line_number": 6816 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ceea192d8f6776edc154053d8c9fae1427d7fa0d", - "is_verified": false, - "line_number": 6821 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "cd662b440448baab7e093547626080b663ad57c5", - "is_verified": false, - "line_number": 6829 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b588ad9956a9c1955ba6a3e3a9f4886eb3c719b8", - "is_verified": false, - "line_number": 6835 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3a9054924f1a9ff1a4680fa1b239f6f81ba948d0", - "is_verified": false, - "line_number": 6840 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f8cd5b7823a4fade2a941a82fc76a264f2c3cc6b", - "is_verified": false, - "line_number": 6857 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "06a3dc8802aa9b4f2f48ad081cbe64482ce9f491", - "is_verified": false, - "line_number": 6865 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a3d8b6c41c53a20c6ec5ee9724b0acd209c4caec", - "is_verified": false, - "line_number": 6870 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "55028677ab6a65c8188c71b38c7a5ec4cfdb64f0", - "is_verified": false, - "line_number": 6879 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6c8453f18e4aa0280d847454c9a803c12e2d14d7", - "is_verified": false, - "line_number": 6885 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3df46004e168f8d8e3422adfbf0b7c237a41f437", - "is_verified": false, - "line_number": 6890 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3087ef2a57628e69e689fb9b357876f361c468a5", - "is_verified": false, - "line_number": 6895 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6baa43613366aba02f64afa741b8718d0431d95f", - "is_verified": false, - "line_number": 6905 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8cdc0869962c4cef3aa296a6d31a45043d10ff14", - "is_verified": false, - "line_number": 6910 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "087542b797c46af486e2ad39babf0a1f5030b2e9", - "is_verified": false, - "line_number": 6915 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "58d846ede841bbec0d67a42d03426806635fee2f", - "is_verified": false, - "line_number": 6924 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "98a159a135963e5e65a546879c332b2c3942aec3", - "is_verified": false, - "line_number": 6932 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0913ac5bef0b5ee1e0619deee04bed578b2cb11a", - "is_verified": false, - "line_number": 6939 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "67619a42987e368dd3fe59582e4e13c12e7a563d", - "is_verified": false, - "line_number": 6944 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "23e42656fba130d56c20abddb94b6b7bfcad69a8", - "is_verified": false, - "line_number": 6952 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8bf57054c413acd19c7cc736655c863326871799", - "is_verified": false, - "line_number": 6957 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b9c48dec596b7146762eb5e132ee1b2fea14682c", - "is_verified": false, - "line_number": 6966 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "74a827e9b9b7a4b87b439d600bd6dd4ce587e80a", - "is_verified": false, - "line_number": 6974 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "54e96281667daaff7f25ca87bebbd022973a4973", - "is_verified": false, - "line_number": 6979 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "22bd0abeadedbe4ac89a1415cff3788f50a4dc48", - "is_verified": false, - "line_number": 7012 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ea7a290ccb099ca955bf01c7b1203e4930a1f79a", - "is_verified": false, - "line_number": 7027 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6c88ecf20f9dc070ee18f0cf59f58b0025f6ec55", - "is_verified": false, - "line_number": 7035 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3594781b38f5d70bb1b747317347cf06b2a0cc01", - "is_verified": false, - "line_number": 7041 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8f337304c5ed78319bc8d7e60dd0f3753fdd0407", - "is_verified": false, - "line_number": 7051 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "68f714d1d0e643244bc11677acf3b2c6b6d98e42", - "is_verified": false, - "line_number": 7071 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1c386996454f57fad765143b1a1393b4fd15dceb", - "is_verified": false, - "line_number": 7080 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "805d9656080308c11cde7cb7f0310e12c7e60c48", - "is_verified": false, - "line_number": 7089 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "316bf5ed09ed2d2511c54a3e60e047e26550c82c", - "is_verified": false, - "line_number": 7104 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3e536139add3f70bf34712d57cf490dc9c631553", - "is_verified": false, - "line_number": 7113 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "869a40b729083c41268e4ff73da71ad253b63821", - "is_verified": false, - "line_number": 7119 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "eea749e60b715d9845ebde466ee96e4f5e4260ee", - "is_verified": false, - "line_number": 7137 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "469497944f4f96c71a1df68eaf73329ff4189333", - "is_verified": false, - "line_number": 7145 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "da30eb12fff904c817eacec74cbf529040ef4d92", - "is_verified": false, - "line_number": 7151 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "26db7c7113ec090ced56ff936434c6740495ae06", - "is_verified": false, - "line_number": 7205 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2e65c846d4cfbe21c47c45154da1873c4b566e11", - "is_verified": false, - "line_number": 7210 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "cb7b7ea2ef8bde14f915deb7c2a9e00ceeaf987b", - "is_verified": false, - "line_number": 7215 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "07f8f2e379c397e8fca455ad5c89827f9bdbcb89", - "is_verified": false, - "line_number": 7228 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "65039359a536261c7757a150eb9bc7f54952b522", - "is_verified": false, - "line_number": 7236 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f99039bf6e12ab1c145a15cb3c0dc95854023457", - "is_verified": false, - "line_number": 7242 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fe79b2cb4440fc9ea6dda77da48cdabcc3c5041e", - "is_verified": false, - "line_number": 7247 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "cfec1f08e8eb43448d8da9de91e64ea77d8b877d", - "is_verified": false, - "line_number": 7269 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b7c6c9e6950da52c8ebb7501e194f2d9a26f4736", - "is_verified": false, - "line_number": 7275 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8ece0f01da9189bae69a60da116040400bbc10e5", - "is_verified": false, - "line_number": 7285 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d8804d9cc71f687821d608a8c1c9f851df168128", - "is_verified": false, - "line_number": 7290 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5ca4637051702c03a7319bdd7051d034246b75db", - "is_verified": false, - "line_number": 7296 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "633cf9adaae15cf432ba82a10c555fa3313c1ae7", - "is_verified": false, - "line_number": 7302 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "14f7b9701b0db90fc803d73c82e43a4d7f457065", - "is_verified": false, - "line_number": 7330 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b0819ab93327fea1db86da7163d82c41b9f71508", - "is_verified": false, - "line_number": 7336 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "11337bf5b474f11996fb0c53504a4b5648c6b8b9", - "is_verified": false, - "line_number": 7342 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0d8b1f08076e3a6f1d51c32053a5b10fbc65a88a", - "is_verified": false, - "line_number": 7348 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "32fb1273a308d8f0058b6b9342509f3f0ceb1f90", - "is_verified": false, - "line_number": 7357 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e6ec6fee466f0903de2a9307687cfb4a36312ceb", - "is_verified": false, - "line_number": 7365 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a2bdb0039be1aefe63ddffa530d2c19b98d92cd6", - "is_verified": false, - "line_number": 7370 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3b4efa57df7ee9f211d0ea35a43dd07389f9169a", - "is_verified": false, - "line_number": 7390 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "99059b018c0d4fc5227189e896000ba61aa5b8f6", - "is_verified": false, - "line_number": 7401 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f4f0bf9d8ba1fc4c8339c697ddce1e801878f8a7", - "is_verified": false, - "line_number": 7406 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "668695cd852a7b658e9a199efd121b6d7d7856d8", - "is_verified": false, - "line_number": 7411 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c28a6f4a84f283713e724af9c671fe952afc86d1", - "is_verified": false, - "line_number": 7416 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "473c22b1ac7549572e53bbdb63c4fec59259cb8d", - "is_verified": false, - "line_number": 7425 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b4a2e99c4e65b47c41cdaa99d350e8ef358a3df8", - "is_verified": false, - "line_number": 7450 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9918a6b1e037c189e04ac63502b39cc614834711", - "is_verified": false, - "line_number": 7476 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "42f58da843c1c362da200d30e346515e81487f7d", - "is_verified": false, - "line_number": 7485 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c5196f2e9919072b6ff0a28c981a37f0b6276c6e", - "is_verified": false, - "line_number": 7499 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c6e6dc3fc25fb520e69c25ecad66896a3fc1b52c", - "is_verified": false, - "line_number": 7517 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0a68e003e521d8b996e1c07b3b5b2664de31fa44", - "is_verified": false, - "line_number": 7526 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3f0b72d98b2c684d59df13315d7191214e3fd348", - "is_verified": false, - "line_number": 7532 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "19b6dfeee14696a5f7cf3676642203857397ec24", - "is_verified": false, - "line_number": 7540 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "70e5dc62b69e7a833815309451de32ee47db9f80", - "is_verified": false, - "line_number": 7545 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "afbcb86a5cd5d81a01edf9a8969a14e55102d72b", - "is_verified": false, - "line_number": 7570 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "075e04d48429f7795cbda58804cdc46ce4212852", - "is_verified": false, - "line_number": 7581 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "08098336d850a32e126a5364092cbebdf1dfc634", - "is_verified": false, - "line_number": 7590 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a250d501ec91bda6c44ccf0e58d5686dcf338026", - "is_verified": false, - "line_number": 7595 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e8052d6a30f5c788cee736b595d620d412596dc8", - "is_verified": false, - "line_number": 7709 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "507daaba94790845911786926ea090c3d828a745", - "is_verified": false, - "line_number": 7720 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8ed55e3d8fc9f91240c608291ccb4cf1661e9c31", - "is_verified": false, - "line_number": 7726 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b7ab61c2a1308a1440f2dfc434722793f4ec29d7", - "is_verified": false, - "line_number": 7745 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "75a3c0b9934bd460ff7af9763edb25d749ab7b4e", - "is_verified": false, - "line_number": 7759 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b9a549991528b1f793bc9b74a0a43af994f93dab", - "is_verified": false, - "line_number": 7764 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e921c21273bf03fb6975fa0dfff7b073fe90a123", - "is_verified": false, - "line_number": 7769 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2390b9fdb4db8fda46e19a9d436d66b54ac5835d", - "is_verified": false, - "line_number": 7775 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "563cc740e3f8f3749478a07df90ec463fd703f82", - "is_verified": false, - "line_number": 7780 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5d713239ddaa33b9c58100751a56537c7430d53d", - "is_verified": false, - "line_number": 7785 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "654fc8c7b786aead53e3209b820a651a7eccc894", - "is_verified": false, - "line_number": 7796 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "baac57cb314beab87420d1da6906a1d2377c7d73", - "is_verified": false, - "line_number": 7805 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c4fcedad5a999ed0ad1dfb259130e17137d7f045", - "is_verified": false, - "line_number": 7821 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "064b874f13a3779d7227de426e2646eaaf7d1b39", - "is_verified": false, - "line_number": 7829 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "472e4790b0bad0223d8b52621da28b9e7df3a64a", - "is_verified": false, - "line_number": 7847 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "cb544764b14954883775a20c1bb7a0bdfc209b2c", - "is_verified": false, - "line_number": 7855 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e7257a88812c81217cb9df30808ae0f10cf22b86", - "is_verified": false, - "line_number": 7877 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b36066cc17f5a831b67e8ff93c244139cda2f205", - "is_verified": false, - "line_number": 7882 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e10a4f9909eff90a35dbcd270d5eac2a68503d7f", - "is_verified": false, - "line_number": 7891 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "462295c76aa0840e59f551856aeaa244a32af47d", - "is_verified": false, - "line_number": 7896 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4e8e30a0a1d36c7c7625051270fc305b0c106023", - "is_verified": false, - "line_number": 7905 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d0a953de593a0a7b26b925a6476d8382cd31cb0e", - "is_verified": false, - "line_number": 7910 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b2e846b4c4f9b16738215a08bb6838b125977d28", - "is_verified": false, - "line_number": 7915 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b1655f0436ed02542ddf34e65e9897e59633b752", - "is_verified": false, - "line_number": 7923 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9887efc5c991b95f47d51d96bd0f2a6a7a4bddf1", - "is_verified": false, - "line_number": 7931 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1e2ab7a2fd9b6afcbe08afcb9dc652b76cf367d8", - "is_verified": false, - "line_number": 7940 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c9a0f70271023a1b82d44b6544c32f834098c007", - "is_verified": false, - "line_number": 7948 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0155d8e17920903b039b7712cd43e882b5072b2b", - "is_verified": false, - "line_number": 7953 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a2ae96c19810f942eaf1c4c1611b24427bb53171", - "is_verified": false, - "line_number": 7969 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5206be994b8db0c93be9c0c04c72adde16c75498", - "is_verified": false, - "line_number": 7987 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b26fc67a05bcebf95b6074ebbc79c4ef35745905", - "is_verified": false, - "line_number": 8014 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0bc64fdf91da2c97878e7df4ca19b85857862bf5", - "is_verified": false, - "line_number": 8037 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "723e8ea7636d64c2b9512bb189da363fcda6dd33", - "is_verified": false, - "line_number": 8050 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "139323d71483de0860981200fb39673681ab2ef2", - "is_verified": false, - "line_number": 8062 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d9efbdf71c548a000ac469ddb800a566a21d9824", - "is_verified": false, - "line_number": 8072 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a4ca125c83f4f250d0b6508bf2b97d5b5252c203", - "is_verified": false, - "line_number": 8085 - }, - { - "type": "Secret Keyword", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "60ba4b2daa4ed4d070fec06687e249e0e6f9ee45", - "is_verified": false, - "line_number": 8088 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6c651d6ac18f7e9a1f94e1bc2f68379cc1851432", - "is_verified": false, - "line_number": 8091 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ae745d719f97b3ddb9791348b1f29ff8208c0c5c", - "is_verified": false, - "line_number": 8097 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d85390e7a243ace5f4483b85a2dfc6330b4f085e", - "is_verified": false, - "line_number": 8102 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "533573708ed3eabce514432cd26d532218222659", - "is_verified": false, - "line_number": 8112 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "891e23c02f7af11c912b47e84dba9ebc2a810571", - "is_verified": false, - "line_number": 8117 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "61ff5c8a702d8ffe28063c06487a3a5a0db2ed70", - "is_verified": false, - "line_number": 8122 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "08266a0b438e97fe47135400e8897f931d99ad61", - "is_verified": false, - "line_number": 8128 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b72a53c8bebd6540eeffeba5b0c28965bbb2a664", - "is_verified": false, - "line_number": 8133 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b3535a5defc70dbd440e104c8ed5aac37b8a6ca3", - "is_verified": false, - "line_number": 8138 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "45fae1a0e2d1a7f2db463c174b2a72424961ebe2", - "is_verified": false, - "line_number": 8145 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "97cbb7fbdfe498c80489e26bcdc78fce5db9b258", - "is_verified": false, - "line_number": 8151 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7fb9e723ffe44d8792012771f62bcda1f1386edf", - "is_verified": false, - "line_number": 8156 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a333e405c05cedb7d37ba5a38ad44f4d236fe04c", - "is_verified": false, - "line_number": 8162 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "76ea0f5f6a69deafe4e6b7be8d8175ebd6c648e1", - "is_verified": false, - "line_number": 8171 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "82da7726f170885a2dc1da0b5c4b6817555ea5a6", - "is_verified": false, - "line_number": 8219 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0f3a046707792f62d75b576a74c72e4145c3edf4", - "is_verified": false, - "line_number": 8230 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0ebcf977365da4e7747e690d18e054f9e3ea4d3e", - "is_verified": false, - "line_number": 8252 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e0b570bafe751377f9ce22a39c0515e4185b457d", - "is_verified": false, - "line_number": 8267 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9e88c985e209e9a4df23d8647c21c5775d090d38", - "is_verified": false, - "line_number": 8290 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7dd2fe9a33ffdf389ded0c661b9407951a91ff74", - "is_verified": false, - "line_number": 8304 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f8c7941bd484f4d552d3b39f61ba077d665787d2", - "is_verified": false, - "line_number": 8324 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "401f90e6afa890c5ee44071351e4a149e7c1f5e0", - "is_verified": false, - "line_number": 8354 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "951e0de5f06b3ccf1734448092ee4fd314881a89", - "is_verified": false, - "line_number": 8368 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1addd61f68d977408128e530959437821a6d8b66", - "is_verified": false, - "line_number": 8395 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "93b63c9dfb8292123e90b67271acbfd7ba7b60b2", - "is_verified": false, - "line_number": 8404 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "60a02a307fd4794b4c7c3288d48f36b327ec1b3a", - "is_verified": false, - "line_number": 8421 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "29f79b77802802c5ae2d3c2acb9179280de37914", - "is_verified": false, - "line_number": 8451 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "94d912ac68576304f7697e5d8f4b0685db871cf0", - "is_verified": false, - "line_number": 8463 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "aee8d2172cdf295b9fa9c0df972661b28157501c", - "is_verified": false, - "line_number": 8479 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b44749dabf2780274e1d52051bb77c9dd8050afd", - "is_verified": false, - "line_number": 8498 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5bed35e8b0b1a4811d423fc7c248736bcbded8e0", - "is_verified": false, - "line_number": 8537 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "200fd400fd5ee26402a28c2b98570f48b19e7241", - "is_verified": false, - "line_number": 8547 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d40bc1ff2069f9b2f9c062ac7c0357b22727f596", - "is_verified": false, - "line_number": 8553 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9ef1d4393a719765b669c9fd340ec134e787d35c", - "is_verified": false, - "line_number": 8562 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c23b0650f6cba3e66097d40e2f3fc3e62c5ab213", - "is_verified": false, - "line_number": 8567 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bc98c415b1c6ee93adf8e97a4a536b6342337c19", - "is_verified": false, - "line_number": 8572 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fd29cfee64d25ea7b84a5c60ac7417b7be067d03", - "is_verified": false, - "line_number": 8577 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ea79104b9756fbd12754fc0513159a2f00360170", - "is_verified": false, - "line_number": 8586 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "534df9d1fd6552504ac8bfeca1563e8fde9a7721", - "is_verified": false, - "line_number": 8596 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5a6baaacb03a030567b857cb8cfe440407e6385e", - "is_verified": false, - "line_number": 8616 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0a852241f61fbda0c5d91c5e503375dbfe8db4af", - "is_verified": false, - "line_number": 8625 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1e6749494b2c1ad14f8be0d004a368972811955f", - "is_verified": false, - "line_number": 8709 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c835906d493452b25b05d790c5253d807440c034", - "is_verified": false, - "line_number": 8720 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "47709a15a1b02a87f65dfcd5f3e78e0d2206c95f", - "is_verified": false, - "line_number": 8725 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "89a00b34b62c2d480fbff2e751d47226fa5f24cc", - "is_verified": false, - "line_number": 8734 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7a87fb248397359e9c6ca6e46f39805789059102", - "is_verified": false, - "line_number": 8757 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c31993aa488e3a53f61c94e865589f213a76f679", - "is_verified": false, - "line_number": 8762 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "51f38b23af543da8b637a3bd62f5fb2c460e3b3d", - "is_verified": false, - "line_number": 8767 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a215faa77ef3f0cca4574804353e1df8298bdd49", - "is_verified": false, - "line_number": 8772 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8287678ab8009ae16b02930c9e260d1f28578fbe", - "is_verified": false, - "line_number": 8781 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d4c050e6914eb68a5c657fb8bb09f6ac5eae1e86", - "is_verified": false, - "line_number": 8786 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "773059609b4366873bd8442db06662c2e66dafff", - "is_verified": false, - "line_number": 8797 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "154087483597a57569ddd46f9ba3e12caddf3837", - "is_verified": false, - "line_number": 8808 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "61f78d7d7d77d98b7067956a2b77d325e5691e56", - "is_verified": false, - "line_number": 8818 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "371a58ef09d35332fb0950695d84a5bacb91da6c", - "is_verified": false, - "line_number": 8827 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "284b799b24d1004eeb24c0394ff1e70c1bcc439f", - "is_verified": false, - "line_number": 8838 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "099f8bc21c1d4d1be208201cfa44b4158ec3daf2", - "is_verified": false, - "line_number": 8850 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "37c4c04d623205bcbee0449692ff277ea0779bf6", - "is_verified": false, - "line_number": 8855 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3fde7f63a5e3531aea4bff9933a60f18fd563151", - "is_verified": false, - "line_number": 8861 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d184240f129e3126b048d50e0c8e55a03a2f043d", - "is_verified": false, - "line_number": 8869 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "81e3ae85941b33d79ef6f1d57849c2b7233c8317", - "is_verified": false, - "line_number": 8877 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d0d1489ec3f83ebbbdaa6449a791d0359485f8be", - "is_verified": false, - "line_number": 8882 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "301c46b5d2578bc92fe6f5d148d167c27f452a16", - "is_verified": false, - "line_number": 8891 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "55c8e7f18be62e56d4ba2ded0d2e0d62e2dd5a44", - "is_verified": false, - "line_number": 8922 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "148c2cea3e0eb3fba5be8ca89ee193d1c8bf6f7d", - "is_verified": false, - "line_number": 8928 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0d20fcd767651e8ca0d8a0c2740253b3f5e8949d", - "is_verified": false, - "line_number": 8949 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f7f85d9f7c87f1e576dcaf4cf50f35728f9a3265", - "is_verified": false, - "line_number": 8974 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e4ef0b796d734fd09c7944fbd4090897cfc6dc81", - "is_verified": false, - "line_number": 9013 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "03bd7701eb5c5392da2dbd56898cc6e953fc633d", - "is_verified": false, - "line_number": 9024 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "42ebd78fb439ca877b78cdb91475a135102957c8", - "is_verified": false, - "line_number": 9032 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "37ca972d6abab0d2804e63061e1da24fefe0fdd5", - "is_verified": false, - "line_number": 9037 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9f1dca61504925ab07f3968a070bd31d0f670ccd", - "is_verified": false, - "line_number": 9047 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bea46b2b95add66abfaccce2da1e5de886694fb5", - "is_verified": false, - "line_number": 9057 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7686335cafd147d2e37d7fac339ac984de7b3ba6", - "is_verified": false, - "line_number": 9062 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "34bb77b8a0b8fdb1787d549b64895ee00f52184a", - "is_verified": false, - "line_number": 9070 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f241e44dd1421cd26ac78332db57217a61f50c94", - "is_verified": false, - "line_number": 9080 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "584f97994f6693c2196c75327da4bf500b93f26a", - "is_verified": false, - "line_number": 9086 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0031212f06797472d12d810253a942758a52d158", - "is_verified": false, - "line_number": 9096 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a82baa1dcf802298ce04cd3fe77d8dc7d3b50a60", - "is_verified": false, - "line_number": 9106 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fbee360149f658d5bc293d89d5b030753515b807", - "is_verified": false, - "line_number": 9112 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ed0e7c56587bad610035910c709b24f97dcfd989", - "is_verified": false, - "line_number": 9123 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bff577a686daaea84b44449fc5889065ad1b2974", - "is_verified": false, - "line_number": 9142 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "61fe73786601f140670a91202612ceb7c5baa2d6", - "is_verified": false, - "line_number": 9147 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "19e6553a27474d64622bfc932f6b65becc7e8799", - "is_verified": false, - "line_number": 9155 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "76d227a63faa69311aabf78b4fe8cd131baa0143", - "is_verified": false, - "line_number": 9161 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f6368525e9e22577efc8d8b737794e845958ba92", - "is_verified": false, - "line_number": 9170 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1508bbaf29927b5348d4df62823dab122a0d3b48", - "is_verified": false, - "line_number": 9175 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "74163d2f71a313c1dd5f61f673669f61b6d810f1", - "is_verified": false, - "line_number": 9180 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "14411db0799882e659ef17a4954a96716744a934", - "is_verified": false, - "line_number": 9241 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "04e290974015de8c28d805c80510ccf9b4181ff3", - "is_verified": false, - "line_number": 9246 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "20293db693d803ae5b56c8a0d25119d571e5fb21", - "is_verified": false, - "line_number": 9252 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "da657fa18cc4461f7d17f9e2d8273128c08c787c", - "is_verified": false, - "line_number": 9257 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "49e05eb75fd04d8f44cf235d4e8eddc30a2b93e5", - "is_verified": false, - "line_number": 9262 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5c270f653b2fcd5b7c700b53f8543df4147a4aba", - "is_verified": false, - "line_number": 9297 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "aa8ea120ddc5aaa27cb02e0b04ac1c53b249a724", - "is_verified": false, - "line_number": 9302 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "095a24fb2c9d18715c04b09581158ac7fa78a535", - "is_verified": false, - "line_number": 9309 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "83122f5c29fecbf5b12aec2247b00a08ab0f2f95", - "is_verified": false, - "line_number": 9320 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9e26987c9548d5432879d658bd4124404269e7f9", - "is_verified": false, - "line_number": 9334 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b3e00452fd69737cc747d0661fa3b3949a4a0805", - "is_verified": false, - "line_number": 9343 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6e22f3ee54a6729d0ab5aa692a26551beca43f3d", - "is_verified": false, - "line_number": 9354 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "af2ceb518ddc689b0e2a03ffebb64d4499817c17", - "is_verified": false, - "line_number": 9359 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3b7990b0f82bc9bc6c4ec02744f9c02e76aac827", - "is_verified": false, - "line_number": 9364 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9072ebcbad57a1ae4256c5ae37c1e7c7ae5325de", - "is_verified": false, - "line_number": 9373 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1cc106cd0bdc3045bb58fde3bb4a47174611c8e5", - "is_verified": false, - "line_number": 9379 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fcf56df838316b9be4013f8954fd3aff8f916599", - "is_verified": false, - "line_number": 9384 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c8d26bd101c1bb56b67107b13bf5eff3f037f566", - "is_verified": false, - "line_number": 9389 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6c97af7c53066197c22a6c364af841457a76a3ea", - "is_verified": false, - "line_number": 9397 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "52346f6585c029390846cae2f153417bca403c17", - "is_verified": false, - "line_number": 9412 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7257dcc58ab121ee757522326845db2b30057250", - "is_verified": false, - "line_number": 9435 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "de7f1678b5103349cf776d83d0f5e6e57d8dfb26", - "is_verified": false, - "line_number": 9441 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "db6d0bc06a9f599f5d3fd6fdc76de8aa362215ac", - "is_verified": false, - "line_number": 9447 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5b141296cb882792672f094f96c33227744f989c", - "is_verified": false, - "line_number": 9456 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1f1d2e47519d00d513dc333505e52fcf597d0cf5", - "is_verified": false, - "line_number": 9461 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b4b6745fcfb6d87458d1951c774c77c70c27b577", - "is_verified": false, - "line_number": 9471 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "15866118c86746259c76e76d5a786a1e4de3d41e", - "is_verified": false, - "line_number": 9481 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8db956011899a12e5f3cd3b6451ca77c5896f94d", - "is_verified": false, - "line_number": 9492 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "75b9dc01be78c0105fc8de0438c05ca3a4fe8329", - "is_verified": false, - "line_number": 9497 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ce127e553fda0ece04a40c6050c8292fa92b4cc3", - "is_verified": false, - "line_number": 9506 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8933ed02cc45ee972f6602692b65426815f2a1c7", - "is_verified": false, - "line_number": 9540 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "29f6e4c68841a01708992cdd802e56ebeb55e5bb", - "is_verified": false, - "line_number": 9546 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4e6c84d648b89cf86ee5343472e2399ccf3b0446", - "is_verified": false, - "line_number": 9554 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c59aac9ab2704f627d29c762e716ba84b15be3f1", - "is_verified": false, - "line_number": 9569 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "da8a254edbe916fcee500b793e949b42f38b6bda", - "is_verified": false, - "line_number": 9585 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ecd031fd59df9489975ba828cf8dd6b71c6d061b", - "is_verified": false, - "line_number": 9590 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3c332c9f311591748fdff7e05b346443d8ce6f4d", - "is_verified": false, - "line_number": 9595 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "20249a3c96028e5ad19143d86ec5d2ee233935ed", - "is_verified": false, - "line_number": 9600 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5e4aac0b4a18d4f5f759f87b2f142eb19a823548", - "is_verified": false, - "line_number": 9605 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a1326870a52f6eb837f1ccad730e8a3c55ffe91e", - "is_verified": false, - "line_number": 9610 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3f56d9812533ec9d78c1ebd9f380be72fbf5ca72", - "is_verified": false, - "line_number": 9618 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e96f510c45822e49b9a068923dc344e9dc152648", - "is_verified": false, - "line_number": 9627 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d3cedc8271f9a3793779f05c64a6b9af66ae1cd7", - "is_verified": false, - "line_number": 9635 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d7335c691ca27dd1927cb2b4fdf28a2bb0a661b7", - "is_verified": false, - "line_number": 9640 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "777497f82a9e93b8ee284f7f63dc432a7fa38006", - "is_verified": false, - "line_number": 9650 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "47198cc0c698c9de241d04cc1a76334925cb24e1", - "is_verified": false, - "line_number": 9665 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5288998d82dc37c1552a729ecd1fb1c5111f3058", - "is_verified": false, - "line_number": 9671 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "46de3c4e559779e8d1de6c10cf1561b0ab835917", - "is_verified": false, - "line_number": 9681 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c59e45a594eeb7582be277c7053f239d2fa7d4ad", - "is_verified": false, - "line_number": 9690 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f4ed5c5e9e31cc69237dac6d6f568fee2da2134a", - "is_verified": false, - "line_number": 9699 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e5ed9ce155951d19b999967650a1fdcb0db391a2", - "is_verified": false, - "line_number": 9708 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "1be172b28420494a97b5bd6dc5d20d9b54d52047", - "is_verified": false, - "line_number": 9717 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a126f2a0ec1fc0aec4c6eddb11e61ad4403141fa", - "is_verified": false, - "line_number": 9725 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8c14ca426e18afd6aedb33f1e4af45d10ff480c9", - "is_verified": false, - "line_number": 9733 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ff6158d91155ecdc977baa1b5b216a02af9c165c", - "is_verified": false, - "line_number": 9739 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "45ef2cb8b535b5eb9e0fde3e3be8119b3a8d0cc8", - "is_verified": false, - "line_number": 9744 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0651ba881a4f42c0d996ea3e8255ba479305a456", - "is_verified": false, - "line_number": 9749 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9ab233aad7da9b0be4d175ee471a9db4c3f1684b", - "is_verified": false, - "line_number": 9754 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3dfc957fef34457fe0116789bd8e23b3a18e4770", - "is_verified": false, - "line_number": 9766 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "66f91534ae3d1069b8b6bbf37854db7466ca9bf6", - "is_verified": false, - "line_number": 9776 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0ead4b04a5430f056f1a231c101ed9b7aa7d4fe7", - "is_verified": false, - "line_number": 9785 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f3d8d6e0ff05913706b6e1a6505bc9597be8a826", - "is_verified": false, - "line_number": 9790 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "147c894c648860e06ad2f8b34ef03134c6f09112", - "is_verified": false, - "line_number": 9798 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "337c749e361b258aa221b5c35d70d90189c727d7", - "is_verified": false, - "line_number": 9804 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "60e22834071c5f3f31e8584a22d1413f9fec66e4", - "is_verified": false, - "line_number": 9847 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "ac89a1c44566548af25a362310fd0f5520667be0", - "is_verified": false, - "line_number": 9853 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c531fd844c5cf426f0c6ad4672713e17a4909ed1", - "is_verified": false, - "line_number": 9864 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "dbee1beb29275ad50ef0a68067ca144985beca2c", - "is_verified": false, - "line_number": 9869 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "af2123522a57bc58ab44b5cfa335c037d6644f5d", - "is_verified": false, - "line_number": 9875 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "df9b9526f4a11eff2efce2b21370d1e487b8c519", - "is_verified": false, - "line_number": 9889 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2bf8a58f01e6abf01bcf097acf7903fe8dede2b8", - "is_verified": false, - "line_number": 9897 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "36a41bfa336a40f390233bcb3edba75b423c0ac5", - "is_verified": false, - "line_number": 9908 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "88478ea9148d22c35a5433f11c4cc8d1411caa75", - "is_verified": false, - "line_number": 9917 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6c071c6ed54a3a78342af5c439aa522c63132180", - "is_verified": false, - "line_number": 9925 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b0cb4b5554183f2c7bc1ca25d902db5769798a7a", - "is_verified": false, - "line_number": 9933 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8665901d1a739f304b4aac83ad3ab7d3a95446da", - "is_verified": false, - "line_number": 9947 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "80ea343b54fbe5adb9f9f59d8cf4e59c82e4fdbb", - "is_verified": false, - "line_number": 9952 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "109c59529e7d82c500e9270623c35f7f2dbb35df", - "is_verified": false, - "line_number": 9984 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "623e2a74289a9b86e19cd76dc57676b093a40e0b", - "is_verified": false, - "line_number": 9989 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "df911743057e957d166c09e0746e85bf596195d6", - "is_verified": false, - "line_number": 10030 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7f4f702146875e52e4b5f124b3f409a740cb0871", - "is_verified": false, - "line_number": 10074 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e8efe21ab6170c1bf85baea428e3f511f708bbca", - "is_verified": false, - "line_number": 10083 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2719c6c225d5bf3f6a9c51b0cfe93139144cfc53", - "is_verified": false, - "line_number": 10094 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8c4172c0c2c532d365c5d4a073108091382f1dbc", - "is_verified": false, - "line_number": 10103 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "18469023a89dd192b5275d8b955c9fd2202e0c03", - "is_verified": false, - "line_number": 10108 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0d3ce7468071b4e48ba9cd014ade7037dc57ef41", - "is_verified": false, - "line_number": 10116 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "eb9c0784a5d7e3491ee4d1ae2e84a6f96b1935a6", - "is_verified": false, - "line_number": 10121 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "cf8769a85052b2fe5947cc828d2c35305e3cc2d4", - "is_verified": false, - "line_number": 10130 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e48841ceb23f37c6285b544a6061701cffd33739", - "is_verified": false, - "line_number": 10136 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "955d2d24c472b4eb0b4488f935a0f65e38001df8", - "is_verified": false, - "line_number": 10141 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "50607eb0d414d16617c90a7c615b98e1291f2c9a", - "is_verified": false, - "line_number": 10150 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d9777d0c95f98a54ace74a709c1a3cd17016fc5f", - "is_verified": false, - "line_number": 10155 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "aab32923ac559e5630b4c42a7b6f7af671aa6224", - "is_verified": false, - "line_number": 10163 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2f01cbdb950c3d79bbeaaf9a674d81c84794aa36", - "is_verified": false, - "line_number": 10168 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6c7e20dc13641cb89ba7b524537f3881ff646e20", - "is_verified": false, - "line_number": 10188 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "99dd278a233148eaf159f0062fa26f63fa3205ab", - "is_verified": false, - "line_number": 10194 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d77ed2993e73b86fa8d1ac3ddc7f5849bdee137d", - "is_verified": false, - "line_number": 10202 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d52512731e222109568090fb46fc7cd43890a312", - "is_verified": false, - "line_number": 10212 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "42e05c82cd06a9ed1d15e0f472c2efc4b3254cae", - "is_verified": false, - "line_number": 10217 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "5782d0f39536b22f2c6aa29d3b815a57f43e4800", - "is_verified": false, - "line_number": 10234 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0e3960e3b1aa9fbe97ad7995945f56e75f91fb15", - "is_verified": false, - "line_number": 10241 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "8c580ebc8aabd364ebf8f6ed10c44658ad59a420", - "is_verified": false, - "line_number": 10251 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4c583f3dacc9a0e63a47f5bb7e01c47076bec7fc", - "is_verified": false, - "line_number": 10257 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7fbf450bf4ee54f013454f70af3a9743c0909f54", - "is_verified": false, - "line_number": 10274 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "968a8422b7fe65d7567ba200d3fd9f3c9f44d87a", - "is_verified": false, - "line_number": 10279 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bc2b9d08e5107359894fd5da700019969fb09866", - "is_verified": false, - "line_number": 10291 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e2a413758bb7dc1c283b753f0fb319276f34e254", - "is_verified": false, - "line_number": 10312 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "a152a4d88be6d4c3cfd078442ab6afaa08f583dc", - "is_verified": false, - "line_number": 10317 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "192d11797f4f8efeea8ed66f874933380579a126", - "is_verified": false, - "line_number": 10326 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "7eeb3811a007699ca77eff6b7dfec9f629b516ee", - "is_verified": false, - "line_number": 10331 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2021eda946b15f55a5739156272f00472768232b", - "is_verified": false, - "line_number": 10342 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "df8e0babfad52a541f6e470cf3a143402c2c2a1e", - "is_verified": false, - "line_number": 10354 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d4a9bb5ea90423012244c4784a566fb186f190bf", - "is_verified": false, - "line_number": 10364 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9e897caf5658aea914e1034f46663cadb5a76348", - "is_verified": false, - "line_number": 10395 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "fb0efd2d61c113c008a898abd9b1c9630705b752", - "is_verified": false, - "line_number": 10405 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "28ce4be9b6eb6856c4bf942b9951334e96a6c55a", - "is_verified": false, - "line_number": 10413 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "725b9654d64cccc77f294d0ea0a09bbc11bd46bd", - "is_verified": false, - "line_number": 10418 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3c7ef667ffb0d5ae66e7f643a483c22c0cdc1e25", - "is_verified": false, - "line_number": 10426 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "58e1cc41d9f15389145d4bac327dc8e049cf9831", - "is_verified": false, - "line_number": 10434 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3c42803105ef65349dde4474b0d4de15ce00db54", - "is_verified": false, - "line_number": 10485 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6a06fcab75226b02d9c0b37db785b301712291b2", - "is_verified": false, - "line_number": 10550 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "392144989b90995fad5bde8c9f94dd3001913d0c", - "is_verified": false, - "line_number": 10556 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "f2da38b66826d5df8c4dedd11f1698a44efda21c", - "is_verified": false, - "line_number": 10562 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "eca5fc6e4f5f895143d3fcedefc42dfe6e79f918", - "is_verified": false, - "line_number": 10608 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "48ba3044f3b16375156d71cbfc48db1fea40a69b", - "is_verified": false, - "line_number": 10613 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "3744d756235c33e86a82259a8d3b8dd6569789fc", - "is_verified": false, - "line_number": 10624 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "44d08f1786c6470eb957548e8ba4170bb0d66c6f", - "is_verified": false, - "line_number": 10629 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "acbc4e0d0156bd10ae11961110589940d971dc1b", - "is_verified": false, - "line_number": 10635 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "b8f971fac39e4aea30b55aa61061d102cc8a1d9e", - "is_verified": false, - "line_number": 10644 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "684a87001bd7fd97b2065db52e2138596db2fc3a", - "is_verified": false, - "line_number": 10651 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "d848c76e10ff33cf6727a23dc9028f3fc1978bb6", - "is_verified": false, - "line_number": 10657 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "04a07353500a4e0d7cb83c3cea002338d789e041", - "is_verified": false, - "line_number": 10663 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "845000390934a56f92bf868e699920b42663cbbe", - "is_verified": false, - "line_number": 10668 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "45349b85a1272f7bddf0648d50473d3d6d3de63a", - "is_verified": false, - "line_number": 10673 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "c0665d268ee6985b4ce98c67b9c6c7502af11a25", - "is_verified": false, - "line_number": 10678 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "4ff18905b83280512ef37332280dc2c71540e189", - "is_verified": false, - "line_number": 10683 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "9fbbdc957c5853870c3494f28abc9214e78df2ff", - "is_verified": false, - "line_number": 10690 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "2e2f318d68a1eda1299228bc37e598ff282bd7b5", - "is_verified": false, - "line_number": 10699 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "6f67b0fd13f6feb5f6132a68f8c7f59b6bdcf97e", - "is_verified": false, - "line_number": 10718 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "47f61db9968d9147373f9919fb2d39f044af96d4", - "is_verified": false, - "line_number": 10751 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e8d17f576237010b9617b4519f1ba6ab7bab5da8", - "is_verified": false, - "line_number": 10761 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "0ad40d6a99fdd6f026cd1120a37163524352022e", - "is_verified": false, - "line_number": 10773 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "e42fda6642fe1668d29552f218bce4cfa2619ba0", - "is_verified": false, - "line_number": 10789 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "60d53af452a0b65bbe4c4584dd41b3e60cd6adb5", - "is_verified": false, - "line_number": 10801 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bbd8f9b13b814496e2a764697fb4d824d43470ca", - "is_verified": false, - "line_number": 10809 - }, - { - "type": "Base64 High Entropy String", - "filename": "npm-shrinkwrap.json", - "hashed_secret": "bc001a988dc93a1d9f0b811c8b6f5ed71cd922e8", - "is_verified": false, - "line_number": 10815 - } - ], - "src\\cloud\\providers\\azure\\credentials.ts": [ - { - "type": "Secret Keyword", - "filename": "src\\cloud\\providers\\azure\\credentials.ts", - "hashed_secret": "5d4bc2f0a30deac53e208ba65fee21b59aa1db84", - "is_verified": false, - "line_number": 90 - } - ], - "src\\cloud\\providers\\google\\secrets.ts": [ - { - "type": "Secret Keyword", - "filename": "src\\cloud\\providers\\google\\secrets.ts", - "hashed_secret": "30118aa1aa8a06fa5365743b3a5db69fc62b9760", - "is_verified": false, - "line_number": 30 - } - ], - "src\\cloud\\providers\\ibm\\credentials.ts": [ - { - "type": "Secret Keyword", - "filename": "src\\cloud\\providers\\ibm\\credentials.ts", - "hashed_secret": "9644fcf2eabce70c2db66522e3b310f569698ee1", - "is_verified": false, - "line_number": 105 - } - ], - "src\\cloud\\shared\\queue.ts": [ - { - "type": "Secret Keyword", - "filename": "src\\cloud\\shared\\queue.ts", - "hashed_secret": "2520b7e47eaa6d2aa4c55e7eb2024f24a9b930a1", - "is_verified": false, - "line_number": 37 - } - ] - }, - "generated_at": "2021-07-15T19:19:02Z" + "results": {}, + "generated_at": "2021-08-10T13:39:01Z" } diff --git a/devops/docker/detect_secrets/README.md b/devops/docker/detect_secrets/README.md index d3972dfb51b68a24fcf36fc7705b6debb03f14ce..df4a562a2d2606497d7daaddd22575e8aa2c3643 100644 --- a/devops/docker/detect_secrets/README.md +++ b/devops/docker/detect_secrets/README.md @@ -117,4 +117,12 @@ $ docker run --rm -it -v $(pwd):/opt community.opengroup.org:5555/osdu/platform/ ```bash $ docker run --rm -it -v $(pwd):/opt community.opengroup.org:5555/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/seismic-store-service-detect-secrets:latest detect-secrets-hook --baseline /opt/devops/docker/detect_secrets/.secrets.baseline $(git ls-files) +``` + +##### False positives + +Add next comment above the line (in the proper file) that has been detected and is a false positives + +``` +pragma: allowlist nextline secret ``` \ No newline at end of file diff --git a/devops/osdu/cloud-providers/azure-seismic-store-service.yml b/devops/osdu/cloud-providers/azure-seismic-store-service.yml index 4220ab299b11ccb42f5e9228bef4887e0f0b9029..48d96668af58a2fc28f1131385dadca1a83d13aa 100644 --- a/devops/osdu/cloud-providers/azure-seismic-store-service.yml +++ b/devops/osdu/cloud-providers/azure-seismic-store-service.yml @@ -39,6 +39,8 @@ azure_deploy: - sed -i 's/#{REDIS_HOST}#/'$REDIS_INSTANCE_ADDRESS'/' ${CHART_PATH}/values.yaml - sed -i 's/#{REDIS_PORT}#/'$REDIS_INSTANCE_PORT'/' ${CHART_PATH}/values.yaml - sed -i 's/#{REPLICA_COUNT}#/'$REPLICA'/' ${CHART_PATH}/values.yaml + - sed -i 's/#{SDMS_MIN_REPLICAS}#/'$SDMS_MIN_REPLICAS'/' ${CHART_PATH}/values.yaml + - sed -i 's/#{SDMS_MAX_REPLICAS}#/'$SDMS_MAX_REPLICAS'/' ${CHART_PATH}/values.yaml # Install helm chart - helm upgrade $SERVICE_NAME ${CHART_PATH} --install --dry-run --values $CHART_PATH/values.yaml - helm upgrade $SERVICE_NAME ${CHART_PATH} --install --values $CHART_PATH/values.yaml diff --git a/devops/osdu/scanners/scan-for-secrets-node.yml b/devops/osdu/scanners/scan-for-secrets-node.yml index f111b21dadcec04a1280c2d2306426faa818fc32..0ceeaca4e533ce14e113580d945e1f19926edb7b 100644 --- a/devops/osdu/scanners/scan-for-secrets-node.yml +++ b/devops/osdu/scanners/scan-for-secrets-node.yml @@ -2,6 +2,8 @@ scan-for-secrets: image: community.opengroup.org:5555/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/seismic-store-service-detect-secrets:latest tags: ["osdu-small"] stage: scan - needs: ['compile-and-unit-test'] + needs: + - job: compile-and-unit-test + artifacts: false script: - - detect-secrets-hook --exclude-files devops/docker/detect_secrets/.secrets.baseline --exclude-files devops/osdu/scanners/scan-for-secrets-node.yml --exclude-files npm-shrinkwrap.json --exclude-files package.json --exclude-files devops/scripts/azure_jwt_client.py --exclude-files src/cloud/providers/azure/keyvault.ts --exclude-files tests/utest/cloud/azure/keyvault.ts --baseline devops/docker/detect_secrets/.secrets.baseline $(git ls-files) \ No newline at end of file + - detect-secrets-hook --exclude-files npm-shrinkwrap.json --exclude-files package.json --exclude-files devops/osdu/scanners/scan-for-secrets-node.yml --baseline devops/docker/detect_secrets/.secrets.baseline $(git ls-files) \ No newline at end of file diff --git a/devops/scripts/azure_jwt_client.py b/devops/scripts/azure_jwt_client.py index 4bdb0b4f3f691a258e99f64409024e754c1d0de5..fd3dda00df7840fa4fd780bd6bcb1853be89b22e 100644 --- a/devops/scripts/azure_jwt_client.py +++ b/devops/scripts/azure_jwt_client.py @@ -50,7 +50,8 @@ def get_invalid_token(): } ''' - return "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkdW1teUBkdW1teS5jb20iLCJpc3MiOiJkdW1teUBkdW1teS5jb20iLCJhdWQiOiJkdW1teS5kdW1teS5jb20iLCJpYXQiOjE1NTYxMzcyNzMsImV4cCI6MTU1NjIzMDk3OSwicHJvdmlkZXIiOiJkdW1teS5jb20iLCJjbGllbnQiOiJkdW1teS5jb20iLCJ1c2VyaWQiOiJkdW1teXRlc3Rlci5jb20iLCJlbWFpbCI6ImR1bW15dGVzdGVyLmNvbSIsImF1dGh6IjoiIiwibGFzdG5hbWUiOiJkdW1teSIsImZpcnN0bmFtZSI6ImR1bW15IiwiY291bnRyeSI6IiIsImNvbXBhbnkiOiIiLCJqb2J0aXRsZSI6IiIsInN1YmlkIjoiZHVtbXlpZCIsImlkcCI6ImR1bW15IiwiaGQiOiJkdW1teS5jb20iLCJkZXNpZCI6ImR1bW15aWQiLCJjb250YWN0X2VtYWlsIjoiZHVtbXlAZHVtbXkuY29tIiwianRpIjoiNGEyMWYyYzItZjU5Yy00NWZhLTk0MTAtNDNkNDdhMTg4ODgwIn0.nkiyKtfXXxAlC60iDjXuB2EAGDfZiVglP-CyU1T4etc" + # pragma: allowlist nextline secret + return "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkdW1teUBkdW1teS5jb20iLCJpc3MiOiJkdW1teUBkdW1teS5jb20iLCJhdWQiOiJkdW1teS5kdW1teS5jb20iLCJpYXQiOjE1NTYxMzcyNzMsImV4cCI6MTU1NjIzMDk3OSwicHJvdmlkZXIiOiJkdW1teS5jb20iLCJjbGllbnQiOiJkdW1teS5jb20iLCJ1c2VyaWQiOiJkdW1teXRlc3Rlci5jb20iLCJlbWFpbCI6ImR1bW15dGVzdGVyLmNvbSIsImF1dGh6IjoiIiwibGFzdG5hbWUiOiJkdW1teSIsImZpcnN0bmFtZSI6ImR1bW15IiwiY291bnRyeSI6IiIsImNvbXBhbnkiOiIiLCJqb2J0aXRsZSI6IiIsInN1YmlkIjoiZHVtbXlpZCIsImlkcCI6ImR1bW15IiwiaGQiOiJkdW1teS5jb20iLCJkZXNpZCI6ImR1bW15aWQiLCJjb250YWN0X2VtYWlsIjoiZHVtbXlAZHVtbXkuY29tIiwianRpIjoiNGEyMWYyYzItZjU5Yy00NWZhLTk0MTAtNDNkNDdhMTg4ODgwIn0.nkiyKtfXXxAlC60iDjXuB2EAGDfZiVglP-CyU1T4etc" if __name__ == '__main__': get_id_token() \ No newline at end of file diff --git a/docs/api/openapi.osdu.yaml b/docs/api/openapi.osdu.yaml index 319055e73f381f135c11c6eddea1961c48149509..4fa9e0a407487fca1182af2eb195dd5053e893a4 100644 --- a/docs/api/openapi.osdu.yaml +++ b/docs/api/openapi.osdu.yaml @@ -83,6 +83,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Legal tag of the dataset." in: header name: ltag @@ -142,6 +148,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -188,6 +200,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -237,6 +255,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -300,6 +324,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -358,6 +388,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -404,6 +440,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -446,6 +488,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -496,6 +544,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -548,6 +602,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "The tenant project name." in: path name: tenantid @@ -579,6 +639,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -596,7 +662,14 @@ paths: items: type: string collectionFormat: multi - + - description: 'Limit the number of datasets in the response' + in: query + name: limit + type: string + - description: 'Cursor for pagination on the datasets list' + in: query + name: cursor + type: string responses: 200: description: "The list of all datasets in the subproject if no gtags are in the request parameters. If gtags exist in the request parameters, then list all datasets that have the same list of gtags." @@ -604,6 +677,10 @@ paths: type: array items: $ref: "#/definitions/Dataset" + 201: + description: "Paginated dataset list with nextPageCursor. For documentation purposes, if limit or cursor is given, status code here is 200." + schema: + $ref: "#/definitions/PaginatedDatasets" 400: description: "Bad request." 401: @@ -623,6 +700,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -666,6 +749,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant." in: path name: tenantid @@ -709,6 +798,12 @@ paths: tags: - Utility parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Seismic store path, sd://tenant/sub-project/path." in: query name: sdpath @@ -758,6 +853,12 @@ paths: tags: - Utility parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Seismic store source dataset path." in: query name: sdpath_from @@ -803,6 +904,12 @@ paths: tags: - Utility parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Seismic store path in the format sd://tenant/sub-project." in: query name: sdpath @@ -842,7 +949,7 @@ paths: name: request body required: true schema: - $ref: "#/definitions/ImpersonationToken" + $ref: "#/definitions/ImpTokenRequest" responses: 200: description: "Generated a impersonation credentials token successfully." @@ -961,9 +1068,9 @@ paths: type: string required: true default: "" - - description: "The name of the tenant/data-partition." - in: query - name: tenant-name + - description: "The impersonation token context." + in: header + name: impersonation-token-context type: string required: true default: "" @@ -980,72 +1087,6 @@ paths: description: "Forbidden" 404: description: "Not found" - delete: - summary: "Revoke the impersonation token and/or a list of impersonation token signatures." - description: "" - operationId: impersonation-token-revoke - tags: - - Impersonation Token - parameters: - - description: "The impersonation token to revoke (required if the signatures body field is not specified)." - in: header - name: impersonation-token - type: string - required: false - default: "" - - description: "The name of the tenant/data-partition." - in: query - name: tenant-name - type: string - required: true - default: "" - - description: "List of impersonation token signatures." - in: query - name: signatures - required: false - type: array - items: - type: string - default: "" - collectionFormat: multi - responses: - 200: - description: "The impersonation token and/or the requested signatures have been successfully revoked." - 400: - description: "Bad request" - 401: - description: "Unauthorized" - 403: - description: "Forbidden" - 404: - description: "Not found" - /api/v3/impersonation-token/signatures: - get: - summary: "Retrieve the list of active impersonation token signatures." - description: "" - operationId: impersonation-token-signature - tags: - - Impersonation Token - parameters: - - description: "The name of the tenant/data-partition" - in: query - name: tenant-name - type: string - required: true - default: "" - responses: - 200: - description: "The list of signatures with their metadata." - schema: - $ref: "#/definitions/ImpersonationTokenSignatureResponse" - 400: - description: "Bad request." - 401: - description: "Unauthorized." - 403: - description: "Forbidden." - 404: - description: "Not found." /subproject/tenant/{tenantid}/subproject/{subprojectid}: post: @@ -1851,7 +1892,7 @@ definitions: # OK ImpersonationToken: - required: ["impersonation_token", "token_type", "expires_in"] + required: ["impersonation_token", "token_type", "expires_in", "context"] properties: impersonation_token: type: string @@ -1862,10 +1903,14 @@ definitions: expires_in: type: number description: Token expiration time. + context: + type: string + description: the Impersonation token context. example: impersonation_token: "ya29.fgdgsdngevrjbinb0exdnberoibnerbnerber-fdsfwefwe_cece.rfd43f3" token_type: "Bearer" expires_in: 3600 + context: "xf420cvrv303fm4vksvdkvnejvrjbinb0exdnberonswc2mvmalksdvdeakvwrmk" # OK Resource: @@ -1894,37 +1939,6 @@ definitions: { "resource": "sd://tnx01/spx02", "readonly": false } ] metadata: { "jobId": 1234 } - - # OK - ImpersonationTokenSignature: - required: ["created_by", "created_date", "resources", "signature"] - properties: - created_by: - type: string - description: The trusted app id . - created_date: - type: string - description: The create date and time. - resources: - type: array - items: - $ref: "#/definitions/Resource" - signature: - type: string - description: the impersonation token signature. - metadata: - type: object - description: the custom metadata associated. - - # OK - ImpersonationTokenSignatureResponse: - required: ["signatures"] - properties: - signatures: - type: array - items: - $ref: "#/definitions/ImpersonationTokenSignature" - # OK ImpTokenRequest: required: ["token", "resources", "refresh-url"] @@ -2193,6 +2207,16 @@ definitions: type: string description: Next cursor for pagination. example: { datasets: ["folderA/", "folderB/", "dataset01"], nextPageCursor: "abc1234" } + + # PaginatedDatasets + PaginatedDatasets: + properties: + datasets: + type: array + items: + $ref: '#/definitions/Dataset' + nextPageCursor: + type: string # =========================================================================== # Endpoints Security Section diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index c306ca2366776865a2b6258b7fcd283a4de1fbda..ae4a606e4bd6c7019fb9b083eed7b8e0f570f4ee 100644 --- a/docs/api/openapi.yaml +++ b/docs/api/openapi.yaml @@ -26,13 +26,13 @@ info: description: "Seismic Data Management APIs to store and manage seismic datasets ." host: "#{gcp.endpoints.service.name}#" -basePath: "/" +basePath: "/seistore-svc" x-google-endpoints: - name: "#{gcp.endpoints.service.name}#" allowCors: True -x-google-allow: all +x-google-allow: configured consumes: - application/json @@ -93,6 +93,12 @@ paths: type: string required: false default: "Slb-Private-USA-EHC" + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -148,6 +154,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -198,6 +210,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -241,6 +259,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -301,6 +325,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -359,6 +389,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -405,6 +441,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -451,6 +493,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -504,6 +552,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -558,6 +612,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "The tenant project name" in: path name: tenantid @@ -587,6 +647,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -606,6 +672,14 @@ paths: items: type: string collectionFormat: multi + - description: 'Limit the number of datasets in the response' + in: query + name: limit + type: string + - description: 'Cursor for pagination on the datasets list' + in: query + name: cursor + type: string responses: 200: @@ -614,6 +688,11 @@ paths: type: array items: $ref: "#/definitions/Dataset" + + 201: + description: "Paginated dataset list with nextPageCursor. For documentation purposes, if limit or cursor is given, status code here is 200." + schema: + $ref: "#/definitions/PaginatedDatasets" 400: description: "Bad request" 401: @@ -631,6 +710,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -674,6 +759,12 @@ paths: tags: - Dataset parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Name of the tenant" in: path name: tenantid @@ -717,6 +808,12 @@ paths: tags: - Utility parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Seismic store path, sd://tenant/sub-project/path" in: query name: sdpath @@ -763,6 +860,12 @@ paths: tags: - Utility parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Seismic store source dataset path" in: query name: sdpath_from @@ -806,6 +909,12 @@ paths: tags: - Utility parameters: + - description: "The impersonation token context (required only with impersonation token credentials)" + in: header + name: impersonation-token-context + type: string + required: false + default: "" - description: "Seismic store path in the format sd://tenant/sub-project" in: query name: sdpath @@ -960,9 +1069,9 @@ paths: type: string required: true default: "" - - description: "The name of the tenant/data-partition." - in: query - name: tenant-name + - description: "The impersonation token context." + in: header + name: impersonation-token-context type: string required: true default: "" @@ -979,72 +1088,6 @@ paths: description: "Forbidden" 404: description: "Not found" - delete: - summary: "Revoke the impersonation token and/or a list of impersonation token signatures." - description: "" - operationId: impersonation-token-revoke - tags: - - Impersonation Token - parameters: - - description: "The impersonation token to revoke (required if the signatures body field is not specified)." - in: header - name: impersonation-token - type: string - required: false - default: "" - - description: "The name of the tenant/data-partition." - in: query - name: tenant-name - type: string - required: true - default: "" - - description: "List of impersonation token signatures." - in: query - name: signatures - required: false - type: array - items: - type: string - default: "" - collectionFormat: multi - responses: - 200: - description: "The impersonation token and/or the requested signatures have been successfully revoked." - 400: - description: "Bad request" - 401: - description: "Unauthorized" - 403: - description: "Forbidden" - 404: - description: "Not found" - /api/v3/impersonation-token/signatures: - get: - summary: "Retrieve the list of active impersonation token signatures." - description: "" - operationId: impersonation-token-signature - tags: - - Impersonation Token - parameters: - - description: "The name of the tenant/data-partition" - in: query - name: tenant-name - type: string - required: true - default: "" - responses: - 200: - description: "The list of signatures with their metadata." - schema: - $ref: "#/definitions/ImpersonationTokenSignatureResponse" - 400: - description: "Bad request." - 401: - description: "Unauthorized." - 403: - description: "Forbidden." - 404: - description: "Not found." /api/v3/subproject/tenant/{tenantid}/subproject/{subprojectid}: post: @@ -1858,7 +1901,7 @@ definitions: # OK ImpersonationToken: - required: ["impersonation_token", "token_type", "expires_in"] + required: ["impersonation_token", "token_type", "expires_in", "context"] properties: impersonation_token: type: string @@ -1869,10 +1912,14 @@ definitions: expires_in: type: number description: Token expiration time. + context: + type: string + description: the Impersonation token context. example: impersonation_token: "ya29.fgdgsdngevrjbinb0exdnberoibnerbnerber-fdsfwefwe_cece.rfd43f3" token_type: "Bearer" expires_in: 3600 + context: "xf420cvrv303fm4vksvdkvnejvrjbinb0exdnberonswc2mvmalksdvdeakvwrmk" # OK Resource: @@ -1902,36 +1949,6 @@ definitions: ] metadata: { "jobId": 1234 } - # OK - ImpersonationTokenSignature: - required: ["created_by", "created_date", "resources", "signature"] - properties: - created_by: - type: string - description: The trusted app id . - created_date: - type: string - description: The create date and time. - resources: - type: array - items: - $ref: "#/definitions/Resource" - signature: - type: string - description: the impersonation token signature. - metadata: - type: object - description: the custom metadata associated. - - # OK - ImpersonationTokenSignatureResponse: - required: ["signatures"] - properties: - signatures: - type: array - items: - $ref: "#/definitions/ImpersonationTokenSignature" - # OK ImpTokenRequest: required: ["token", "resources", "refresh-url"] @@ -2201,6 +2218,16 @@ definitions: type: string description: Next cursor for pagination example: { datasets: ["folderA/", "folderB/", "dataset01"], nextPageCursor: "abc1234" } + + # PaginatedDatasets + PaginatedDatasets: + properties: + datasets: + type: array + items: + $ref: '#/definitions/Dataset' + nextPageCursor: + type: string # =========================================================================== # Endpoints Security Section diff --git a/src/auth/auth.ts b/src/auth/auth.ts index f4b545ce8715ab892f3c14b57e5915724c6ab3b2..707d224896c02c569c1769d666097bc5fb75b44d 100644 --- a/src/auth/auth.ts +++ b/src/auth/auth.ts @@ -22,7 +22,7 @@ import { TenantModel } from '../services/tenant'; import { Cache, Error, Utils } from '../shared'; import { AuthGroups } from './groups'; import { createHash } from 'crypto'; -import { ImpersonationTokenModel } from '../services/impersonation_token/model'; +import { ImpersonationTokenContextModel, ImpersonationTokenModel } from '../services/impersonation_token/model'; import { ImpersonationTokenHandler } from '../services/impersonation_token/handler'; import { ITenantModel } from '../services/tenant/model'; @@ -33,7 +33,7 @@ export class AuthProviderFactoryBuilder { public static register(providerLabel: string) { return (target: any) => { - if(AuthProviderFactoryBuilder.providers[providerLabel]) { + if (AuthProviderFactoryBuilder.providers[providerLabel]) { AuthProviderFactoryBuilder.providers[providerLabel].push(target); } else { AuthProviderFactoryBuilder.providers[providerLabel] = [target]; @@ -47,7 +47,7 @@ export class AuthProviderFactoryBuilder { throw (Error.make(Error.Status.UNKNOWN, `Unrecognized auth provider: ${providerLabel}`)); } - for(const provider of AuthProviderFactoryBuilder.providers[providerLabel]) { + for (const provider of AuthProviderFactoryBuilder.providers[providerLabel]) { if (provider.prototype instanceof referenceAbstraction) { return new provider(args); } @@ -67,12 +67,14 @@ export interface IAuthProvider { generateAuthCredential(): Promise; convertToImpersonationTokenModel(credential: any): ImpersonationTokenModel; getClientID(): string; + getClientSecret(): string; } export abstract class AbstractAuthProvider implements IAuthProvider { public abstract generateAuthCredential(): Promise; public abstract convertToImpersonationTokenModel(credential: any): ImpersonationTokenModel; public abstract getClientID(): string; + public abstract getClientSecret(): string; } export class AuthProviderFactory extends AuthProviderFactoryBuilder { @@ -105,7 +107,7 @@ export class Auth { createHash('sha1').update(authToken).digest('base64') + ',' + authGroupEmails.sort().join(',')); let isAuthorized = await this._cache.get(cacheKey); - if (isAuthorized === undefined) { // key not exist in cache -> canll entitlement + if (isAuthorized === undefined) { // key not exist in cache -> call entitlement isAuthorized = await AuthGroups.isMemberOfAtleastOneGroup(authToken, authGroupEmails, esd, appkey); await this._cache.set(cacheKey, isAuthorized, this._cacheItemTTL); } @@ -121,13 +123,15 @@ export class Auth { public static async isWriteAuthorized( authToken: string, authGroupsName: string[], tenant: ITenantModel, subprojectName: string, - appkey: string, mustThrow: boolean = true): Promise { + appkey: string, impersonationTokenContext: string, + mustThrow: boolean = true): Promise { if (Auth.isObsoleteImpersonationToken(authToken)) { return Auth.isImpersonationTokenWriteAuthorized(authToken, tenant.name, subprojectName, mustThrow); } else if (Auth.isNewImpersonationToken(authToken)) { - return await Auth.isNewImpersonationTokenWriteAuthorized(authToken, tenant, subprojectName, mustThrow); + return await Auth.isNewImpersonationTokenWriteAuthorized( + impersonationTokenContext, tenant, subprojectName, mustThrow); } else { return await Auth.isUserAuthorized(authToken, authGroupsName, tenant.esd, appkey, mustThrow); } @@ -136,13 +140,15 @@ export class Auth { public static async isReadAuthorized( authToken: string, authGroupsName: string[], tenant: ITenantModel, subprojectName: string, - appkey: string, mustThrow: boolean = true): Promise { + appkey: string, impersonationTokenContext: string, + mustThrow: boolean = true): Promise { if (Auth.isObsoleteImpersonationToken(authToken)) { return Auth.isImpersonationTokenReadAuthorized(authToken, tenant.name, subprojectName, mustThrow); } else if (Auth.isNewImpersonationToken(authToken)) { - return Auth.isNewImpersonationTokenReadAuthorized(authToken, tenant, subprojectName, mustThrow); + return Auth.isNewImpersonationTokenReadAuthorized( + impersonationTokenContext, tenant, subprojectName, mustThrow); } else { return await Auth.isUserAuthorized(authToken, authGroupsName, tenant.esd, appkey, mustThrow); } @@ -220,49 +226,92 @@ export class Auth { } private static async isNewImpersonationTokenWriteAuthorized( - token: string, tenant: ITenantModel, subprojectName: string, mustThrow = true): Promise { + tokenContext: string, tenant: ITenantModel, + subprojectName: string, mustThrow = true): Promise { - const metadata = await ImpersonationTokenHandler.getImpersonationTokenData(tenant, token); - if(!metadata) { // signature not found - throw (Error.make(Error.Status.PERMISSION_DENIED, + if (!tokenContext) { + if (!mustThrow) { return false; } + throw (Error.make(Error.Status.BAD_REQUEST, + 'Unauthorized Access to ' + 'sd://' + tenant.name + '/' + subprojectName + + 'The request impersonation-token-context header has not been specified.')); + } + + if (tokenContext.split('.').length !== 2) { + if (!mustThrow) { return false; } + throw (Error.make(Error.Status.BAD_REQUEST, 'Unauthorized Access to ' + 'sd://' + tenant.name + '/' + subprojectName + - '. The impersonation token signature has not been found. Please generate a new impersonation token and try again')); + 'The request impersonation-token-context header value is not in the right form.')); } - const resource = metadata.resources.find((el) => el.resource === (tenant.name + '/' + subprojectName)); + + const authClientSecret = AuthProviderFactory.build( + Config.SERVICE_AUTH_PROVIDER).getClientSecret(); + + // decrypt the impersonation token context + const context = JSON.parse(Utils.decrypt( + tokenContext.split('.')[0], + tokenContext.split('.')[1], + authClientSecret)) as ImpersonationTokenContextModel; + + const resource = context.resources.find((el) => el.resource === (tenant.name + '/' + subprojectName)); // resource not found - if (!resource && mustThrow) { + if (!resource) { + if (!mustThrow) { return false; } throw (Error.make(Error.Status.PERMISSION_DENIED, - 'The imptoken has not been authorized for the subproject resource ' + + 'The impersonation token has not been authorized for the subproject resource ' + 'sd://' + tenant.name + '/' + subprojectName)); } - if (!resource) { return false; } - if (resource.readonly && mustThrow) { + if (resource.readonly) { + if (!mustThrow) { return false; } throw (Error.make(Error.Status.PERMISSION_DENIED, - 'The imptoken has not been write authorized for the subproject resource ' + + 'The impersonation token has not been write authorized for the subproject resource ' + 'sd://' + tenant.name + '/' + subprojectName)); } - return !resource.readonly; + + return true; + } private static async isNewImpersonationTokenReadAuthorized( - token: string, tenant: ITenantModel , subprojectName: string, mustThrow: boolean = true): Promise { + tokenContext: string, tenant: ITenantModel, + subprojectName: string, mustThrow: boolean = true): Promise { - const metadata = await ImpersonationTokenHandler.getImpersonationTokenData(tenant, token); - if(!metadata) { // signature not found - throw (Error.make(Error.Status.PERMISSION_DENIED, + if (!tokenContext) { + if (!mustThrow) { return false; } + throw (Error.make(Error.Status.BAD_REQUEST, 'Unauthorized Access to ' + 'sd://' + tenant.name + '/' + subprojectName + - '. The impersonation token signature has not been found. Please generate a new impersonation token and try again')); + 'The request impersonation-token-context header has not been specified.')); } - const resource = metadata.resources.find((el) => el.resource === (tenant.name + '/' + subprojectName)); - if (!resource && mustThrow) { + if (tokenContext.split('.').length !== 2) { + if (!mustThrow) { return false; } + throw (Error.make(Error.Status.BAD_REQUEST, + 'Unauthorized Access to ' + 'sd://' + tenant.name + '/' + subprojectName + + 'The request impersonation-token-context header value is not in the right form.')); + } + + const authClientSecret = AuthProviderFactory.build( + Config.SERVICE_AUTH_PROVIDER).getClientSecret(); + + // decrypt the impersonation token context + const context = JSON.parse(Utils.decrypt( + tokenContext.split('.')[0], + tokenContext.split('.')[1], + authClientSecret)) as ImpersonationTokenContextModel; + + const resource = context.resources.find((el) => el.resource === (tenant.name + '/' + subprojectName)); + + // resource not found + if (!resource) { + if (!mustThrow) { return false; } throw (Error.make(Error.Status.PERMISSION_DENIED, - 'The imptoken has not been authorized for the subproject resource ' + + 'The impersonation token has not been authorized for the subproject resource ' + 'sd://' + tenant.name + '/' + subprojectName)); } - return resource !== undefined; + + return true; + } } diff --git a/src/auth/providers/generic/auth.ts b/src/auth/providers/generic/auth.ts index 548bd23516a14a27e50b7b45cc7077accbbef276..ae189198034384446092e7dd54b6cca06a1dfca0 100644 --- a/src/auth/providers/generic/auth.ts +++ b/src/auth/providers/generic/auth.ts @@ -36,4 +36,9 @@ export class GenericAuthProvider extends AbstractAuthProvider { 'The required feature is not supported, the credential auth provider has not been found.')); } + public getClientSecret(): string { + throw (Error.make(Error.Status.NOT_IMPLEMENTED, + 'The required feature is not supported, the credential auth provider has not been found.')); + } + } \ No newline at end of file diff --git a/src/cloud/providers/azure/credentials.ts b/src/cloud/providers/azure/credentials.ts index 1fa161335c1b575ede094f4c561134e93f9d0098..140c9c7b30c5debfe8f279d2341f07e1a2590be9 100644 --- a/src/cloud/providers/azure/credentials.ts +++ b/src/cloud/providers/azure/credentials.ts @@ -87,6 +87,7 @@ export class AzureCredentials extends AbstractCredentials { form: { grant_type: 'client_credentials', client_id: clientID, + // pragma: allowlist nextline secret client_secret: clientSecret, resource: appResourceID }, diff --git a/src/cloud/providers/azure/keyvault.ts b/src/cloud/providers/azure/keyvault.ts index b89f188176da7edd4a546dbf9961c6a2fa265855..d9519b5d189dcbcaa5d09556403444f97a452b0a 100644 --- a/src/cloud/providers/azure/keyvault.ts +++ b/src/cloud/providers/azure/keyvault.ts @@ -24,6 +24,7 @@ export class Keyvault { public static REDIS_KEY = 'redis-password'; public static SP_TENANT_ID = 'app-dev-sp-tenant-id'; public static SP_CLIENT_ID = 'app-dev-sp-username'; + // pragma: allowlist nextline secret public static SP_CLIENT_SECRET = 'app-dev-sp-password'; public static SP_APP_RESOURCE_ID = 'aad-client-id'; public static DATA_PARTITION_STORAGE_ACCOUNT_NAME = 'sdms-storage-account-name'; diff --git a/src/cloud/providers/google/secrets.ts b/src/cloud/providers/google/secrets.ts index 18446ebdb1f0e32ef3750c5baa8eebe8a0d9beac..a99566c7a3e6b49b3270199962ad02714f945ec7 100644 --- a/src/cloud/providers/google/secrets.ts +++ b/src/cloud/providers/google/secrets.ts @@ -27,6 +27,7 @@ export class Secrets{ public async getSecret(secretName: string, required = true): Promise { try { + // pragma: allowlist nextline secret const [secret] = await this.client.accessSecretVersion({ name: `projects/${ConfigGoogle.SERVICE_CLOUD_PROJECT}/secrets/${secretName}/versions/latest` }); diff --git a/src/cloud/providers/ibm/credentials.ts b/src/cloud/providers/ibm/credentials.ts index c7f2fd38c2c6e17e1ea0ed54401891b4f5e2e7e4..e4f307ba8cb89b2cfa80c32026607670433d9e71 100644 --- a/src/cloud/providers/ibm/credentials.ts +++ b/src/cloud/providers/ibm/credentials.ts @@ -102,6 +102,7 @@ export class Credentials extends AbstractCredentials { ); const crdntls = { username: IbmConfig.KEYCLOAK_USERNAME, + // pragma: allowlist nextline secret password: IbmConfig.KEYCLOAK_PASSWORD, grantType: IbmConfig.KEYCLOAK_GRANTTYPE, clientId: IbmConfig.KEYCLOAK_CLIENTID, diff --git a/src/cloud/shared/queue.ts b/src/cloud/shared/queue.ts index e445c92907afb0fa631f40a4957003cf0ecc56f1..4e6a97569b52e033b0cfafed53353d8e44006870 100644 --- a/src/cloud/shared/queue.ts +++ b/src/cloud/shared/queue.ts @@ -34,6 +34,7 @@ export class StorageJobManager { }; if (cacheParams.KEY) { + // pragma: allowlist nextline secret redisx['password'] = cacheParams.KEY; if (!cacheParams.DISABLE_TLS) { redisx['tls'] = { servername: cacheParams.ADDRESS }; diff --git a/src/services/dataset/dao.ts b/src/services/dataset/dao.ts index d045ef5d17360a0b736c3c3bf42b3b57e918d1a1..a08d17d9259f68795bdf5d6e3896013f0e4fa8dd 100644 --- a/src/services/dataset/dao.ts +++ b/src/services/dataset/dao.ts @@ -15,10 +15,10 @@ // ============================================================================ import { DatasetModel, PaginationModel } from '.'; -import { IJournal, IJournalTransaction } from '../../cloud'; -import { Config } from '../../cloud'; +import { Config, IJournal, IJournalTransaction } from '../../cloud'; import { Utils } from '../../shared'; import { Locker } from './locker'; +import { PaginatedDatasetList } from './model'; export class DatasetDAO { @@ -69,7 +69,9 @@ export class DatasetDAO { public static async list( journalClient: IJournal | IJournalTransaction, - dataset: DatasetModel): Promise { + dataset: DatasetModel, pagination: PaginationModel): + Promise { + let query: any; if (dataset.gtags === undefined || dataset.gtags.length === 0) { query = journalClient.createQuery( @@ -83,16 +85,27 @@ export class DatasetDAO { } } - let [entities] = await journalClient.runQuery(query); + if (pagination && pagination.cursor) { query = query.start(pagination.cursor); } + + if (pagination && pagination.limit) { query = query.limit(pagination.limit); } - entities = (entities) as DatasetModel[]; + const [entities, info] = await journalClient.runQuery(query); // Fix model for old entity for (let entity of entities) { entity = await this.fixOldModel(entity, dataset.tenant, dataset.subproject); } - return entities; + const output: PaginatedDatasetList = { + datasets: entities, + nextPageCursor: null + }; + + if (pagination) { + output.nextPageCursor = info.endCursor; + } + + return output; } diff --git a/src/services/dataset/handler.ts b/src/services/dataset/handler.ts index b21681b4f416d547bcc4b216dacfdca4be6fc61c..28ed85a24e448afec2634166794f7ed17ed3b12c 100644 --- a/src/services/dataset/handler.ts +++ b/src/services/dataset/handler.ts @@ -154,7 +154,8 @@ export class DatasetHandler { FeatureFlags.isEnabled(Feature.AUTHORIZATION) ? Auth.isWriteAuthorized(req.headers.authorization, subproject.acls.admins, - tenant, dataset.subproject, req[Config.DE_FORWARD_APPKEY]) : undefined, + tenant, dataset.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string) : undefined, FeatureFlags.isEnabled(Feature.LEGALTAG) ? dataset.ltag ? Auth.isLegalTagValid( req.headers.authorization, dataset.ltag, @@ -293,7 +294,8 @@ export class DatasetHandler { 'Access policy for the subproject is neither uniform nor dataset')); } await Auth.isReadAuthorized(req.headers.authorization, authGroups, - tenant, datasetIN.subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, datasetIN.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } // return the seismicmetadata (if exist) @@ -316,7 +318,10 @@ export class DatasetHandler { private static async list(req: expRequest, tenant: TenantModel, subproject: SubProjectModel) { // Retrieve the dataset path information - const dataset = DatasetParser.list(req); + const userInput = DatasetParser.list(req); + + const dataset = userInput.dataset; + const pagination = userInput.pagination; // init journalClient client const journalClient = JournalFactoryTenantClient.get(tenant); @@ -325,21 +330,25 @@ export class DatasetHandler { // Check authorizations await Auth.isReadAuthorized(req.headers.authorization, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, dataset.subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, dataset.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } - // Retrieve the list of datasets metadata - const datasets = await DatasetDAO.list(journalClient, dataset); + const output = await DatasetDAO.list(journalClient, dataset, pagination) as any; // attach the gcpid for fast check - for (const item of datasets) { + for (const item of output.datasets) { item.ctag = item.ctag + tenant.gcpid + ';' + DESUtils.getDataPartitionID(tenant.esd); } + // Retrieve the list of datasets metadata - return datasets; + if (output.nextPageCursor) { + return output; + } + return output.datasets; } // delete a dataset @@ -385,7 +394,8 @@ export class DatasetHandler { } await Auth.isWriteAuthorized(req.headers.authorization, - authGroups, tenant, subproject.name, req[Config.DE_FORWARD_APPKEY]); + authGroups, tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } // check if valid url @@ -439,11 +449,13 @@ export class DatasetHandler { if (wid.startsWith('W')) { await Auth.isWriteAuthorized(req.headers.authorization, subproject.acls.admins, - tenant, subproject.name, req[Config.DE_FORWARD_APPKEY]); + tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } else { await Auth.isReadAuthorized(req.headers.authorization, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, datasetIN.subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, datasetIN.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } } @@ -529,7 +541,8 @@ export class DatasetHandler { } await Auth.isWriteAuthorized(req.headers.authorization, - authGroups, tenant, subproject.name, req[Config.DE_FORWARD_APPKEY]); + authGroups, tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } // patch datasetOUT with datasetIN @@ -755,7 +768,9 @@ export class DatasetHandler { } await Auth.isWriteAuthorized(req.headers.authorization, - authGroups, tenant, datasetIN.subproject, req[Config.DE_FORWARD_APPKEY]); + authGroups, tenant, datasetIN.subproject, + req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } else { @@ -770,7 +785,8 @@ export class DatasetHandler { } await Auth.isReadAuthorized(req.headers.authorization, authGroups, - tenant, datasetIN.subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, datasetIN.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } } @@ -824,7 +840,7 @@ export class DatasetHandler { // check if the dataset does not exist const lockKey = datasetIN.tenant + '/' + datasetIN.subproject + datasetIN.path + datasetIN.name; if (!dataset) { - if(await Locker.getLock(lockKey)) { + if (await Locker.getLock(lockKey)) { // if a previous call fails, the dataset is not created but the lock is acquired and not released await Locker.unlock(lockKey); return; @@ -849,7 +865,9 @@ export class DatasetHandler { } await Auth.isWriteAuthorized(req.headers.authorization, - authGroups, tenant, dataset.subproject, req[Config.DE_FORWARD_APPKEY]); + authGroups, tenant, dataset.subproject, + req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); // unlock await Locker.unlock(lockKey); @@ -869,7 +887,8 @@ export class DatasetHandler { await Auth.isReadAuthorized(req.headers.authorization, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, datasets[0].subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, datasets[0].subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } // Check if the required datasets exist @@ -898,7 +917,8 @@ export class DatasetHandler { if (FeatureFlags.isEnabled(Feature.AUTHORIZATION)) { await Auth.isReadAuthorized(req.headers.authorization, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, datasets[0].subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, datasets[0].subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } // Check if the required datasets exist @@ -940,7 +960,8 @@ export class DatasetHandler { // Check authorizations await Auth.isReadAuthorized(req.headers.authorization, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, dataset.subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, dataset.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } // list the folder content @@ -1020,7 +1041,9 @@ export class DatasetHandler { } await Auth.isWriteAuthorized(req.headers.authorization, - authGroups, tenant, datasetIN.subproject, req[Config.DE_FORWARD_APPKEY]); + authGroups, tenant, datasetIN.subproject, + req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } await DatasetDAO.update(journalClient, datasetOUT, datasetOUTKey); @@ -1062,7 +1085,9 @@ export class DatasetHandler { } res.write = await Auth.isWriteAuthorized(req.headers.authorization, - authGroups, tenant, dataset.subproject, req[Config.DE_FORWARD_APPKEY], false); + authGroups, tenant, dataset.subproject, + req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string, false); // Check write authorization @@ -1077,7 +1102,8 @@ export class DatasetHandler { } res.read = await Auth.isReadAuthorized(req.headers.authorization, authGroups, - tenant, dataset.subproject, req[Config.DE_FORWARD_APPKEY], false); + tenant, dataset.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string, false); } else { res.write = true; diff --git a/src/services/dataset/model.ts b/src/services/dataset/model.ts index 2f1f0623e7906addf89761681d0dfec36463270b..4d24f316efe016450d70d8e75aaeb646ebefb895 100644 --- a/src/services/dataset/model.ts +++ b/src/services/dataset/model.ts @@ -14,6 +14,7 @@ // limitations under the License. // ============================================================================ + export interface IDatasetModel { name: string; tenant: string; @@ -46,4 +47,9 @@ export interface IPaginationModel { export interface IDatasetAcl { admins: string[], viewers: string[]; +} + +export interface PaginatedDatasetList { + datasets: IDatasetModel[]; + nextPageCursor: string; } \ No newline at end of file diff --git a/src/services/dataset/parser.ts b/src/services/dataset/parser.ts index f4edbfc6af9d032e5fa7e9379c9581d97e28c0a3..4514a90f44a09420273bbacc2ea9a06a2375228c 100644 --- a/src/services/dataset/parser.ts +++ b/src/services/dataset/parser.ts @@ -16,9 +16,7 @@ import { Request as expRequest } from 'express'; import { DatasetModel } from '.'; -import { Config } from '../../cloud'; -import { SeistoreFactory } from '../../cloud/seistore'; -import { Error, Params } from '../../shared'; +import { Error, Params, Utils } from '../../shared'; export class DatasetParser { @@ -47,8 +45,10 @@ export class DatasetParser { const dataset = this.createDatasetModelFromRequest(req); dataset.ltag = (req.headers.ltag) as string; dataset.type = req.body ? req.body.type : undefined; - dataset.created_by = await SeistoreFactory.build( - Config.CLOUDPROVIDER).getEmailFromTokenPayload(req.headers.authorization, true); + dataset.created_by = Utils.getSubIDFromPayload(req.headers.authorization) || + Utils.getSubFromPayload(req.headers.authorization) || + undefined; + dataset.created_date = dataset.last_modified_date = new Date().toString(); dataset.gtags = req.body ? req.body.gtags : undefined; @@ -109,10 +109,28 @@ export class DatasetParser { req.query.seismicmeta === 'true']; } - public static list(req: expRequest): DatasetModel { + public static list(req: expRequest): any { const dataset = this.createDatasetModelFromRequest(req); dataset.gtags = req.query.gtag; - return dataset; + + const limit = parseInt(req.query.limit, 10); + if (limit < 0) { + throw (Error.make(Error.Status.BAD_REQUEST, + 'The \'limit\' query parameter can not be less than zero.')); + } + const cursor = req.query.cursor as string; + if (cursor === '') { + throw (Error.make(Error.Status.BAD_REQUEST, + 'The \'cursor\' query parameter can not be empty if supplied')); + } + let pagination = null; + if (limit || cursor) { + pagination = { limit, cursor }; + } + + // Retrieve the list of datasets metadata + return { dataset, pagination }; + } public static delete(req: expRequest): DatasetModel { @@ -154,6 +172,7 @@ export class DatasetParser { const seismicmeta = req.body.seismicmeta; Params.checkObject(seismicmeta, 'seismicmeta', false); + dataset.acls = req.body && 'acls' in req.body ? req.body.acls : undefined; DatasetParser.validateAcls(dataset); return [dataset, seismicmeta, newName, closeid]; diff --git a/src/services/impersonation_token/handler.ts b/src/services/impersonation_token/handler.ts index c233a4f170975cbb4d7b66e6cbd9b91e7bab0a16..db487488d1484a46008e5512195c70f74321be2b 100644 --- a/src/services/impersonation_token/handler.ts +++ b/src/services/impersonation_token/handler.ts @@ -18,31 +18,30 @@ import { Request as expRequest, Response as expResponse } from 'express'; import { Auth, AuthProviderFactory } from '../../auth'; import { Config, JournalFactoryTenantClient } from '../../cloud'; import { SeistoreFactory } from '../../cloud/seistore'; -import { Cache, Error, Feature, FeatureFlags, Response, Utils } from '../../shared'; +import { Error, Feature, FeatureFlags, Response, Utils } from '../../shared'; import { SubProjectDAO } from '../subproject'; import { TenantDAO } from '../tenant'; -import { ImpersonationTokenModel, ImpersonationTokenDataModel, ImpersonationTokenResourceModel } from './model'; +import { ImpersonationTokenModel, ImpersonationTokenContextModel } from './model'; import { ImpersonationTokenOps } from './optype'; import { ImpersonationTokenParser } from './parser'; -import { createHash } from 'crypto'; -import { ITenantModel } from '../tenant/model'; export class ImpersonationTokenHandler { - private static _cache = new Cache('imptoken_sign'); - private static _cacheTTL = 300; // 5 minutes - // handler for the [ /impersonation-token ] endpoints public static async handler(req: expRequest, res: expResponse, op: ImpersonationTokenOps) { try{ + + // the impersonation token endpoints are not available with impersonation tokens + if (Auth.isImpersonationToken(req.headers.authorization)) { + throw (Error.make(Error.Status.PERMISSION_DENIED, + 'Impersonation token endpoints not available' + + ' with an impersonation token as Auth credentials.')); + } + if (op === ImpersonationTokenOps.Generate) { Response.writeOK(res, await this.generate(req)); } else if (op === ImpersonationTokenOps.Refresh) { Response.writeOK(res, await this.refresh(req)); - } else if (op === ImpersonationTokenOps.DeleteSignatures) { - Response.writeOK(res, await this.deleteSignatures(req)); - } else if (op === ImpersonationTokenOps.GetSignatures) { - Response.writeOK(res, await this.getSignatures(req)); } else { throw (Error.make(Error.Status.UNKNOWN, 'Internal Server Error')); } } catch (error) { Response.writeError(res, error); } @@ -57,6 +56,8 @@ export class ImpersonationTokenHandler { const tenantName = requestBody.resources[0].resource.split('/')[0]; const tenant = await TenantDAO.get(tenantName); const subject = Utils.getSubFromPayload(req.headers.authorization); + const user = Utils.getSubIDFromPayload(req.headers['user-token'] as string) || + Utils.getSubFromPayload(req.headers['user-token'] as string) || undefined; // check if the caller is a trusted application (subject, email(obsolete), emailV2(obsolete)) try { @@ -93,7 +94,8 @@ export class ImpersonationTokenHandler { requestBody.userToken : 'Bearer ' + requestBody.userToken, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], false)); + tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string, false)); } else { authorizationCheckList.push( Auth.isWriteAuthorized( @@ -101,7 +103,8 @@ export class ImpersonationTokenHandler { requestBody.userToken : 'Bearer ' + requestBody.userToken, subproject.acls.admins, - tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], false)); + tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string, false)); } } const results = await Promise.all(authorizationCheckList); @@ -119,22 +122,18 @@ export class ImpersonationTokenHandler { await AuthProviderFactory.build( Config.SERVICE_AUTH_PROVIDER).generateAuthCredential()); - // Save the impersonation token signature with meta-information in the catalogue - const data = { - created_by: subject, - created_date: new Date().toString(), + // Build and sign the impersonation token context + const context = { + user, metadata: requestBody.metadata, resources: requestBody.resources, - signature: this.computeSignature(impersonationToken.impersonation_token) - } as ImpersonationTokenDataModel; - const key = journalClient.createKey({ - namespace: Config.SEISMIC_STORE_NS + '-' + tenant.name, - path: [Config.IMPERSONATION_TOKEN_SIGNATURE_KIND, data.signature], - }); - await journalClient.save({ data, key }); + } as ImpersonationTokenContextModel; + + const authClientSecret = AuthProviderFactory.build( + Config.SERVICE_AUTH_PROVIDER).getClientSecret(); - // Save them in cache too (for fast retrieval) - await this._cache.set(data.signature, data.resources, this._cacheTTL); + const encryptedContext = Utils.encrypt(JSON.stringify(context), authClientSecret); + impersonationToken.context = encryptedContext.encryptedText + '.' + encryptedContext.encryptedTextIV; // Done return impersonationToken; @@ -147,161 +146,48 @@ export class ImpersonationTokenHandler { // parse the request input and retrieve the token const requestParams = ImpersonationTokenParser.refresh(req); - const tenant = await TenantDAO.get(requestParams.tenantName); - // the impersonation token must be valid and active - if(!(await this.hasActiveSignature(tenant, requestParams.token))) { - throw (Error.make(Error.Status.BAD_REQUEST, - 'The impersonation token is not valid or not active (retired)')); - } + const authClientSecret = AuthProviderFactory.build( + Config.SERVICE_AUTH_PROVIDER).getClientSecret(); - // get the impersonation token data - const data = await this.getImpersonationTokenData(tenant, requestParams.token); + // decrypt the impersonation token context + const context = JSON.parse(Utils.decrypt( + requestParams.tokenContext.split('.')[0], + requestParams.tokenContext.split('.')[1], + authClientSecret)) as ImpersonationTokenContextModel; - // generate a new impersonation token credential token (the auth credential) + const tenantName = context.resources[0].resource.split('/')[0]; + const tenant = await TenantDAO.get(tenantName); + const subject = Utils.getSubFromPayload(req.headers.authorization); + + // check if the caller is a trusted application (subject, email(obsolete), emailV2(obsolete)) + try { + await Auth.isAppAuthorized(tenant, subject); + } catch (error) { + const appEmail = await SeistoreFactory.build( + Config.CLOUDPROVIDER).getEmailFromTokenPayload(req.headers.authorization, false); + try { + await Auth.isAppAuthorized(tenant, appEmail); + } catch (error) { + const appEmailV2 = Utils.checkSauthV1EmailDomainName(appEmail); + if (appEmailV2 !== appEmail) { + await Auth.isAppAuthorized(tenant, appEmailV2); + } else { + throw(error); + } + } + } + + // generate the impersonation token credential token (the auth credential) const impersonationToken = AuthProviderFactory.build( Config.SERVICE_AUTH_PROVIDER).convertToImpersonationTokenModel( await AuthProviderFactory.build( Config.SERVICE_AUTH_PROVIDER).generateAuthCredential()); - // the metadata will now have a new signature, update and save in catalogue and cache - data.signature = this.computeSignature(impersonationToken.impersonation_token); - const journalClient = JournalFactoryTenantClient.get(tenant); - const key = journalClient.createKey({ - namespace: Config.SEISMIC_STORE_NS + '-' + tenant.name, - path: [Config.IMPERSONATION_TOKEN_SIGNATURE_KIND, data.signature], - }); - await journalClient.save({ data, key }); - await this._cache.set(data.signature, data.resources, this._cacheTTL); - - // remove the old entry from catalogue and cache - const retiredSignature = this.computeSignature(requestParams.token); - await journalClient.delete(journalClient.createKey({ - namespace: Config.SEISMIC_STORE_NS + '-' + tenant.name, - path: [Config.IMPERSONATION_TOKEN_SIGNATURE_KIND, retiredSignature], - })); - await this._cache.del(retiredSignature); + impersonationToken.context = requestParams.tokenContext; - // Done return impersonationToken; } - // delete impersonation token signatures - private static async deleteSignatures(req: expRequest): Promise { - - if (!FeatureFlags.isEnabled(Feature.IMPTOKEN)) return {} as ImpersonationTokenModel; - - // parse the request input and retrieve the token - const requestParams = ImpersonationTokenParser.deleteSignatures(req); - const tenant = await TenantDAO.get(requestParams.tenantName); - - // the impersonation token if present must be valid and active - if(requestParams.token) { - if(!(await this.hasActiveSignature(tenant, requestParams.token))) { - throw (Error.make(Error.Status.BAD_REQUEST, - 'The impersonation token is not valid or not active (retired)')); - } - } - - // compute the signatures list = input signatures + input token signature - let signatures: string[] = [] - if(requestParams.token) { - signatures = signatures.concat(this.computeSignature(requestParams.token)); - } - if (requestParams.signatures) { - signatures = signatures.concat(requestParams.signatures); - } - - // delete signatures from catalogue - const deleteDataOps = []; - const journalClient = JournalFactoryTenantClient.get(tenant); - signatures.forEach(signature => { - deleteDataOps.push(journalClient.delete(journalClient.createKey({ - namespace: Config.SEISMIC_STORE_NS + '-' + tenant.name, - path: [Config.IMPERSONATION_TOKEN_SIGNATURE_KIND, signature], - }))); - }); - await Promise.all(deleteDataOps); - - // delete signature from cache - const deleteCacheOps = []; - signatures.forEach(signature => { - deleteCacheOps.push(this._cache.del(signature)); - }); - await Promise.all(deleteCacheOps); - - // Done - - } - - // get impersonation token signatures - private static async getSignatures(req: expRequest): Promise { - - if (!FeatureFlags.isEnabled(Feature.IMPTOKEN)) return {} as ImpersonationTokenModel; - - // parse the request input and retrieve the token - const tenantName = ImpersonationTokenParser.getSignatures(req); - const tenant = await TenantDAO.get(tenantName); - - const journalClient = JournalFactoryTenantClient.get(tenant); - const query = journalClient.createQuery( - Config.SEISMIC_STORE_NS + '-' + tenant.name, Config.IMPERSONATION_TOKEN_SIGNATURE_KIND) - .filter('created_by', Utils.getSubFromPayload(req.headers.authorization)); - const [results] = await journalClient.runQuery(query); - return results; - - } - - // generate the impersonation token signatures - private static computeSignature(impersonationToken: string): string { - return createHash('sha256').update(impersonationToken, 'utf8').digest('hex'); - } - - // retrieve the impersonation token data from the catalogue - public static async getImpersonationTokenData( - tenant: ITenantModel, token: string): Promise { - - token = token.startsWith('Bearer') ? token.substr('Bearer '.length) : token - const signature = this.computeSignature(token); - - // get the entity from the catalogue - const journalClient = JournalFactoryTenantClient.get(tenant); - const key = journalClient.createKey({ - namespace: Config.SEISMIC_STORE_NS + '-' + tenant.name, - path: [Config.IMPERSONATION_TOKEN_SIGNATURE_KIND, signature], - }); - const [entity] = await journalClient.get(key); - - if(entity) { - await this._cache.set(signature, entity.resources, this._cacheTTL); - return entity; - } else { - return undefined; - } - - } - - // check if the impersonation token has a valid and active signature - public static async hasActiveSignature( - tenant: ITenantModel, token: string): Promise { - - token = token.startsWith('Bearer') ? token.substr('Bearer '.length) : token - const signature = this.computeSignature(token); - - const res = await this._cache.get(signature); - if (res !== undefined && res) { return true }; - - // get the entity from the catalogue - const journalClient = JournalFactoryTenantClient.get(tenant); - const key = journalClient.createKey({ - namespace: Config.SEISMIC_STORE_NS + '-' + tenant.name, - path: [Config.IMPERSONATION_TOKEN_SIGNATURE_KIND, signature], - }); - const [entity] = await journalClient.get(key); - - return entity !== undefined; - - } - } diff --git a/src/services/impersonation_token/model.ts b/src/services/impersonation_token/model.ts index 409621308b496c520729fc0858d4f500904c5952..42d7e7393fd813e2165b37799a3cf404f3f6f25e 100644 --- a/src/services/impersonation_token/model.ts +++ b/src/services/impersonation_token/model.ts @@ -19,6 +19,7 @@ export interface ImpersonationTokenModel { impersonation_token: string; expires_in: number; token_type: string; + context: string; } // Impersonation Token Resource @@ -34,11 +35,9 @@ export interface ImpersonationTokenRequestBodyModel { metadata: object; } -// Impersonation Token Signature Model -export interface ImpersonationTokenDataModel { - signature: string; +// Impersonation Token Context Model +export interface ImpersonationTokenContextModel { resources: ImpersonationTokenResourceModel[]; metadata: object; - created_by: string; - created_date: string; + user: string; } diff --git a/src/services/impersonation_token/optype.ts b/src/services/impersonation_token/optype.ts index 7fb5eee56548b2bad6d8ffafb4ed73c991503757..15d98f2a9bbeb882e7f48be031e9db7074bf5f74 100644 --- a/src/services/impersonation_token/optype.ts +++ b/src/services/impersonation_token/optype.ts @@ -14,4 +14,4 @@ // limitations under the License. // ============================================================================ -export enum ImpersonationTokenOps { Generate, Refresh, DeleteSignatures, GetSignatures } +export enum ImpersonationTokenOps { Generate, Refresh } diff --git a/src/services/impersonation_token/parser.ts b/src/services/impersonation_token/parser.ts index 3c2c355149495497b4746ec672e49b6ec7939cc7..1a05103575ff444da556a572b7ad448b70032cfa 100644 --- a/src/services/impersonation_token/parser.ts +++ b/src/services/impersonation_token/parser.ts @@ -81,56 +81,24 @@ export class ImpersonationTokenParser { } - public static refresh(req: expRequest): {token: string, tenantName: string} { + public static refresh(req: expRequest): {token: string, tokenContext: string} { const token = req.headers['impersonation-token'] as string; if(!token) { throw (Error.make(Error.Status.BAD_REQUEST, 'The request impersonation-token header has not been specified.')); } - const tenantName = req.query['tenant-name']; - if(!tenantName) { + const tokenContext = req.headers['impersonation-token-context'] as string; + if(!tokenContext) { throw (Error.make(Error.Status.BAD_REQUEST, - 'The tenant-name query paramter has not been specified.')); + 'The request impersonation-token-context header has not been specified.')); } - - return {token, tenantName} - } - - public static getSignatures(req: expRequest): string { - - const tenantName = req.query['tenant-name']; - if(!tenantName) { - throw (Error.make(Error.Status.BAD_REQUEST, - 'The tenant-name query paramter has not been specified.')); - } - return tenantName; - } - - public static deleteSignatures(req: expRequest): {token: string, tenantName: string, signatures: string[]} { - - const tenantName = req.query['tenant-name']; - if(!tenantName) { + if(tokenContext.split('.').length !== 2) { throw (Error.make(Error.Status.BAD_REQUEST, - 'The tenant-name query paramter has not been specified.')); - } - - const token = req.headers['impersonation-token'] as string; - const signatures = req.query['signatures']; - - if(!signatures && !token) { - throw (Error.make(Error.Status.BAD_REQUEST, - 'The request must present the impersonation-token header or a non-empty of signatures.')); - } - - if(signatures) { - if(signatures.length === 0 && !token) { - throw (Error.make(Error.Status.BAD_REQUEST, - 'The request must present the impersonation-token header or a non-empty list of signatures.')); - } + 'The request impersonation-token-context header value is not in the right form.')); } - return {token, tenantName, signatures} + return {token, tokenContext} } } diff --git a/src/services/impersonation_token/service.ts b/src/services/impersonation_token/service.ts index eba0b63990516daa9e27557d7db4a14b16493e3b..8e8a482c6723c2cfaa760e4dd698ebbe23681a99 100644 --- a/src/services/impersonation_token/service.ts +++ b/src/services/impersonation_token/service.ts @@ -30,14 +30,4 @@ router.put('/', async (req: expRequest, res: expResponse) => { await ImpersonationTokenHandler.handler(req, res, ImpersonationTokenOps.Refresh); }); -// delete impersonation token signatures -router.delete('/', async (req: expRequest, res: expResponse) => { - await ImpersonationTokenHandler.handler(req, res, ImpersonationTokenOps.DeleteSignatures); -}); - -// list impersonation token signatures -router.get('/signatures', async (req: expRequest, res: expResponse) => { - await ImpersonationTokenHandler.handler(req, res, ImpersonationTokenOps.GetSignatures); -}); - export { router as ImpersonationTokenRouter }; diff --git a/src/services/imptoken/dao.ts b/src/services/imptoken/dao.ts index ca2934d6dd160d3c791afefaf149a32b4b481edd..aea334587d0bd533cbd476104c55b303fa6ab8d2 100644 --- a/src/services/imptoken/dao.ts +++ b/src/services/imptoken/dao.ts @@ -91,7 +91,11 @@ export class ImpTokenDAO { try { await request(options); } catch (error) { - throw (Error.make(Error.Status.BAD_REQUEST, 'The impersonation token cannot be refreshed.')); + // For any code different than 4xx the imptoken can be refreshed + // This is a temporary fix to handle unavailability of client infrastructure + if (error.statusCode >= 400 && error.statusCode <= 499) { + throw (Error.make(Error.Status.BAD_REQUEST, 'The impersonation token cannot be refreshed.')); + } } } diff --git a/src/services/imptoken/handler.ts b/src/services/imptoken/handler.ts index a146fb3b55d4f20cf13ab6c5a00a3ff2f1e9dc00..9d9222213035ab38bdd3db6b3480f0c2446f5ef3 100644 --- a/src/services/imptoken/handler.ts +++ b/src/services/imptoken/handler.ts @@ -110,12 +110,14 @@ export class ImpTokenHandler { checkAuthorizations.push( Auth.isReadAuthorized(tokenBody.userToken, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, subprojectName, req[Config.DE_FORWARD_APPKEY], false)); + tenant, subprojectName, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string, false)); } else { checkAuthorizations.push( Auth.isWriteAuthorized(tokenBody.userToken, subproject.acls.admins, - tenant, subprojectName, req[Config.DE_FORWARD_APPKEY], false)); + tenant, subprojectName, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string, false)); } } const results = await Promise.all(checkAuthorizations); diff --git a/src/services/subproject/dao.ts b/src/services/subproject/dao.ts index 57c580625520df215a4ef968a50bc04dd872fc8b..064d6faeed0b4a5a82bffd1f347eee83d6670170 100644 --- a/src/services/subproject/dao.ts +++ b/src/services/subproject/dao.ts @@ -129,7 +129,6 @@ export class SubProjectDAO { // check if a subproject exists public static async exist(journalClient: IJournal, tenantName: string, subprojectName: string): Promise { - const res = await this._cache.get(this.getCacheKey(tenantName, subprojectName)); if (res !== undefined && res) { return true; }; @@ -140,10 +139,6 @@ export class SubProjectDAO { const [entity] = await journalClient.get(entityKey); - if (entity) { - await this._cache.set(this.getCacheKey(entity.tenant, entity.name), entity); - } - return entity !== undefined; } diff --git a/src/services/subproject/handler.ts b/src/services/subproject/handler.ts index 02c1fe9bc293526117b852a903918fbbfb19d872..ea47dfc910d1c2ea56c9edbda8ac1f899bba72c9 100644 --- a/src/services/subproject/handler.ts +++ b/src/services/subproject/handler.ts @@ -20,7 +20,7 @@ import { SubProjectModel } from '.'; import { Auth, AuthGroups } from '../../auth'; import { Config, JournalFactoryTenantClient, LoggerFactory, StorageFactory } from '../../cloud'; import { SeistoreFactory } from '../../cloud/seistore'; -import { Error, Feature, FeatureFlags, Response } from '../../shared'; +import { Error, Feature, FeatureFlags, Response, Utils } from '../../shared'; import { DatasetDAO, PaginationModel } from '../dataset'; import { TenantGroups, TenantModel } from '../tenant'; import { TenantDAO } from '../tenant/dao'; @@ -92,8 +92,6 @@ export class SubProjectHandler { const userEmail = await SeistoreFactory.build( Config.CLOUDPROVIDER).getEmailFromTokenPayload(req.headers.authorization, true); - subproject.admin = subproject.admin || userEmail; - // enforce the datasets schema by key for newly create subproject. // this will mainly affect google for which the initial implementation // of the journal was query-based (lack in performance) @@ -132,12 +130,14 @@ export class SubProjectHandler { if (FeatureFlags.isEnabled(Feature.AUTHORIZATION)) { // provision new groups - await AuthGroups.createGroup(userToken, adminGroupName, - 'seismic dms tenant ' + tenant.name + ' subproject ' + subproject.name + ' admin group', - tenant.esd, req[Config.DE_FORWARD_APPKEY]); - await AuthGroups.createGroup(userToken, viewerGroupName, - 'seismic dms tenant ' + tenant.name + ' subproject ' + subproject.name + ' editor group', - tenant.esd, req[Config.DE_FORWARD_APPKEY]); + await Promise.all([ + AuthGroups.createGroup(userToken, adminGroupName, + 'seismic dms tenant ' + tenant.name + ' subproject ' + subproject.name + ' admin group', + tenant.esd, req[Config.DE_FORWARD_APPKEY]), + AuthGroups.createGroup(userToken, viewerGroupName, + 'seismic dms tenant ' + tenant.name + ' subproject ' + subproject.name + ' editor group', + tenant.esd, req[Config.DE_FORWARD_APPKEY])] + ); } subproject.gcs_bucket = await this.getBucketName(tenant); @@ -153,19 +153,24 @@ export class SubProjectHandler { subproject.gcs_bucket, subproject.storage_location, subproject.storage_class); + const subprojectCreatorEmail = subproject.admin || userEmail; + + subproject.admin = Utils.getSubIDFromPayload(req.headers.authorization) || + Utils.getSubFromPayload(req.headers.authorization) || undefined; // Register the subproject await SubProjectDAO.register(journalClient, subproject); if (FeatureFlags.isEnabled(Feature.AUTHORIZATION)) { // if admin is not the requestor, assign the admin and rm the requestor, has to be a sequential op - if (subproject.admin !== userEmail) { - - await AuthGroups.addUserToGroup(userToken, adminGroup, subproject.admin, - tenant.esd, req[Config.DE_FORWARD_APPKEY], 'OWNER', true); - - await AuthGroups.addUserToGroup(userToken, viewerGroup, subproject.admin, - tenant.esd, req[Config.DE_FORWARD_APPKEY], 'OWNER', true); + if (subprojectCreatorEmail !== userEmail) { + + await Promise.all([ + AuthGroups.addUserToGroup(userToken, adminGroup, subprojectCreatorEmail, + tenant.esd, req[Config.DE_FORWARD_APPKEY], 'OWNER', true), + AuthGroups.addUserToGroup(userToken, viewerGroup, subprojectCreatorEmail, + tenant.esd, req[Config.DE_FORWARD_APPKEY], 'OWNER', true) + ]); } } diff --git a/src/services/utility/handler.ts b/src/services/utility/handler.ts index 07c4a1457394587f125db261ddaea932bbc98dec..32cc44628d1a02cb58997bcc8dc0c281181c94b0 100644 --- a/src/services/utility/handler.ts +++ b/src/services/utility/handler.ts @@ -70,11 +70,13 @@ export class UtilityHandler { if (readOnly) { await Auth.isReadAuthorized(req.headers.authorization, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, subproject.name, req[Config.DE_FORWARD_APPKEY]); + tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } else { await Auth.isWriteAuthorized(req.headers.authorization, subproject.acls.admins, - tenant, subproject.name, req[Config.DE_FORWARD_APPKEY]); + tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } } else { const dataset = subproject.enforce_key ? @@ -85,21 +87,25 @@ export class UtilityHandler { if (dataset.acls) { await Auth.isReadAuthorized(req.headers.authorization, dataset.acls.viewers.concat(dataset.acls.admins), - tenant, subproject.name, req[Config.DE_FORWARD_APPKEY]); + tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } else { await Auth.isReadAuthorized(req.headers.authorization, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, subproject.name, req[Config.DE_FORWARD_APPKEY]); + tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } } else { if (dataset.acls) { await Auth.isReadAuthorized(req.headers.authorization, dataset.acls.admins, - tenant, subproject.name, req[Config.DE_FORWARD_APPKEY]); + tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } else { await Auth.isReadAuthorized(req.headers.authorization, subproject.acls.admins, - tenant, subproject.name, req[Config.DE_FORWARD_APPKEY]); + tenant, subproject.name, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } } objectPrefix = dataset.gcsurl.split('/')[1]; @@ -192,7 +198,8 @@ export class UtilityHandler { // Check if user is authorized await Auth.isReadAuthorized(req.headers.authorization, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, sdPath.subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, sdPath.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } if (pagination) { @@ -262,17 +269,20 @@ export class UtilityHandler { if (datasetFrom.acls) { await Auth.isReadAuthorized(req.headers.authorization, datasetFrom.acls.viewers.concat(datasetFrom.acls.admins), - tenant, sdPathFrom.subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, sdPathFrom.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } else { await Auth.isReadAuthorized(req.headers.authorization, subproject.acls.viewers.concat(subproject.acls.admins), - tenant, sdPathFrom.subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, sdPathFrom.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } // check if has write access on destination dataset and read access on the source subproject await Auth.isWriteAuthorized(req.headers.authorization, subproject.acls.admins, - tenant, sdPathTo.subproject, req[Config.DE_FORWARD_APPKEY]); + tenant, sdPathTo.subproject, req[Config.DE_FORWARD_APPKEY], + req.headers['impersonation-token-context'] as string); } diff --git a/src/shared/utils.ts b/src/shared/utils.ts index 8c1dde11990bedc6e7667061164d178ec27dabed..707d08b5c2843c6b0bc53a4117e616c267e48ea5 100644 --- a/src/shared/utils.ts +++ b/src/shared/utils.ts @@ -1,5 +1,5 @@ // ============================================================================ -// Copyright 2017-2019, Schlumberger +// Copyright 2017-2021, Schlumberger // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,13 +14,14 @@ // limitations under the License. // ============================================================================ +import * as crypto from 'crypto'; import { Config } from '../cloud'; export class Utils { - public static getPropertyFromTokenPayload(base64jwtpayload: string, property: string): string { - const payload = this.getPayloadFromStringToken(base64jwtpayload); + public static getPropertyFromTokenPayload(base64JwtPayload: string, property: string): string { + const payload = this.getPayloadFromStringToken(base64JwtPayload); return property in payload ? payload[property] : undefined; } @@ -34,20 +35,24 @@ export class Utils { email.replace('slbservice.com@slb.com', 'slbservice.com@delfiserviceaccount.com') : email; } - public static getIssFromPayload(base64jwtpayload: string): string { - return this.getPayloadFromStringToken(base64jwtpayload).iss; + public static getIssFromPayload(base64JwtPayload: string): string { + return this.getPayloadFromStringToken(base64JwtPayload).iss; } - public static getExpTimeFromPayload(base64jwtpayload: string): number { - return Number(this.getPayloadFromStringToken(base64jwtpayload).exp); + public static getExpTimeFromPayload(base64JwtPayload: string): number { + return Number(this.getPayloadFromStringToken(base64JwtPayload).exp); } - public static getAudienceFromPayload(base64jwtpayload: string): string { - return this.getPayloadFromStringToken(base64jwtpayload).aud + public static getAudienceFromPayload(base64JwtPayload: string): string { + return this.getPayloadFromStringToken(base64JwtPayload).aud; } - public static getSubFromPayload(base64jwtpayload: string): string { - return this.getPayloadFromStringToken(base64jwtpayload).sub; + public static getSubFromPayload(base64JwtPayload: string): string { + return this.getPayloadFromStringToken(base64JwtPayload).sub; + } + + public static getSubIDFromPayload(base64JwtPayload: string): string { + return this.getPayloadFromStringToken(base64JwtPayload).subid; } public static makeID(len: number): string { @@ -59,23 +64,44 @@ export class Utils { return id; } - public static getPayloadFromStringToken(base64jwtpayload: string): any { + public static getPayloadFromStringToken(base64JwtPayload: string): any { - if (base64jwtpayload === undefined) { return undefined; } + if (base64JwtPayload === undefined) { return undefined; } - base64jwtpayload = base64jwtpayload.replace(' ', ''); - base64jwtpayload = base64jwtpayload.replace('Bearer', ''); - const base64jwtpayloadtokens = base64jwtpayload.split('.'); + base64JwtPayload = base64JwtPayload.replace(' ', ''); + base64JwtPayload = base64JwtPayload.replace('Bearer', ''); + const base64JwtPayloadTokens = base64JwtPayload.split('.'); - base64jwtpayload = base64jwtpayloadtokens.length === 3 ? base64jwtpayloadtokens[1] : base64jwtpayload; + base64JwtPayload = base64JwtPayloadTokens.length === 3 ? base64JwtPayloadTokens[1] : base64JwtPayload; - const missingPadding = base64jwtpayload.length % 4; + const missingPadding = base64JwtPayload.length % 4; if (missingPadding !== 0) { - base64jwtpayload += '='.repeat(4 - missingPadding); + base64JwtPayload += '='.repeat(4 - missingPadding); } - return JSON.parse(Buffer.from(base64jwtpayload, 'base64').toString()); + return JSON.parse(Buffer.from(base64JwtPayload, 'base64').toString()); + + } + + public static encrypt(text: string, key: string) { + const iv = crypto.randomBytes(16); + const keySign = crypto.createHash('sha256').update(String(key)).digest('base64').substr(0, 32); + const cipher = crypto.createCipheriv('aes-256-cbc', Buffer.from(keySign), iv); + let encrypted = cipher.update(text); + encrypted = Buffer.concat([encrypted, cipher.final()]); + return { + encryptedText: encrypted.toString('hex'), + encryptedTextIV: iv.toString('hex') + }; + } + public static decrypt(encryptedText: string, encryptedTextIV: string, key: string) { + const keySign = crypto.createHash('sha256').update(String(key)).digest('base64').substr(0, 32); + const ivNew = Buffer.from(encryptedTextIV, 'hex'); + const decipher = crypto.createDecipheriv('aes-256-cbc', Buffer.from(keySign), ivNew); + let decrypted = decipher.update(Buffer.from(encryptedText, 'hex')); + decrypted = Buffer.concat([decrypted, decipher.final()]); + return decrypted.toString(); } } diff --git a/tests/e2e/postman_collection.json b/tests/e2e/postman_collection.json index 71a645df5976ea9cf74d750ee4142f460ea14af7..e4aa636ed44b86aa1ba0e644a6dc8ffad8035077 100644 --- a/tests/e2e/postman_collection.json +++ b/tests/e2e/postman_collection.json @@ -1,6 +1,6 @@ { "info": { - "_postman_id": "2fdb1165-b3c5-4641-b322-d7576f6662ea", + "_postman_id": "29c4591d-57e6-4a83-855f-bfbbd4a09f70", "name": "SDMS-E2E ver.xxx", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, @@ -16,8 +16,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -34,7 +33,6 @@ " pm.expect(pm.response.text()).to.include(\"service OK\");", " });", "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -61,23 +59,24 @@ " postman.setEnvironmentVariable(\"maxAmountOfRetries\", 4);\r", "}\r", "\r", - "postman.setGlobalVariable(\"retryOnFailure\", (failureCode, numberOfRetrys) => {\r", - " \r", - " var key = request.name + '_counter';\r", + "Object.prototype.retryOnFailure = function(postman, failureCode, requestName, numberOfRetrys) {\r", + " var key = requestName + '_counter';\r", " var execCounter = postman.getEnvironmentVariable(key) || 1;\r", - "\r", " var sleepDuration = 1000;\r", " var waitUntilTime = new Date().getTime() + sleepDuration;\r", - " if (responseCode.code >= failureCode && execCounter <= numberOfRetrys) {\r", + " if (execCounter <= numberOfRetrys) {\r", " while (new Date().getTime() < waitUntilTime) {\r", " // Do Nothing -> Wait\r", " }\r", - " console.log('Retrying: ' + request.name + '\\nGot: ' + responseCode.code + '\\nWaiting: ' + sleepDuration / 1000 + 'sec \\nRetry Number: ' + execCounter + ' of max ' + numberOfRetrys);\r", + " console.log('Retrying: ' + requestName + '\\nGot: ' + failureCode + '\\nWaiting: ' + sleepDuration / 1000 + 'sec \\nRetry Number: ' + execCounter + ' of max ' + numberOfRetrys);\r", " execCounter++;\r", " postman.setEnvironmentVariable(key, execCounter);\r", - " postman.setNextRequest(request.name);\r", + " postman.setNextRequest(requestName);\r", + " } else {\r", + " console.log('Max amount of retries is reached after ' + numberOfRetrys + ' attempts ');\r", + " postman.clearEnvironmentVariable(key);\r", " }\r", - "});" + "}" ], "type": "text/javascript" } @@ -121,8 +120,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -133,8 +131,6 @@ " pm.test(\"Body matches string\", function () {", " pm.expect(jsonData.status).to.eql(\"running\");", " });", - " ", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -184,8 +180,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -198,8 +193,6 @@ " pm.expect(jsonData.name).to.eql(pm.environment.get(\"tenant\"));", " pm.expect(jsonData.gcpid).to.exist;", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -244,8 +237,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -255,8 +247,6 @@ " pm.test(\"Body is correct\", function () {", " pm.response.to.have.body(\"sd://\" + pm.environment.get(\"datapartition\"));", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -314,8 +304,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404 or 403\", function () {", @@ -343,8 +332,6 @@ " }", " };", " };", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -396,8 +383,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404 or 403\", function () {", @@ -407,8 +393,6 @@ " if (pm.response.headers.get('service-provider') !== 'google') {", "\t postman.setNextRequest(\"SUBPROJECT REGISTER\");", " }", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -487,8 +471,6 @@ " pm.test(\"Status code is 400\", function () {", " pm.response.to.have.status(400);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -566,8 +548,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -586,8 +567,6 @@ " pm.expect(jsonData.storage_location).to.eql('US-CENTRAL1');", " }", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", " ", " postman.setNextRequest(\"SUBPROJECT GET NEW\");", "}" @@ -648,8 +627,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -725,8 +703,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -799,8 +776,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -879,8 +855,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -960,8 +935,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -1046,8 +1020,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -1126,8 +1099,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -1238,8 +1210,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -1391,8 +1362,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -1474,15 +1444,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -1549,8 +1516,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", @@ -1629,8 +1595,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -1689,8 +1654,6 @@ " pm.test(\"ctag\", function () {", " postman.setEnvironmentVariable(\"ctag\", jsonData.ctag);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -1746,8 +1709,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -1759,8 +1721,6 @@ " pm.test(\"sbit_count\", function () {", " pm.expect(jsonData.sbit_count).to.eql(1);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -1833,8 +1793,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -1850,8 +1809,6 @@ " pm.test(\"Data List\", function () {", " pm.expect(jsonData.length).gte(1);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -1899,8 +1856,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -1972,8 +1928,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -1994,8 +1949,6 @@ " pm.test(\"Filemetadata is added\", function () {", " pm.expect(jsonData.filemetadata).to.exist;", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2063,8 +2016,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -2074,8 +2026,6 @@ " pm.test(\"Validate ctag\", function () {", " pm.expect(pm.response.json()).eql(false);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2136,8 +2086,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -2148,8 +2097,6 @@ " pm.test(\"Body matches string\", function () {", " pm.expect(pm.response.text()).to.include(\"[false,true,false,false,true]\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2206,8 +2153,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -2217,8 +2163,6 @@ " pm.test(\"Body matches string\", function () {", " pm.expect(pm.response.text()).to.include(\"[-1,-1,-1,-1,1021]\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2275,8 +2219,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -2292,8 +2235,6 @@ " pm.test(\"Read Directories\", function () {", " pm.expect(jsonData.directories.length).to.eql(0);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2352,8 +2293,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -2367,8 +2307,6 @@ " pm.expect(jsonData.write).to.eql(true);", " pm.expect(jsonData.delete).to.eql(true);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2425,15 +2363,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2489,8 +2424,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -2506,8 +2440,6 @@ " pm.test(\"Data List\", function () {", " pm.expect(jsonData.length).gte(0);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2555,8 +2487,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -2638,15 +2569,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2702,8 +2630,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -2781,8 +2708,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -2792,8 +2718,6 @@ " pm.test(\"Body matches string\", function () {", " pm.expect(pm.response.text()).to.include(\"service OK\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2857,8 +2781,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -2900,8 +2823,6 @@ " pm.expect(jsonData.sbit).not.to.eql(null);", " postman.setEnvironmentVariable(\"sbit\", jsonData.sbit);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -2959,8 +2880,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 423 locked\", function () {", @@ -2970,8 +2890,6 @@ " pm.test(\"Read a data locked for writing\", function () {", " pm.expect(pm.response.text()).to.include('locked for write');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3036,15 +2954,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3113,8 +3028,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 423 locked\", function () {", @@ -3124,8 +3038,6 @@ " pm.test(\"Write a data already locked for writing\", function () {", " pm.expect(pm.response.text()).to.include('locked for write');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3190,8 +3102,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -3207,8 +3118,6 @@ " pm.test(\"sbit_count\", function () {", " pm.expect(jsonData.sbit_count).to.eql(1);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3277,8 +3186,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 404\", function () {", @@ -3288,8 +3196,6 @@ " pm.test(\"Close data using wrong sbit\", function () {", " pm.expect(pm.response.text()).to.include('locked with different ID');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3353,8 +3259,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -3370,8 +3275,6 @@ " pm.test(\"sbit\", function () {", " pm.expect(jsonData.sbit).to.eql(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3435,8 +3338,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -3468,8 +3370,6 @@ " pm.test(\"sbit\", function () {", " pm.expect(jsonData.sbit).to.eql(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3519,8 +3419,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -3537,8 +3436,6 @@ " pm.expect(jsonData.sbit).not.to.eql(null);", " postman.setEnvironmentVariable(\"sbit_new\", jsonData.sbit);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3603,8 +3500,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 423 locked\", function () {", @@ -3614,8 +3510,6 @@ " pm.test(\"Read a data locked for writing\", function () {", " pm.expect(pm.response.text()).to.include('locked for write');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3680,8 +3574,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 423 locked\", function () {", @@ -3691,8 +3584,6 @@ " pm.test(\"Write a data already locked for writing\", function () {", " pm.expect(pm.response.text()).to.include('locked for write');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3757,8 +3648,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -3774,8 +3664,6 @@ " pm.test(\"sbit_count\", function () {", " pm.expect(jsonData.sbit_count).to.eql(1);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3844,8 +3732,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 404\", function () {", @@ -3855,8 +3742,6 @@ " pm.test(\"Close data using wrong sbit\", function () {", " pm.expect(pm.response.text()).to.include('locked with different ID');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -3920,8 +3805,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -3937,8 +3821,6 @@ " pm.test(\"sbit\", function () {", " pm.expect(jsonData.sbit).to.eql(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4002,8 +3884,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -4035,8 +3916,6 @@ " pm.test(\"sbit\", function () {", " pm.expect(jsonData.sbit).to.eql(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4086,8 +3965,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -4101,8 +3979,6 @@ " pm.expect(jsonData.sbit).not.to.eql(null);", " postman.setEnvironmentVariable(\"sbit_new_01\", jsonData.sbit);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4171,8 +4047,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 423 locked\", function () {", @@ -4182,8 +4057,6 @@ " pm.test(\"Write a data locked for reading\", function () {", " pm.expect(pm.response.text()).to.include('locked for read');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4248,8 +4121,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -4262,8 +4134,6 @@ " pm.expect(jsonData.sbit_count).to.eql(2);", " postman.setEnvironmentVariable(\"sbit_new_02\", jsonData.sbit);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4328,8 +4198,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -4345,8 +4214,6 @@ " pm.test(\"sbit\", function () {", " pm.expect(jsonData.sbit).not.to.eql(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4410,8 +4277,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -4427,8 +4293,6 @@ " pm.test(\"sbit\", function () {", " pm.expect(jsonData.sbit).to.eql(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4492,8 +4356,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -4525,8 +4388,6 @@ " pm.test(\"sbit\", function () {", " pm.expect(jsonData.sbit).to.eql(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4576,15 +4437,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4634,8 +4492,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -4677,8 +4534,6 @@ " pm.expect(jsonData.sbit).not.to.eql(null);", " postman.setEnvironmentVariable(\"sbit\", jsonData.sbit);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4736,8 +4591,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -4753,8 +4607,6 @@ " pm.test(\"sbit\", function () {", " pm.expect(jsonData.sbit).to.eql(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4818,8 +4670,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -4831,8 +4682,6 @@ " pm.test(\"readonly\", function () {", " pm.expect(jsonData.readonly).to.eql(true);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4890,15 +4739,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -4963,8 +4809,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 400 Bad Request\", function () {", @@ -4974,8 +4819,6 @@ " pm.test(\"Read a data locked for writing\", function () {", " pm.expect(pm.response.text()).to.include('cannot be locked');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -5040,15 +4883,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -5098,8 +4938,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -5174,8 +5013,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -5185,8 +5023,6 @@ " pm.test(\"Body matches string\", function () {", " pm.expect(pm.response.text()).to.include(\"service OK\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -5254,8 +5090,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -5306,8 +5141,6 @@ " pm.test(\"Check seismicmetadata\", () => {", " pm.expect(jsonData.seismicmeta_guid).not.equal(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -5371,8 +5204,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -5442,8 +5274,6 @@ " pm.expect(jsonData.seismicmeta.data.binNodePositions[0].features[0].geometry.coordinates[0][1]).to.equal(242030.61);", " pm.expect(jsonData.seismicmeta.data.binNodePositions[0].features[0].geometry.type).to.equal(\"AnyCrsMultiPoint\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -5503,8 +5333,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -5554,8 +5383,6 @@ " pm.test(\"Check seismicmetadata\", () => {", " pm.expect(jsonData.seismicmeta_guid).not.equal(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -5638,8 +5465,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -5708,8 +5534,6 @@ " pm.expect(jsonData.seismicmeta.data.geometry.type).to.equal(\"Polygon\");", " pm.expect(jsonData.seismicmeta.meta[0].kind).to.eql(\"Unit\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -5769,15 +5593,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", " pm.expect(pm.response.code).to.be.oneOf([200,404]);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -5833,8 +5654,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -5891,8 +5711,6 @@ " var req = JSON.parse(pm.request.body.raw);", " pm.environment.set(\"dsx01_record_type\", req.seismicmeta.recordType);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -5956,15 +5774,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6041,8 +5856,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -6117,8 +5931,6 @@ " const record_type = jsonData.seismicmeta_guid.split(\":\")[1] ", " pm.expect(dsx01_record_type).to.equal(record_type)", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6178,15 +5990,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", " pm.expect(pm.response.code).to.be.oneOf([200,404]);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6242,8 +6051,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -6285,8 +6093,6 @@ " pm.expect(jsonData.sbit_count).to.eql(1);", " postman.setEnvironmentVariable(\"sbit\", jsonData.sbit);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6350,15 +6156,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6435,8 +6238,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -6477,8 +6279,6 @@ " pm.test(\"sbit_count\", function () {", " pm.expect(jsonData.sbit_count).to.eql(0);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6538,15 +6338,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", " pm.expect(pm.response.code).to.be.oneOf([200,404]);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6602,16 +6399,13 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " postman.setEnvironmentVariable(\"sbit\", pm.response.json().sbit);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6675,8 +6469,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -6688,8 +6481,6 @@ " pm.test(\"Check seismicmetadata\", () => {", " pm.expect(jsonData.seismicmeta_guid).not.equal(null);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6757,15 +6548,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", " pm.expect(pm.response.code).to.be.oneOf([200,404]);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6821,8 +6609,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -6900,8 +6687,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -6911,8 +6697,6 @@ " pm.test(\"Body matches string\", function () {", " pm.expect(pm.response.text()).to.include(\"service OK\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -6989,8 +6773,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -7013,8 +6796,6 @@ " pm.expect(jsonData.gtags[0]).to.eql(\"tag1\");", " pm.expect(jsonData.gtags[1]).to.eql(\"tag2\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7078,8 +6859,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -7095,8 +6875,6 @@ " pm.test(\"path\", function () {", " pm.expect(jsonData.path).to.eql(pm.environment.get('testPath01'));", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7152,15 +6930,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7243,15 +7018,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", " pm.expect(pm.response.code).to.be.oneOf([200, 404]);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "} " ], "type": "text/javascript" @@ -7307,8 +7079,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -7332,8 +7103,6 @@ " pm.expect(jsonData.gtags[1]).to.eql(\"tag3\");", " pm.expect(jsonData.gtags[2]).to.eql(\"tag4\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7397,8 +7166,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -7414,8 +7182,6 @@ " pm.test(\"path\", function () {", " pm.expect(jsonData.path).to.eql(pm.environment.get('testPath02'));", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7471,15 +7237,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7562,15 +7325,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", " pm.expect(pm.response.code).to.be.oneOf([200, 404]);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7626,8 +7386,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -7652,8 +7411,6 @@ " pm.expect(jsonData.gtags[2]).to.eql(\"tag4\");", " pm.expect(jsonData.gtags[3]).to.eql(\"tag5\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7717,8 +7474,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -7734,8 +7490,6 @@ " pm.test(\"path\", function () {", " pm.expect(jsonData.path).to.eql(pm.environment.get('testPath03'));", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7791,15 +7545,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7876,8 +7627,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -7893,8 +7643,6 @@ " pm.test(\"Data List\", function () {", " pm.expect(jsonData.length).to.eql(0);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -7948,8 +7696,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -7977,8 +7724,6 @@ " });", " pm.expect(data2.path).to.eql(pm.environment.get('testPath01'));", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -8032,8 +7777,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -8061,8 +7805,6 @@ " });", " pm.expect(data2.path).to.eql(pm.environment.get('testPath03'));", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -8124,8 +7866,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -8137,8 +7878,6 @@ " pm.test(\"Check content type\", function () {", " pm.response.to.be.header(\"Content-Type\", \"application/json; charset=utf-8\");", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -8250,8 +7989,6 @@ " pm.expect(jsonData.gtags[2]).to.eql('tag4');", " pm.expect(jsonData.gtags[3]).to.eql('tag1');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -8307,8 +8044,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -8331,8 +8067,6 @@ " });", " pm.expect(data1.path).to.eql(pm.environment.get('testPath02'));", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -8386,8 +8120,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -8401,8 +8134,6 @@ " pm.expect(jsonData.gtags[1]).to.eql('tag3');", " pm.expect(jsonData.gtags[2]).to.eql('tag4');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -8466,8 +8197,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -8479,8 +8209,6 @@ " pm.test(\"Tagged Data List\", function () {", " pm.expect(jsonData.length).gte(0);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -8534,8 +8262,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -8555,8 +8282,6 @@ " pm.expect(data1.path).to.eql(pm.environment.get('testPath03'));", " pm.expect(data1.gtags[2]).to.eql('tag4');", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -8614,15 +8339,12 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", " pm.expect(pm.response.code).to.be.oneOf([200]);", " });", - "", - " postman.setEnvironmentVariable('execCounter', 1)", "}" ], "type": "text/javascript" @@ -8678,8 +8400,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -8742,8 +8463,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -8806,8 +8526,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -8887,8 +8606,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -8971,8 +8689,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -9093,8 +8810,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -9178,8 +8894,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -9263,8 +8978,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -9344,8 +9058,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 201\", function () {", @@ -9454,8 +9167,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -9521,8 +9233,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -9623,8 +9334,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -9687,8 +9397,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -9799,8 +9508,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -9871,8 +9579,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -9957,8 +9664,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 202\", function () {", @@ -10020,8 +9726,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -10092,8 +9797,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -10156,8 +9860,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -10220,8 +9923,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", @@ -10284,8 +9986,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -10367,8 +10068,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -10439,8 +10139,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -10501,8 +10200,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -10570,8 +10268,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -10648,8 +10345,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -10708,8 +10404,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -10788,8 +10483,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -10851,8 +10545,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -10924,8 +10617,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -10987,8 +10679,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code should be 400\", function () {", @@ -11050,8 +10741,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -11143,8 +10833,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -11234,8 +10923,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", @@ -11298,8 +10986,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", @@ -11441,8 +11128,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -11558,8 +11244,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -11643,8 +11328,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -11709,8 +11393,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -11826,8 +11509,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -11911,8 +11593,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -11981,8 +11662,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 400\", function () {", @@ -12043,8 +11723,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", @@ -12107,8 +11786,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", @@ -12171,8 +11849,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -12249,8 +11926,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -12335,8 +12011,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -12434,8 +12109,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -12561,8 +12235,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -12647,8 +12320,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -12729,8 +12401,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -12817,8 +12488,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 201\", function () {", @@ -12886,8 +12556,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 202\", function () {", @@ -12949,8 +12618,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -13066,8 +12734,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -13167,8 +12834,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -13234,8 +12900,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -13294,8 +12959,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -13358,8 +13022,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -13422,8 +13085,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -13507,8 +13169,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -13587,8 +13248,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -13719,8 +13379,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -13841,8 +13500,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -13932,8 +13590,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " var jsonData = pm.response.json();", @@ -14018,8 +13675,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -14082,8 +13738,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -14146,8 +13801,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -14222,8 +13876,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200 or 404\", function () {", @@ -14282,8 +13935,7 @@ "script": { "exec": [ "if (responseCode.code >= 500) {", - " retry = eval(pm.globals.get(\"retryOnFailure\"));", - " retry();", + " _.retryOnFailure(postman, pm.response.code, request.name, pm.environment.get(\"maxAmountOfRetries\"));", "", "} else {", " pm.test(\"Status code is 200\", function () {", @@ -14298,8 +13950,6 @@ " pm.environment.unset('subproject');", " pm.environment.unset('appAdminEmail');", " pm.environment.unset('maxAmountOfRetries');", - " pm.environment.unset('execCounter');", - " pm.globals.unset(\"retryOnFailure\");", "}" ], "type": "text/javascript" diff --git a/tests/utest/auth/auth.ts b/tests/utest/auth/auth.ts index 0fb6502a16f9f54c99b723e67159721a3edfd55d..420ab341968faa1cc25f1fd4fa40497a089b43df 100644 --- a/tests/utest/auth/auth.ts +++ b/tests/utest/auth/auth.ts @@ -77,33 +77,33 @@ export class TestAuth { this.sandbox.stub(DESEntitlement, 'getUserGroups').resolves([{ name: 'none' }] as never); this.sandbox.stub(Auth, 'isNewImpersonationToken').returns(false); try { - await Auth.isWriteAuthorized(this.userToken, [], tenant, 's', 'appkey'); + await Auth.isWriteAuthorized(this.userToken, [], tenant, 's', 'appkey', undefined); } catch (e) { Tx.check403(e.error.code, done); } }); Tx.test(async (done: any) => { this.sandbox.stub(ImpTokenDAO, 'getImpTokenBody').returns( { resources: [{ resource: 't/s', readonly: false }] } as ImpTokenBodyModel); - Tx.checkTrue(await Auth.isWriteAuthorized(this.impToken, [], tenant, 's', 'appkey'), done); + Tx.checkTrue(await Auth.isWriteAuthorized(this.impToken, [], tenant, 's', 'appkey', undefined), done); }); Tx.test(async (done: any) => { this.sandbox.stub(ImpTokenDAO, 'getImpTokenBody').returns({ resources: [] } as ImpTokenBodyModel); - Tx.checkFalse(await Auth.isWriteAuthorized(this.impToken, [], tenant, 's', 'appkey', false), done); + Tx.checkFalse(await Auth.isWriteAuthorized(this.impToken, [], tenant, 's', 'appkey', undefined, false), done); }); Tx.test(async (done: any) => { this.sandbox.stub(ImpTokenDAO, 'getImpTokenBody').returns( { resources: [{ resource: 't/s', readonly: true }] } as ImpTokenBodyModel); try { - await Auth.isWriteAuthorized(this.impToken, [], tenant, 's', 'appkey'); + await Auth.isWriteAuthorized(this.impToken, [], tenant, 's', 'appkey', undefined); } catch (e) { Tx.check403(e.error.code, done); } }); Tx.test(async (done: any) => { this.sandbox.stub(ImpTokenDAO, 'getImpTokenBody').returns({ resources: [] } as ImpTokenBodyModel); try { - await Auth.isWriteAuthorized(this.impToken, [], tenant, 's', 'appkey'); + await Auth.isWriteAuthorized(this.impToken, [], tenant, 's', 'appkey', undefined); } catch (e) { Tx.check403(e.error.code, done); } }); @@ -121,20 +121,20 @@ export class TestAuth { this.sandbox.stub(DESEntitlement, 'getUserGroups').resolves([{ name: 'none' }] as never); this.sandbox.stub(Auth, 'isNewImpersonationToken').returns(false); try { - await Auth.isReadAuthorized(this.userToken, [], tenant, 's', 'appkey'); + await Auth.isReadAuthorized(this.userToken, [], tenant, 's', 'appkey', undefined); } catch (e) { Tx.check403(e.error.code, done); } }); Tx.test(async (done: any) => { this.sandbox.stub(ImpTokenDAO, 'getImpTokenBody').returns( { resources: [{ resource: 't/s', readonly: false }] } as ImpTokenBodyModel); - Tx.checkTrue(await Auth.isReadAuthorized(this.impToken, [], tenant, 's', 'appkey'), done); + Tx.checkTrue(await Auth.isReadAuthorized(this.impToken, [], tenant, 's', 'appkey', undefined), done); }); Tx.test(async (done: any) => { this.sandbox.stub(ImpTokenDAO, 'getImpTokenBody').returns({ resources: [] } as ImpTokenBodyModel); try { - await Auth.isReadAuthorized(this.impToken, [], tenant, 's', 'appkey'); + await Auth.isReadAuthorized(this.impToken, [], tenant, 's', 'appkey', undefined); } catch (e) { Tx.check403(e.error.code, done); } }); diff --git a/tests/utest/cloud/azure/keyvault.ts b/tests/utest/cloud/azure/keyvault.ts index 12745b9bf0dcc3e581129037adf4ff7b4cd95262..bbeac24df163b6598dbbdc60a2432ada8a065499 100644 --- a/tests/utest/cloud/azure/keyvault.ts +++ b/tests/utest/cloud/azure/keyvault.ts @@ -11,6 +11,7 @@ const mockRedisKey = 'mockRedisKey'; const mockRedisHost= 'mockRedisHost'; const mockSpTenantID = 'mockSpTenantID'; const mockSpClientID = 'mockSpClientID'; +// pragma: allowlist nextline secret const mockSpClientSecret = 'mockSpClientSecret'; const mockSpAppSourceID = 'mockSpAppSourceID'; const mockSauthProvider = 'mockSauthProvider'; diff --git a/tests/utest/dao/dataset.ts b/tests/utest/dao/dataset.ts index 3589606b7fcf0a2249e2fa8b13a08bba60a4270e..aac8898616db40bb4fac71e1c77f787b7f579ebb 100644 --- a/tests/utest/dao/dataset.ts +++ b/tests/utest/dao/dataset.ts @@ -14,13 +14,12 @@ // limitations under the License. // ============================================================================ -import sinon from 'sinon'; - import { Datastore } from '@google-cloud/datastore'; import { Entity } from '@google-cloud/datastore/build/src/entity'; import { RunQueryResponse } from '@google-cloud/datastore/build/src/query'; -import { google } from '../../../src/cloud/providers'; +import sinon from 'sinon'; import { Config } from '../../../src/cloud'; +import { google } from '../../../src/cloud/providers'; import { RecordLatency } from '../../../src/metrics'; import { DatasetModel } from '../../../src/services/dataset'; import { DatasetDAO } from '../../../src/services/dataset/dao'; @@ -28,6 +27,7 @@ import { Locker } from '../../../src/services/dataset/locker'; import { IPaginationModel } from '../../../src/services/dataset/model'; import { Tx } from '../utils'; + export class TestDataset { private static dataset: DatasetModel; @@ -82,13 +82,13 @@ export class TestDataset { Tx.test(async (done: any) => { this.journal.save.resolves({} as never); - await DatasetDAO.register(this.journal, { key: {'key': 'dataset_key'}, data: TestDataset.dataset }); + await DatasetDAO.register(this.journal, { key: { 'key': 'dataset_key' }, data: TestDataset.dataset }); done(); }); Tx.test(async (done: any) => { this.journal.save.resolves(); - await DatasetDAO.register(this.journal, { key: {'key': 'dataset_key'}, data: TestDataset.dataset }); + await DatasetDAO.register(this.journal, { key: { 'key': 'dataset_key' }, data: TestDataset.dataset }); done(); }); } @@ -186,7 +186,7 @@ export class TestDataset { this.journal.runQuery.resolves([expectedResult, undefined]); this.sandbox.stub(DatasetDAO, 'fixOldModel').resolves(expectedResult[0]); - const result = await DatasetDAO.list(this.journal, this.dataset); + const result = await DatasetDAO.list(this.journal, this.dataset, null); Tx.checkTrue( this.journal.runQuery.calledWith(query) && result[0] === expectedResult[0], @@ -231,7 +231,7 @@ export class TestDataset { this.journal.runQuery.resolves([expectedResult, undefined]); this.sandbox.stub(DatasetDAO, 'fixOldModel').resolves(expectedResult[0]); - const result = await DatasetDAO.list(this.journal, this.dataset); + const result = await DatasetDAO.list(this.journal, this.dataset, null); Tx.checkTrue( this.journal.runQuery.calledWith(query) && result[0] === expectedResult[0], @@ -274,7 +274,7 @@ export class TestDataset { this.journal.getQueryFilterSymbolContains.returns('='); this.sandbox.stub(DatasetDAO, 'fixOldModel').resolves(expectedResult[0]); - const result = await DatasetDAO.list(this.journal, this.dataset); + const result = await DatasetDAO.list(this.journal, this.dataset, null); Tx.checkTrue( this.journal.runQuery.calledWith(query) && result[0] === expectedResult[0], @@ -320,7 +320,7 @@ export class TestDataset { this.journal.getQueryFilterSymbolContains.returns('='); this.sandbox.stub(DatasetDAO, 'fixOldModel').resolves(expectedResult[0]); - const result = await DatasetDAO.list(this.journal, this.dataset); + const result = await DatasetDAO.list(this.journal, this.dataset, null); Tx.checkTrue( this.journal.runQuery.calledWith(query) && result[0] === expectedResult[0], @@ -329,7 +329,7 @@ export class TestDataset { }); Tx.test(async (done: any) => { - Config.CLOUDPROVIDER='azure' + Config.CLOUDPROVIDER = 'azure'; this.dataset.gtags = ['tagA', 'tagB']; const expectedResult = [ { @@ -367,7 +367,7 @@ export class TestDataset { this.journal.getQueryFilterSymbolContains.returns('CONTAINS'); this.sandbox.stub(DatasetDAO, 'fixOldModel').resolves(expectedResult[0]); - const result = await DatasetDAO.list(this.journal, this.dataset); + const result = await DatasetDAO.list(this.journal, this.dataset, null); Tx.checkTrue( this.journal.runQuery.calledWith(query) && result[0] === expectedResult[0], diff --git a/tests/utest/services/dataset.ts b/tests/utest/services/dataset.ts index 16348bb767b207f5af1ec43c040b437aa2fdf3f1..afc7d14033305310d4b7a4e6ba183c6c31dfe0ef 100644 --- a/tests/utest/services/dataset.ts +++ b/tests/utest/services/dataset.ts @@ -444,7 +444,7 @@ export class TestDatasetSVC { Tx.testExp(async (done: any, expReq: expRequest, expRes: expResponse) => { this.sandbox.stub(TenantDAO, 'get').resolves({} as any); this.sandbox.stub(Auth, 'isReadAuthorized').resolves(undefined); - this.sandbox.stub(DatasetDAO, 'list').resolves([{}] as DatasetModel[]); + this.sandbox.stub(DatasetDAO, 'list').resolves({ datasets: [{} as DatasetModel], nextPageCursor: null }); this.sandbox.stub(Auth, 'isLegalTagValid').resolves(true); this.sandbox.stub(SubProjectDAO, 'get').resolves(this.testSubProject); this.sandbox.stub(DESUtils, 'getDataPartitionID').returns('datapartition'); @@ -1039,7 +1039,7 @@ export class TestDatasetSVC { this.journal.runQuery.resolves([[{}], {}] as never); this.sandbox.stub(DatasetDAO, 'fixOldModel').resolves(); this.sandbox.stub(SubProjectDAO, 'get').resolves(this.testSubProject); - await DatasetDAO.list(this.journal, this.dataset); + await DatasetDAO.list(this.journal, this.dataset, null); done(); }); }