├── web ├── public │ ├── sample-pass.png │ ├── wallet-button.png │ ├── style.css │ └── index.html ├── package.json ├── app.js └── package-lock.json ├── web_complete ├── public │ ├── sample-pass.png │ ├── wallet-button.png │ ├── style.css │ └── index.html ├── package.json ├── app.js └── package-lock.json ├── .github └── ISSUE_TEMPLATE │ └── bug_report.md ├── CONTRIBUTING.md ├── README.md ├── .gitignore └── LICENSE /web/public/sample-pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-wallet/web-codelab/HEAD/web/public/sample-pass.png -------------------------------------------------------------------------------- /web/public/wallet-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-wallet/web-codelab/HEAD/web/public/wallet-button.png -------------------------------------------------------------------------------- /web_complete/public/sample-pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-wallet/web-codelab/HEAD/web_complete/public/sample-pass.png -------------------------------------------------------------------------------- /web_complete/public/wallet-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-wallet/web-codelab/HEAD/web_complete/public/wallet-button.png -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "body-parser": "^1.19.0", 4 | "express": "^4.17.1", 5 | "google-auth-library": ">=5.9.2", 6 | "jsonwebtoken": ">=8.5.1" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /web_complete/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "body-parser": "^1.19.0", 4 | "express": "^4.17.1", 5 | "google-auth-library": ">=5.9.2", 6 | "jsonwebtoken": ">=8.5.1" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /web/public/style.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | body { 18 | font-family: 'Product Sans'; 19 | color: #444; 20 | text-align: center; 21 | font-size: 120%; 22 | } 23 | 24 | #content { 25 | margin: 60px auto; 26 | text-align: left; 27 | width: 800px; 28 | } 29 | 30 | #pass { 31 | float: left; width: 300px; 32 | } 33 | 34 | #form { 35 | margin: 50px 30px; 36 | float: left; 37 | } 38 | 39 | #button img { 40 | width: 300px; 41 | margin-top: 25px; 42 | } -------------------------------------------------------------------------------- /web_complete/public/style.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | body { 18 | font-family: 'Product Sans'; 19 | color: #444; 20 | text-align: center; 21 | font-size: 120%; 22 | } 23 | 24 | #content { 25 | margin: 60px auto; 26 | text-align: left; 27 | width: 800px; 28 | } 29 | 30 | #pass { 31 | float: left; width: 300px; 32 | } 33 | 34 | #form { 35 | margin: 50px 30px; 36 | float: left; 37 | } 38 | 39 | #button img { 40 | width: 300px; 41 | margin-top: 25px; 42 | } -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | We'd love to accept your patches and contributions to this project. There are 4 | just a few small guidelines you need to follow. 5 | 6 | ## Contributor License Agreement 7 | 8 | Contributions to this project must be accompanied by a Contributor License 9 | Agreement (CLA). You (or your employer) retain the copyright to your 10 | contribution; this simply gives us permission to use and redistribute your 11 | contributions as part of the project. Head over to 12 | to see your current agreements on file or 13 | to sign a new one. 14 | 15 | You generally only need to submit a CLA once, so if you've already submitted one 16 | (even if it was for a different project), you probably don't need to do it 17 | again. 18 | 19 | ## Code reviews 20 | 21 | All submissions, including submissions by project members, require review. We 22 | use GitHub pull requests for this purpose. Consult 23 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 24 | information on using pull requests. 25 | 26 | ## Community Guidelines 27 | 28 | This project follows 29 | [Google's Open Source Community Guidelines](https://opensource.google/conduct/). 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Google Wallet Codelab 2 | 3 | ## Overview 4 | 5 | This project contains sample code used for the [Google Wallet codelab for Web](https://codelabs.developers.google.com/add-to-wallet-web). This codelab demonstrates how to perform the following tasks: 6 | 7 | This repository contains the resources used in the 8 | [Create passes on Android using the Google Wallet API](https://codelabs.developers.google.com/add-to-wallet-android) 9 | codelab. This codelab demonstrates how to perform the following tasks: 10 | 11 | 1. Create a new issuer account in development mode 12 | 1. Create a service account for issuing passes 13 | 1. Create a new Generic pass class 14 | 1. Create a new pass object 15 | 1. Create an "Add to Google Wallet" button to save a pass 16 | 1. Display the button in your Web application 17 | 18 | ## Code Files 19 | 20 | | Directory | Description | 21 | |------------------------------------------|----------------------------------------------| 22 | | [web/](./web/) | The sample app that you will customize | 23 | | [web_complete/](./web_complete/) | The same sample app with all steps completed | 24 | 25 | ## Support 26 | 27 | For any questions or issues, please submit an issue on this repository. -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Operating system 2 | .DS_Store 3 | 4 | # Logs 5 | logs 6 | log 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | firebase-debug.log* 12 | 13 | # Firebase cache 14 | .firebase/ 15 | 16 | # Firebase config 17 | 18 | # Uncomment this if you'd like others to create their own Firebase project. 19 | # For a team working on the same Firebase project(s), it is recommended to leave 20 | # it commented so all members can deploy to the same project(s) in .firebaserc. 21 | .firebaserc 22 | 23 | # Runtime data 24 | pids 25 | *.pid 26 | *.seed 27 | *.pid.lock 28 | 29 | # Directory for instrumented libs generated by jscoverage/JSCover 30 | lib-cov 31 | 32 | # Coverage directory used by tools like istanbul 33 | coverage 34 | 35 | # nyc test coverage 36 | .nyc_output 37 | 38 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 39 | .grunt 40 | 41 | # Bower dependency directory (https://bower.io/) 42 | bower_components 43 | 44 | # node-waf configuration 45 | .lock-wscript 46 | 47 | # Compiled binary addons (http://nodejs.org/api/addons.html) 48 | build/Release 49 | 50 | # Dependency directories 51 | node_modules/ 52 | 53 | # Optional npm cache directory 54 | .npm 55 | 56 | # Optional eslint cache 57 | .eslintcache 58 | 59 | # Optional REPL history 60 | .node_repl_history 61 | 62 | # Output of 'npm pack' 63 | *.tgz 64 | 65 | # Yarn Integrity file 66 | .yarn-integrity 67 | 68 | # dotenv environment variables file 69 | .env 70 | 71 | # Certificates 72 | *.pem 73 | 74 | demo/config.json 75 | -------------------------------------------------------------------------------- /web/public/index.html: -------------------------------------------------------------------------------- 1 | 19 | 20 | Google Wallet Codelab 21 | 22 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
48 | 49 |
50 |

Enter your email address to generate a new pass:

51 | 52 | 53 |
54 |
55 |
56 | 57 | 58 | -------------------------------------------------------------------------------- /web_complete/public/index.html: -------------------------------------------------------------------------------- 1 | 19 | 20 | Google Wallet Codelab 21 | 22 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
48 | 49 |
50 |

Enter your email address to generate a new pass:

51 | 52 | 53 |
54 |
55 |
56 | 57 | 58 | -------------------------------------------------------------------------------- /web/app.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | const express = require('express'); 18 | const bodyParser = require('body-parser'); 19 | const { GoogleAuth } = require('google-auth-library'); 20 | const jwt = require('jsonwebtoken'); 21 | 22 | // TODO: Define Issuer ID 23 | const issuerId = 'ISSUER_ID'; 24 | 25 | // TODO: Define Class ID 26 | const classId = `${issuerId}.codelab_class`; 27 | 28 | const baseUrl = 'https://walletobjects.googleapis.com/walletobjects/v1'; 29 | 30 | const credentials = require(process.env.GOOGLE_APPLICATION_CREDENTIALS); 31 | 32 | const httpClient = new GoogleAuth({ 33 | credentials: credentials, 34 | scopes: 'https://www.googleapis.com/auth/wallet_object.issuer' 35 | }); 36 | 37 | /** 38 | * Creates a sample pass class based on the template defined below. 39 | * 40 | * This class contains multiple editable fields that showcase how to 41 | * customize your class. 42 | * 43 | * @param res A representation of the HTTP result in Express. 44 | */ 45 | async function createPassClass(res) { 46 | // TODO: Create a Generic pass class 47 | } 48 | 49 | /** 50 | * Creates a sample pass object based on a given class. 51 | * 52 | * @param req A representation of the HTTP request in Express. 53 | * @param res A representation of the HTTP result in Express. 54 | * @param classId The identifier of the parent class used to create the object. 55 | */ 56 | async function createPassObject(req, res, classId) { 57 | // TODO: Create a new Generic pass for the user 58 | } 59 | 60 | const app = express(); 61 | 62 | app.use(bodyParser.urlencoded({extended: true})); 63 | app.use(express.static('public')); 64 | app.post('/', async (req, res) => { 65 | await createPassClass(res); 66 | await createPassObject(req, res, classId); 67 | }); 68 | app.listen(3000); -------------------------------------------------------------------------------- /web_complete/app.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Google Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | const express = require('express'); 18 | const bodyParser = require('body-parser'); 19 | const { GoogleAuth } = require('google-auth-library'); 20 | const jwt = require('jsonwebtoken'); 21 | 22 | // TODO: Define Issuer ID 23 | const issuerId = 'ISSUER_ID'; 24 | 25 | // TODO: Define Class ID 26 | const classId = `${issuerId}.codelab_class`; 27 | 28 | const baseUrl = 'https://walletobjects.googleapis.com/walletobjects/v1'; 29 | 30 | const credentials = require(process.env.GOOGLE_APPLICATION_CREDENTIALS); 31 | 32 | const httpClient = new GoogleAuth({ 33 | credentials: credentials, 34 | scopes: 'https://www.googleapis.com/auth/wallet_object.issuer' 35 | }); 36 | 37 | /** 38 | * Creates a sample pass class based on the template defined below. 39 | * 40 | * This class contains multiple editable fields that showcase how to 41 | * customize your class. 42 | * 43 | * @param res A representation of the HTTP result in Express. 44 | */ 45 | async function createPassClass(res) { 46 | // TODO: Create a Generic pass class 47 | let genericClass = { 48 | 'id': `${classId}`, 49 | 'classTemplateInfo': { 50 | 'cardTemplateOverride': { 51 | 'cardRowTemplateInfos': [ 52 | { 53 | 'twoItems': { 54 | 'startItem': { 55 | 'firstValue': { 56 | 'fields': [ 57 | { 58 | 'fieldPath': 'object.textModulesData["points"]' 59 | } 60 | ] 61 | } 62 | }, 63 | 'endItem': { 64 | 'firstValue': { 65 | 'fields': [ 66 | { 67 | 'fieldPath': 'object.textModulesData["contacts"]' 68 | } 69 | ] 70 | } 71 | } 72 | } 73 | } 74 | ] 75 | }, 76 | 'detailsTemplateOverride': { 77 | 'detailsItemInfos': [ 78 | { 79 | 'item': { 80 | 'firstValue': { 81 | 'fields': [ 82 | { 83 | 'fieldPath': 'class.imageModulesData["event_banner"]' 84 | } 85 | ] 86 | } 87 | } 88 | }, 89 | { 90 | 'item': { 91 | 'firstValue': { 92 | 'fields': [ 93 | { 94 | 'fieldPath': 'class.textModulesData["game_overview"]' 95 | } 96 | ] 97 | } 98 | } 99 | }, 100 | { 101 | 'item': { 102 | 'firstValue': { 103 | 'fields': [ 104 | { 105 | 'fieldPath': 'class.linksModuleData.uris["official_site"]' 106 | } 107 | ] 108 | } 109 | } 110 | } 111 | ] 112 | } 113 | }, 114 | 'imageModulesData': [ 115 | { 116 | 'mainImage': { 117 | 'sourceUri': { 118 | 'uri': 'https://storage.googleapis.com/wallet-lab-tools-codelab-artifacts-public/google-io-2021-card.png' 119 | }, 120 | 'contentDescription': { 121 | 'defaultValue': { 122 | 'language': 'en-US', 123 | 'value': 'Google I/O 2022 Banner' 124 | } 125 | } 126 | }, 127 | 'id': 'event_banner' 128 | } 129 | ], 130 | 'textModulesData': [ 131 | { 132 | 'header': 'Gather points meeting new people at Google I/O', 133 | 'body': 'Join the game and accumulate points in this badge by meeting other attendees in the event.', 134 | 'id': 'game_overview' 135 | } 136 | ], 137 | 'linksModuleData': { 138 | 'uris': [ 139 | { 140 | 'uri': 'https://io.google/2022/', 141 | 'description': 'Official I/O \'22 Site', 142 | 'id': 'official_site' 143 | } 144 | ] 145 | } 146 | }; 147 | 148 | let response; 149 | try { 150 | // Check if the class exists already 151 | response = await httpClient.request({ 152 | url: `${baseUrl}/genericClass/${classId}`, 153 | method: 'GET' 154 | }); 155 | 156 | console.log('Class already exists'); 157 | console.log(response); 158 | } catch (err) { 159 | if (err.response && err.response.status === 404) { 160 | // Class does not exist 161 | // Create it now 162 | response = await httpClient.request({ 163 | url: `${baseUrl}/genericClass`, 164 | method: 'POST', 165 | data: genericClass 166 | }); 167 | 168 | console.log('Class insert response'); 169 | console.log(response); 170 | } else { 171 | // Something else went wrong 172 | console.log(err); 173 | res.send('Something went wrong...check the console logs!'); 174 | } 175 | } 176 | } 177 | 178 | /** 179 | * Creates a sample pass object based on a given class. 180 | * 181 | * @param req A representation of the HTTP request in Express. 182 | * @param res A representation of the HTTP result in Express. 183 | * @param classId The identifier of the parent class used to create the object. 184 | */ 185 | async function createPassObject(req, res, classId) { 186 | // TODO: Create a new Generic pass for the user 187 | let objectSuffix = `${req.body.email.replace(/[^\w.-]/g, '_')}`; 188 | let objectId = `${issuerId}.${objectSuffix}`; 189 | 190 | let genericObject = { 191 | 'id': `${objectId}`, 192 | 'classId': classId, 193 | 'genericType': 'GENERIC_TYPE_UNSPECIFIED', 194 | 'hexBackgroundColor': '#4285f4', 195 | 'logo': { 196 | 'sourceUri': { 197 | 'uri': 'https://storage.googleapis.com/wallet-lab-tools-codelab-artifacts-public/pass_google_logo.jpg' 198 | } 199 | }, 200 | 'cardTitle': { 201 | 'defaultValue': { 202 | 'language': 'en', 203 | 'value': 'Google I/O \'22' 204 | } 205 | }, 206 | 'subheader': { 207 | 'defaultValue': { 208 | 'language': 'en', 209 | 'value': 'Attendee' 210 | } 211 | }, 212 | 'header': { 213 | 'defaultValue': { 214 | 'language': 'en', 215 | 'value': 'Alex McJacobs' 216 | } 217 | }, 218 | 'barcode': { 219 | 'type': 'QR_CODE', 220 | 'value': `${objectId}` 221 | }, 222 | 'heroImage': { 223 | 'sourceUri': { 224 | 'uri': 'https://storage.googleapis.com/wallet-lab-tools-codelab-artifacts-public/google-io-hero-demo-only.jpg' 225 | } 226 | }, 227 | 'textModulesData': [ 228 | { 229 | 'header': 'POINTS', 230 | 'body': '1234', 231 | 'id': 'points' 232 | }, 233 | { 234 | 'header': 'CONTACTS', 235 | 'body': '20', 236 | 'id': 'contacts' 237 | } 238 | ] 239 | }; 240 | 241 | // TODO: Create the signed JWT and link 242 | const claims = { 243 | iss: credentials.client_email, 244 | aud: 'google', 245 | origins: [], 246 | typ: 'savetowallet', 247 | payload: { 248 | genericObjects: [ 249 | genericObject 250 | ] 251 | } 252 | }; 253 | 254 | const token = jwt.sign(claims, credentials.private_key, { algorithm: 'RS256' }); 255 | const saveUrl = `https://pay.google.com/gp/v/save/${token}`; 256 | 257 | res.send(``); 258 | } 259 | 260 | // Start Express application and populate routes 261 | const app = express(); 262 | 263 | app.use(bodyParser.urlencoded({extended: true})); 264 | app.use(express.static('public')); 265 | app.post('/', async (req, res) => { 266 | await createPassClass(res); 267 | await createPassObject(req, res, classId); 268 | }); 269 | app.listen(3000); -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /web/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wallet-web-codelab", 3 | "lockfileVersion": 2, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "body-parser": "^1.19.0", 9 | "express": "^4.17.1", 10 | "google-auth-library": ">=5.9.2", 11 | "jsonwebtoken": ">=8.5.1" 12 | } 13 | }, 14 | "node_modules/abort-controller": { 15 | "version": "3.0.0", 16 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 17 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 18 | "dependencies": { 19 | "event-target-shim": "^5.0.0" 20 | }, 21 | "engines": { 22 | "node": ">=6.5" 23 | } 24 | }, 25 | "node_modules/accepts": { 26 | "version": "1.3.8", 27 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 28 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 29 | "dependencies": { 30 | "mime-types": "~2.1.34", 31 | "negotiator": "0.6.3" 32 | }, 33 | "engines": { 34 | "node": ">= 0.6" 35 | } 36 | }, 37 | "node_modules/agent-base": { 38 | "version": "6.0.2", 39 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 40 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 41 | "dependencies": { 42 | "debug": "4" 43 | }, 44 | "engines": { 45 | "node": ">= 6.0.0" 46 | } 47 | }, 48 | "node_modules/agent-base/node_modules/debug": { 49 | "version": "4.3.4", 50 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 51 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 52 | "dependencies": { 53 | "ms": "2.1.2" 54 | }, 55 | "engines": { 56 | "node": ">=6.0" 57 | }, 58 | "peerDependenciesMeta": { 59 | "supports-color": { 60 | "optional": true 61 | } 62 | } 63 | }, 64 | "node_modules/agent-base/node_modules/ms": { 65 | "version": "2.1.2", 66 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 67 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 68 | }, 69 | "node_modules/array-flatten": { 70 | "version": "1.1.1", 71 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 72 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 73 | }, 74 | "node_modules/arrify": { 75 | "version": "2.0.1", 76 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 77 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", 78 | "engines": { 79 | "node": ">=8" 80 | } 81 | }, 82 | "node_modules/base64-js": { 83 | "version": "1.5.1", 84 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 85 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 86 | "funding": [ 87 | { 88 | "type": "github", 89 | "url": "https://github.com/sponsors/feross" 90 | }, 91 | { 92 | "type": "patreon", 93 | "url": "https://www.patreon.com/feross" 94 | }, 95 | { 96 | "type": "consulting", 97 | "url": "https://feross.org/support" 98 | } 99 | ] 100 | }, 101 | "node_modules/bignumber.js": { 102 | "version": "9.0.2", 103 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", 104 | "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", 105 | "engines": { 106 | "node": "*" 107 | } 108 | }, 109 | "node_modules/body-parser": { 110 | "version": "1.19.2", 111 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", 112 | "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", 113 | "dependencies": { 114 | "bytes": "3.1.2", 115 | "content-type": "~1.0.4", 116 | "debug": "2.6.9", 117 | "depd": "~1.1.2", 118 | "http-errors": "1.8.1", 119 | "iconv-lite": "0.4.24", 120 | "on-finished": "~2.3.0", 121 | "qs": "6.9.7", 122 | "raw-body": "2.4.3", 123 | "type-is": "~1.6.18" 124 | }, 125 | "engines": { 126 | "node": ">= 0.8" 127 | } 128 | }, 129 | "node_modules/buffer-equal-constant-time": { 130 | "version": "1.0.1", 131 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 132 | "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" 133 | }, 134 | "node_modules/bytes": { 135 | "version": "3.1.2", 136 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 137 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", 138 | "engines": { 139 | "node": ">= 0.8" 140 | } 141 | }, 142 | "node_modules/content-disposition": { 143 | "version": "0.5.4", 144 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 145 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 146 | "dependencies": { 147 | "safe-buffer": "5.2.1" 148 | }, 149 | "engines": { 150 | "node": ">= 0.6" 151 | } 152 | }, 153 | "node_modules/content-type": { 154 | "version": "1.0.4", 155 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 156 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 157 | "engines": { 158 | "node": ">= 0.6" 159 | } 160 | }, 161 | "node_modules/cookie": { 162 | "version": "0.4.2", 163 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", 164 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", 165 | "engines": { 166 | "node": ">= 0.6" 167 | } 168 | }, 169 | "node_modules/cookie-signature": { 170 | "version": "1.0.6", 171 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 172 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 173 | }, 174 | "node_modules/debug": { 175 | "version": "2.6.9", 176 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 177 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 178 | "dependencies": { 179 | "ms": "2.0.0" 180 | } 181 | }, 182 | "node_modules/depd": { 183 | "version": "1.1.2", 184 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 185 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", 186 | "engines": { 187 | "node": ">= 0.6" 188 | } 189 | }, 190 | "node_modules/destroy": { 191 | "version": "1.0.4", 192 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 193 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 194 | }, 195 | "node_modules/ecdsa-sig-formatter": { 196 | "version": "1.0.11", 197 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 198 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 199 | "dependencies": { 200 | "safe-buffer": "^5.0.1" 201 | } 202 | }, 203 | "node_modules/ee-first": { 204 | "version": "1.1.1", 205 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 206 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 207 | }, 208 | "node_modules/encodeurl": { 209 | "version": "1.0.2", 210 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 211 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", 212 | "engines": { 213 | "node": ">= 0.8" 214 | } 215 | }, 216 | "node_modules/escape-html": { 217 | "version": "1.0.3", 218 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 219 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 220 | }, 221 | "node_modules/etag": { 222 | "version": "1.8.1", 223 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 224 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", 225 | "engines": { 226 | "node": ">= 0.6" 227 | } 228 | }, 229 | "node_modules/event-target-shim": { 230 | "version": "5.0.1", 231 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 232 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", 233 | "engines": { 234 | "node": ">=6" 235 | } 236 | }, 237 | "node_modules/express": { 238 | "version": "4.17.3", 239 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", 240 | "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", 241 | "dependencies": { 242 | "accepts": "~1.3.8", 243 | "array-flatten": "1.1.1", 244 | "body-parser": "1.19.2", 245 | "content-disposition": "0.5.4", 246 | "content-type": "~1.0.4", 247 | "cookie": "0.4.2", 248 | "cookie-signature": "1.0.6", 249 | "debug": "2.6.9", 250 | "depd": "~1.1.2", 251 | "encodeurl": "~1.0.2", 252 | "escape-html": "~1.0.3", 253 | "etag": "~1.8.1", 254 | "finalhandler": "~1.1.2", 255 | "fresh": "0.5.2", 256 | "merge-descriptors": "1.0.1", 257 | "methods": "~1.1.2", 258 | "on-finished": "~2.3.0", 259 | "parseurl": "~1.3.3", 260 | "path-to-regexp": "0.1.7", 261 | "proxy-addr": "~2.0.7", 262 | "qs": "6.9.7", 263 | "range-parser": "~1.2.1", 264 | "safe-buffer": "5.2.1", 265 | "send": "0.17.2", 266 | "serve-static": "1.14.2", 267 | "setprototypeof": "1.2.0", 268 | "statuses": "~1.5.0", 269 | "type-is": "~1.6.18", 270 | "utils-merge": "1.0.1", 271 | "vary": "~1.1.2" 272 | }, 273 | "engines": { 274 | "node": ">= 0.10.0" 275 | } 276 | }, 277 | "node_modules/extend": { 278 | "version": "3.0.2", 279 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 280 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 281 | }, 282 | "node_modules/fast-text-encoding": { 283 | "version": "1.0.3", 284 | "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", 285 | "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" 286 | }, 287 | "node_modules/finalhandler": { 288 | "version": "1.1.2", 289 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 290 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 291 | "dependencies": { 292 | "debug": "2.6.9", 293 | "encodeurl": "~1.0.2", 294 | "escape-html": "~1.0.3", 295 | "on-finished": "~2.3.0", 296 | "parseurl": "~1.3.3", 297 | "statuses": "~1.5.0", 298 | "unpipe": "~1.0.0" 299 | }, 300 | "engines": { 301 | "node": ">= 0.8" 302 | } 303 | }, 304 | "node_modules/forwarded": { 305 | "version": "0.2.0", 306 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 307 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 308 | "engines": { 309 | "node": ">= 0.6" 310 | } 311 | }, 312 | "node_modules/fresh": { 313 | "version": "0.5.2", 314 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 315 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", 316 | "engines": { 317 | "node": ">= 0.6" 318 | } 319 | }, 320 | "node_modules/gaxios": { 321 | "version": "4.3.2", 322 | "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", 323 | "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", 324 | "dependencies": { 325 | "abort-controller": "^3.0.0", 326 | "extend": "^3.0.2", 327 | "https-proxy-agent": "^5.0.0", 328 | "is-stream": "^2.0.0", 329 | "node-fetch": "^2.6.1" 330 | }, 331 | "engines": { 332 | "node": ">=10" 333 | } 334 | }, 335 | "node_modules/gcp-metadata": { 336 | "version": "4.3.1", 337 | "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", 338 | "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", 339 | "dependencies": { 340 | "gaxios": "^4.0.0", 341 | "json-bigint": "^1.0.0" 342 | }, 343 | "engines": { 344 | "node": ">=10" 345 | } 346 | }, 347 | "node_modules/google-auth-library": { 348 | "version": "7.14.1", 349 | "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", 350 | "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==", 351 | "dependencies": { 352 | "arrify": "^2.0.0", 353 | "base64-js": "^1.3.0", 354 | "ecdsa-sig-formatter": "^1.0.11", 355 | "fast-text-encoding": "^1.0.0", 356 | "gaxios": "^4.0.0", 357 | "gcp-metadata": "^4.2.0", 358 | "gtoken": "^5.0.4", 359 | "jws": "^4.0.0", 360 | "lru-cache": "^6.0.0" 361 | }, 362 | "engines": { 363 | "node": ">=10" 364 | } 365 | }, 366 | "node_modules/google-p12-pem": { 367 | "version": "3.1.3", 368 | "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", 369 | "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", 370 | "dependencies": { 371 | "node-forge": "^1.0.0" 372 | }, 373 | "bin": { 374 | "gp12-pem": "build/src/bin/gp12-pem.js" 375 | }, 376 | "engines": { 377 | "node": ">=10" 378 | } 379 | }, 380 | "node_modules/gtoken": { 381 | "version": "5.3.2", 382 | "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", 383 | "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", 384 | "dependencies": { 385 | "gaxios": "^4.0.0", 386 | "google-p12-pem": "^3.1.3", 387 | "jws": "^4.0.0" 388 | }, 389 | "engines": { 390 | "node": ">=10" 391 | } 392 | }, 393 | "node_modules/http-errors": { 394 | "version": "1.8.1", 395 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", 396 | "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", 397 | "dependencies": { 398 | "depd": "~1.1.2", 399 | "inherits": "2.0.4", 400 | "setprototypeof": "1.2.0", 401 | "statuses": ">= 1.5.0 < 2", 402 | "toidentifier": "1.0.1" 403 | }, 404 | "engines": { 405 | "node": ">= 0.6" 406 | } 407 | }, 408 | "node_modules/https-proxy-agent": { 409 | "version": "5.0.0", 410 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", 411 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", 412 | "dependencies": { 413 | "agent-base": "6", 414 | "debug": "4" 415 | }, 416 | "engines": { 417 | "node": ">= 6" 418 | } 419 | }, 420 | "node_modules/https-proxy-agent/node_modules/debug": { 421 | "version": "4.3.4", 422 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 423 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 424 | "dependencies": { 425 | "ms": "2.1.2" 426 | }, 427 | "engines": { 428 | "node": ">=6.0" 429 | }, 430 | "peerDependenciesMeta": { 431 | "supports-color": { 432 | "optional": true 433 | } 434 | } 435 | }, 436 | "node_modules/https-proxy-agent/node_modules/ms": { 437 | "version": "2.1.2", 438 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 439 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 440 | }, 441 | "node_modules/iconv-lite": { 442 | "version": "0.4.24", 443 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 444 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 445 | "dependencies": { 446 | "safer-buffer": ">= 2.1.2 < 3" 447 | }, 448 | "engines": { 449 | "node": ">=0.10.0" 450 | } 451 | }, 452 | "node_modules/inherits": { 453 | "version": "2.0.4", 454 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 455 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 456 | }, 457 | "node_modules/ipaddr.js": { 458 | "version": "1.9.1", 459 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 460 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 461 | "engines": { 462 | "node": ">= 0.10" 463 | } 464 | }, 465 | "node_modules/is-stream": { 466 | "version": "2.0.1", 467 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 468 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 469 | "engines": { 470 | "node": ">=8" 471 | }, 472 | "funding": { 473 | "url": "https://github.com/sponsors/sindresorhus" 474 | } 475 | }, 476 | "node_modules/json-bigint": { 477 | "version": "1.0.0", 478 | "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", 479 | "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", 480 | "dependencies": { 481 | "bignumber.js": "^9.0.0" 482 | } 483 | }, 484 | "node_modules/jsonwebtoken": { 485 | "version": "8.5.1", 486 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", 487 | "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", 488 | "dependencies": { 489 | "jws": "^3.2.2", 490 | "lodash.includes": "^4.3.0", 491 | "lodash.isboolean": "^3.0.3", 492 | "lodash.isinteger": "^4.0.4", 493 | "lodash.isnumber": "^3.0.3", 494 | "lodash.isplainobject": "^4.0.6", 495 | "lodash.isstring": "^4.0.1", 496 | "lodash.once": "^4.0.0", 497 | "ms": "^2.1.1", 498 | "semver": "^5.6.0" 499 | }, 500 | "engines": { 501 | "node": ">=4", 502 | "npm": ">=1.4.28" 503 | } 504 | }, 505 | "node_modules/jsonwebtoken/node_modules/jwa": { 506 | "version": "1.4.1", 507 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", 508 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", 509 | "dependencies": { 510 | "buffer-equal-constant-time": "1.0.1", 511 | "ecdsa-sig-formatter": "1.0.11", 512 | "safe-buffer": "^5.0.1" 513 | } 514 | }, 515 | "node_modules/jsonwebtoken/node_modules/jws": { 516 | "version": "3.2.2", 517 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", 518 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", 519 | "dependencies": { 520 | "jwa": "^1.4.1", 521 | "safe-buffer": "^5.0.1" 522 | } 523 | }, 524 | "node_modules/jsonwebtoken/node_modules/ms": { 525 | "version": "2.1.3", 526 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 527 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 528 | }, 529 | "node_modules/jwa": { 530 | "version": "2.0.0", 531 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", 532 | "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", 533 | "dependencies": { 534 | "buffer-equal-constant-time": "1.0.1", 535 | "ecdsa-sig-formatter": "1.0.11", 536 | "safe-buffer": "^5.0.1" 537 | } 538 | }, 539 | "node_modules/jws": { 540 | "version": "4.0.0", 541 | "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", 542 | "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", 543 | "dependencies": { 544 | "jwa": "^2.0.0", 545 | "safe-buffer": "^5.0.1" 546 | } 547 | }, 548 | "node_modules/lodash.includes": { 549 | "version": "4.3.0", 550 | "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", 551 | "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" 552 | }, 553 | "node_modules/lodash.isboolean": { 554 | "version": "3.0.3", 555 | "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", 556 | "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" 557 | }, 558 | "node_modules/lodash.isinteger": { 559 | "version": "4.0.4", 560 | "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", 561 | "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" 562 | }, 563 | "node_modules/lodash.isnumber": { 564 | "version": "3.0.3", 565 | "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", 566 | "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" 567 | }, 568 | "node_modules/lodash.isplainobject": { 569 | "version": "4.0.6", 570 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 571 | "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" 572 | }, 573 | "node_modules/lodash.isstring": { 574 | "version": "4.0.1", 575 | "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", 576 | "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" 577 | }, 578 | "node_modules/lodash.once": { 579 | "version": "4.1.1", 580 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 581 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" 582 | }, 583 | "node_modules/lru-cache": { 584 | "version": "6.0.0", 585 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 586 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 587 | "dependencies": { 588 | "yallist": "^4.0.0" 589 | }, 590 | "engines": { 591 | "node": ">=10" 592 | } 593 | }, 594 | "node_modules/media-typer": { 595 | "version": "0.3.0", 596 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 597 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", 598 | "engines": { 599 | "node": ">= 0.6" 600 | } 601 | }, 602 | "node_modules/merge-descriptors": { 603 | "version": "1.0.1", 604 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 605 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 606 | }, 607 | "node_modules/methods": { 608 | "version": "1.1.2", 609 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 610 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", 611 | "engines": { 612 | "node": ">= 0.6" 613 | } 614 | }, 615 | "node_modules/mime": { 616 | "version": "1.6.0", 617 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 618 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 619 | "bin": { 620 | "mime": "cli.js" 621 | }, 622 | "engines": { 623 | "node": ">=4" 624 | } 625 | }, 626 | "node_modules/mime-db": { 627 | "version": "1.52.0", 628 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 629 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 630 | "engines": { 631 | "node": ">= 0.6" 632 | } 633 | }, 634 | "node_modules/mime-types": { 635 | "version": "2.1.35", 636 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 637 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 638 | "dependencies": { 639 | "mime-db": "1.52.0" 640 | }, 641 | "engines": { 642 | "node": ">= 0.6" 643 | } 644 | }, 645 | "node_modules/ms": { 646 | "version": "2.0.0", 647 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 648 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 649 | }, 650 | "node_modules/negotiator": { 651 | "version": "0.6.3", 652 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 653 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 654 | "engines": { 655 | "node": ">= 0.6" 656 | } 657 | }, 658 | "node_modules/node-fetch": { 659 | "version": "2.6.7", 660 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 661 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 662 | "dependencies": { 663 | "whatwg-url": "^5.0.0" 664 | }, 665 | "engines": { 666 | "node": "4.x || >=6.0.0" 667 | }, 668 | "peerDependencies": { 669 | "encoding": "^0.1.0" 670 | }, 671 | "peerDependenciesMeta": { 672 | "encoding": { 673 | "optional": true 674 | } 675 | } 676 | }, 677 | "node_modules/node-forge": { 678 | "version": "1.3.1", 679 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 680 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", 681 | "engines": { 682 | "node": ">= 6.13.0" 683 | } 684 | }, 685 | "node_modules/on-finished": { 686 | "version": "2.3.0", 687 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 688 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 689 | "dependencies": { 690 | "ee-first": "1.1.1" 691 | }, 692 | "engines": { 693 | "node": ">= 0.8" 694 | } 695 | }, 696 | "node_modules/parseurl": { 697 | "version": "1.3.3", 698 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 699 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 700 | "engines": { 701 | "node": ">= 0.8" 702 | } 703 | }, 704 | "node_modules/path-to-regexp": { 705 | "version": "0.1.7", 706 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 707 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 708 | }, 709 | "node_modules/proxy-addr": { 710 | "version": "2.0.7", 711 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 712 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 713 | "dependencies": { 714 | "forwarded": "0.2.0", 715 | "ipaddr.js": "1.9.1" 716 | }, 717 | "engines": { 718 | "node": ">= 0.10" 719 | } 720 | }, 721 | "node_modules/qs": { 722 | "version": "6.9.7", 723 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", 724 | "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", 725 | "engines": { 726 | "node": ">=0.6" 727 | }, 728 | "funding": { 729 | "url": "https://github.com/sponsors/ljharb" 730 | } 731 | }, 732 | "node_modules/range-parser": { 733 | "version": "1.2.1", 734 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 735 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 736 | "engines": { 737 | "node": ">= 0.6" 738 | } 739 | }, 740 | "node_modules/raw-body": { 741 | "version": "2.4.3", 742 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", 743 | "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", 744 | "dependencies": { 745 | "bytes": "3.1.2", 746 | "http-errors": "1.8.1", 747 | "iconv-lite": "0.4.24", 748 | "unpipe": "1.0.0" 749 | }, 750 | "engines": { 751 | "node": ">= 0.8" 752 | } 753 | }, 754 | "node_modules/safe-buffer": { 755 | "version": "5.2.1", 756 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 757 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 758 | "funding": [ 759 | { 760 | "type": "github", 761 | "url": "https://github.com/sponsors/feross" 762 | }, 763 | { 764 | "type": "patreon", 765 | "url": "https://www.patreon.com/feross" 766 | }, 767 | { 768 | "type": "consulting", 769 | "url": "https://feross.org/support" 770 | } 771 | ] 772 | }, 773 | "node_modules/safer-buffer": { 774 | "version": "2.1.2", 775 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 776 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 777 | }, 778 | "node_modules/semver": { 779 | "version": "5.7.1", 780 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 781 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 782 | "bin": { 783 | "semver": "bin/semver" 784 | } 785 | }, 786 | "node_modules/send": { 787 | "version": "0.17.2", 788 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", 789 | "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", 790 | "dependencies": { 791 | "debug": "2.6.9", 792 | "depd": "~1.1.2", 793 | "destroy": "~1.0.4", 794 | "encodeurl": "~1.0.2", 795 | "escape-html": "~1.0.3", 796 | "etag": "~1.8.1", 797 | "fresh": "0.5.2", 798 | "http-errors": "1.8.1", 799 | "mime": "1.6.0", 800 | "ms": "2.1.3", 801 | "on-finished": "~2.3.0", 802 | "range-parser": "~1.2.1", 803 | "statuses": "~1.5.0" 804 | }, 805 | "engines": { 806 | "node": ">= 0.8.0" 807 | } 808 | }, 809 | "node_modules/send/node_modules/ms": { 810 | "version": "2.1.3", 811 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 812 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 813 | }, 814 | "node_modules/serve-static": { 815 | "version": "1.14.2", 816 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", 817 | "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", 818 | "dependencies": { 819 | "encodeurl": "~1.0.2", 820 | "escape-html": "~1.0.3", 821 | "parseurl": "~1.3.3", 822 | "send": "0.17.2" 823 | }, 824 | "engines": { 825 | "node": ">= 0.8.0" 826 | } 827 | }, 828 | "node_modules/setprototypeof": { 829 | "version": "1.2.0", 830 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 831 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 832 | }, 833 | "node_modules/statuses": { 834 | "version": "1.5.0", 835 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 836 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", 837 | "engines": { 838 | "node": ">= 0.6" 839 | } 840 | }, 841 | "node_modules/toidentifier": { 842 | "version": "1.0.1", 843 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 844 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", 845 | "engines": { 846 | "node": ">=0.6" 847 | } 848 | }, 849 | "node_modules/tr46": { 850 | "version": "0.0.3", 851 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 852 | "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" 853 | }, 854 | "node_modules/type-is": { 855 | "version": "1.6.18", 856 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 857 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 858 | "dependencies": { 859 | "media-typer": "0.3.0", 860 | "mime-types": "~2.1.24" 861 | }, 862 | "engines": { 863 | "node": ">= 0.6" 864 | } 865 | }, 866 | "node_modules/unpipe": { 867 | "version": "1.0.0", 868 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 869 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", 870 | "engines": { 871 | "node": ">= 0.8" 872 | } 873 | }, 874 | "node_modules/utils-merge": { 875 | "version": "1.0.1", 876 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 877 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", 878 | "engines": { 879 | "node": ">= 0.4.0" 880 | } 881 | }, 882 | "node_modules/vary": { 883 | "version": "1.1.2", 884 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 885 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", 886 | "engines": { 887 | "node": ">= 0.8" 888 | } 889 | }, 890 | "node_modules/webidl-conversions": { 891 | "version": "3.0.1", 892 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 893 | "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" 894 | }, 895 | "node_modules/whatwg-url": { 896 | "version": "5.0.0", 897 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 898 | "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", 899 | "dependencies": { 900 | "tr46": "~0.0.3", 901 | "webidl-conversions": "^3.0.0" 902 | } 903 | }, 904 | "node_modules/yallist": { 905 | "version": "4.0.0", 906 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 907 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 908 | } 909 | }, 910 | "dependencies": { 911 | "abort-controller": { 912 | "version": "3.0.0", 913 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 914 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 915 | "requires": { 916 | "event-target-shim": "^5.0.0" 917 | } 918 | }, 919 | "accepts": { 920 | "version": "1.3.8", 921 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 922 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 923 | "requires": { 924 | "mime-types": "~2.1.34", 925 | "negotiator": "0.6.3" 926 | } 927 | }, 928 | "agent-base": { 929 | "version": "6.0.2", 930 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 931 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 932 | "requires": { 933 | "debug": "4" 934 | }, 935 | "dependencies": { 936 | "debug": { 937 | "version": "4.3.4", 938 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 939 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 940 | "requires": { 941 | "ms": "2.1.2" 942 | } 943 | }, 944 | "ms": { 945 | "version": "2.1.2", 946 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 947 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 948 | } 949 | } 950 | }, 951 | "array-flatten": { 952 | "version": "1.1.1", 953 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 954 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 955 | }, 956 | "arrify": { 957 | "version": "2.0.1", 958 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 959 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" 960 | }, 961 | "base64-js": { 962 | "version": "1.5.1", 963 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 964 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 965 | }, 966 | "bignumber.js": { 967 | "version": "9.0.2", 968 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", 969 | "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" 970 | }, 971 | "body-parser": { 972 | "version": "1.19.2", 973 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", 974 | "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", 975 | "requires": { 976 | "bytes": "3.1.2", 977 | "content-type": "~1.0.4", 978 | "debug": "2.6.9", 979 | "depd": "~1.1.2", 980 | "http-errors": "1.8.1", 981 | "iconv-lite": "0.4.24", 982 | "on-finished": "~2.3.0", 983 | "qs": "6.9.7", 984 | "raw-body": "2.4.3", 985 | "type-is": "~1.6.18" 986 | } 987 | }, 988 | "buffer-equal-constant-time": { 989 | "version": "1.0.1", 990 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 991 | "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" 992 | }, 993 | "bytes": { 994 | "version": "3.1.2", 995 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 996 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" 997 | }, 998 | "content-disposition": { 999 | "version": "0.5.4", 1000 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 1001 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 1002 | "requires": { 1003 | "safe-buffer": "5.2.1" 1004 | } 1005 | }, 1006 | "content-type": { 1007 | "version": "1.0.4", 1008 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 1009 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 1010 | }, 1011 | "cookie": { 1012 | "version": "0.4.2", 1013 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", 1014 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" 1015 | }, 1016 | "cookie-signature": { 1017 | "version": "1.0.6", 1018 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 1019 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 1020 | }, 1021 | "debug": { 1022 | "version": "2.6.9", 1023 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1024 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1025 | "requires": { 1026 | "ms": "2.0.0" 1027 | } 1028 | }, 1029 | "depd": { 1030 | "version": "1.1.2", 1031 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 1032 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 1033 | }, 1034 | "destroy": { 1035 | "version": "1.0.4", 1036 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 1037 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 1038 | }, 1039 | "ecdsa-sig-formatter": { 1040 | "version": "1.0.11", 1041 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 1042 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 1043 | "requires": { 1044 | "safe-buffer": "^5.0.1" 1045 | } 1046 | }, 1047 | "ee-first": { 1048 | "version": "1.1.1", 1049 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 1050 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 1051 | }, 1052 | "encodeurl": { 1053 | "version": "1.0.2", 1054 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 1055 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 1056 | }, 1057 | "escape-html": { 1058 | "version": "1.0.3", 1059 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 1060 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 1061 | }, 1062 | "etag": { 1063 | "version": "1.8.1", 1064 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 1065 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 1066 | }, 1067 | "event-target-shim": { 1068 | "version": "5.0.1", 1069 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 1070 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 1071 | }, 1072 | "express": { 1073 | "version": "4.17.3", 1074 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", 1075 | "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", 1076 | "requires": { 1077 | "accepts": "~1.3.8", 1078 | "array-flatten": "1.1.1", 1079 | "body-parser": "1.19.2", 1080 | "content-disposition": "0.5.4", 1081 | "content-type": "~1.0.4", 1082 | "cookie": "0.4.2", 1083 | "cookie-signature": "1.0.6", 1084 | "debug": "2.6.9", 1085 | "depd": "~1.1.2", 1086 | "encodeurl": "~1.0.2", 1087 | "escape-html": "~1.0.3", 1088 | "etag": "~1.8.1", 1089 | "finalhandler": "~1.1.2", 1090 | "fresh": "0.5.2", 1091 | "merge-descriptors": "1.0.1", 1092 | "methods": "~1.1.2", 1093 | "on-finished": "~2.3.0", 1094 | "parseurl": "~1.3.3", 1095 | "path-to-regexp": "0.1.7", 1096 | "proxy-addr": "~2.0.7", 1097 | "qs": "6.9.7", 1098 | "range-parser": "~1.2.1", 1099 | "safe-buffer": "5.2.1", 1100 | "send": "0.17.2", 1101 | "serve-static": "1.14.2", 1102 | "setprototypeof": "1.2.0", 1103 | "statuses": "~1.5.0", 1104 | "type-is": "~1.6.18", 1105 | "utils-merge": "1.0.1", 1106 | "vary": "~1.1.2" 1107 | } 1108 | }, 1109 | "extend": { 1110 | "version": "3.0.2", 1111 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1112 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 1113 | }, 1114 | "fast-text-encoding": { 1115 | "version": "1.0.3", 1116 | "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", 1117 | "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" 1118 | }, 1119 | "finalhandler": { 1120 | "version": "1.1.2", 1121 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 1122 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 1123 | "requires": { 1124 | "debug": "2.6.9", 1125 | "encodeurl": "~1.0.2", 1126 | "escape-html": "~1.0.3", 1127 | "on-finished": "~2.3.0", 1128 | "parseurl": "~1.3.3", 1129 | "statuses": "~1.5.0", 1130 | "unpipe": "~1.0.0" 1131 | } 1132 | }, 1133 | "forwarded": { 1134 | "version": "0.2.0", 1135 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 1136 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 1137 | }, 1138 | "fresh": { 1139 | "version": "0.5.2", 1140 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1141 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 1142 | }, 1143 | "gaxios": { 1144 | "version": "4.3.2", 1145 | "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", 1146 | "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", 1147 | "requires": { 1148 | "abort-controller": "^3.0.0", 1149 | "extend": "^3.0.2", 1150 | "https-proxy-agent": "^5.0.0", 1151 | "is-stream": "^2.0.0", 1152 | "node-fetch": "^2.6.1" 1153 | } 1154 | }, 1155 | "gcp-metadata": { 1156 | "version": "4.3.1", 1157 | "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", 1158 | "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", 1159 | "requires": { 1160 | "gaxios": "^4.0.0", 1161 | "json-bigint": "^1.0.0" 1162 | } 1163 | }, 1164 | "google-auth-library": { 1165 | "version": "7.14.1", 1166 | "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", 1167 | "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==", 1168 | "requires": { 1169 | "arrify": "^2.0.0", 1170 | "base64-js": "^1.3.0", 1171 | "ecdsa-sig-formatter": "^1.0.11", 1172 | "fast-text-encoding": "^1.0.0", 1173 | "gaxios": "^4.0.0", 1174 | "gcp-metadata": "^4.2.0", 1175 | "gtoken": "^5.0.4", 1176 | "jws": "^4.0.0", 1177 | "lru-cache": "^6.0.0" 1178 | } 1179 | }, 1180 | "google-p12-pem": { 1181 | "version": "3.1.3", 1182 | "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", 1183 | "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", 1184 | "requires": { 1185 | "node-forge": "^1.0.0" 1186 | } 1187 | }, 1188 | "gtoken": { 1189 | "version": "5.3.2", 1190 | "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", 1191 | "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", 1192 | "requires": { 1193 | "gaxios": "^4.0.0", 1194 | "google-p12-pem": "^3.1.3", 1195 | "jws": "^4.0.0" 1196 | } 1197 | }, 1198 | "http-errors": { 1199 | "version": "1.8.1", 1200 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", 1201 | "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", 1202 | "requires": { 1203 | "depd": "~1.1.2", 1204 | "inherits": "2.0.4", 1205 | "setprototypeof": "1.2.0", 1206 | "statuses": ">= 1.5.0 < 2", 1207 | "toidentifier": "1.0.1" 1208 | } 1209 | }, 1210 | "https-proxy-agent": { 1211 | "version": "5.0.0", 1212 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", 1213 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", 1214 | "requires": { 1215 | "agent-base": "6", 1216 | "debug": "4" 1217 | }, 1218 | "dependencies": { 1219 | "debug": { 1220 | "version": "4.3.4", 1221 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1222 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1223 | "requires": { 1224 | "ms": "2.1.2" 1225 | } 1226 | }, 1227 | "ms": { 1228 | "version": "2.1.2", 1229 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1230 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1231 | } 1232 | } 1233 | }, 1234 | "iconv-lite": { 1235 | "version": "0.4.24", 1236 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1237 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1238 | "requires": { 1239 | "safer-buffer": ">= 2.1.2 < 3" 1240 | } 1241 | }, 1242 | "inherits": { 1243 | "version": "2.0.4", 1244 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1245 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1246 | }, 1247 | "ipaddr.js": { 1248 | "version": "1.9.1", 1249 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 1250 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 1251 | }, 1252 | "is-stream": { 1253 | "version": "2.0.1", 1254 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 1255 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" 1256 | }, 1257 | "json-bigint": { 1258 | "version": "1.0.0", 1259 | "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", 1260 | "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", 1261 | "requires": { 1262 | "bignumber.js": "^9.0.0" 1263 | } 1264 | }, 1265 | "jsonwebtoken": { 1266 | "version": "8.5.1", 1267 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", 1268 | "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", 1269 | "requires": { 1270 | "jws": "^3.2.2", 1271 | "lodash.includes": "^4.3.0", 1272 | "lodash.isboolean": "^3.0.3", 1273 | "lodash.isinteger": "^4.0.4", 1274 | "lodash.isnumber": "^3.0.3", 1275 | "lodash.isplainobject": "^4.0.6", 1276 | "lodash.isstring": "^4.0.1", 1277 | "lodash.once": "^4.0.0", 1278 | "ms": "^2.1.1", 1279 | "semver": "^5.6.0" 1280 | }, 1281 | "dependencies": { 1282 | "jwa": { 1283 | "version": "1.4.1", 1284 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", 1285 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", 1286 | "requires": { 1287 | "buffer-equal-constant-time": "1.0.1", 1288 | "ecdsa-sig-formatter": "1.0.11", 1289 | "safe-buffer": "^5.0.1" 1290 | } 1291 | }, 1292 | "jws": { 1293 | "version": "3.2.2", 1294 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", 1295 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", 1296 | "requires": { 1297 | "jwa": "^1.4.1", 1298 | "safe-buffer": "^5.0.1" 1299 | } 1300 | }, 1301 | "ms": { 1302 | "version": "2.1.3", 1303 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1304 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1305 | } 1306 | } 1307 | }, 1308 | "jwa": { 1309 | "version": "2.0.0", 1310 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", 1311 | "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", 1312 | "requires": { 1313 | "buffer-equal-constant-time": "1.0.1", 1314 | "ecdsa-sig-formatter": "1.0.11", 1315 | "safe-buffer": "^5.0.1" 1316 | } 1317 | }, 1318 | "jws": { 1319 | "version": "4.0.0", 1320 | "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", 1321 | "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", 1322 | "requires": { 1323 | "jwa": "^2.0.0", 1324 | "safe-buffer": "^5.0.1" 1325 | } 1326 | }, 1327 | "lodash.includes": { 1328 | "version": "4.3.0", 1329 | "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", 1330 | "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" 1331 | }, 1332 | "lodash.isboolean": { 1333 | "version": "3.0.3", 1334 | "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", 1335 | "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" 1336 | }, 1337 | "lodash.isinteger": { 1338 | "version": "4.0.4", 1339 | "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", 1340 | "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" 1341 | }, 1342 | "lodash.isnumber": { 1343 | "version": "3.0.3", 1344 | "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", 1345 | "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" 1346 | }, 1347 | "lodash.isplainobject": { 1348 | "version": "4.0.6", 1349 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 1350 | "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" 1351 | }, 1352 | "lodash.isstring": { 1353 | "version": "4.0.1", 1354 | "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", 1355 | "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" 1356 | }, 1357 | "lodash.once": { 1358 | "version": "4.1.1", 1359 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 1360 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" 1361 | }, 1362 | "lru-cache": { 1363 | "version": "6.0.0", 1364 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1365 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1366 | "requires": { 1367 | "yallist": "^4.0.0" 1368 | } 1369 | }, 1370 | "media-typer": { 1371 | "version": "0.3.0", 1372 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1373 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1374 | }, 1375 | "merge-descriptors": { 1376 | "version": "1.0.1", 1377 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1378 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1379 | }, 1380 | "methods": { 1381 | "version": "1.1.2", 1382 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1383 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 1384 | }, 1385 | "mime": { 1386 | "version": "1.6.0", 1387 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1388 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1389 | }, 1390 | "mime-db": { 1391 | "version": "1.52.0", 1392 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 1393 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 1394 | }, 1395 | "mime-types": { 1396 | "version": "2.1.35", 1397 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 1398 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1399 | "requires": { 1400 | "mime-db": "1.52.0" 1401 | } 1402 | }, 1403 | "ms": { 1404 | "version": "2.0.0", 1405 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1406 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1407 | }, 1408 | "negotiator": { 1409 | "version": "0.6.3", 1410 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 1411 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" 1412 | }, 1413 | "node-fetch": { 1414 | "version": "2.6.7", 1415 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 1416 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 1417 | "requires": { 1418 | "whatwg-url": "^5.0.0" 1419 | } 1420 | }, 1421 | "node-forge": { 1422 | "version": "1.3.1", 1423 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 1424 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" 1425 | }, 1426 | "on-finished": { 1427 | "version": "2.3.0", 1428 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1429 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1430 | "requires": { 1431 | "ee-first": "1.1.1" 1432 | } 1433 | }, 1434 | "parseurl": { 1435 | "version": "1.3.3", 1436 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1437 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1438 | }, 1439 | "path-to-regexp": { 1440 | "version": "0.1.7", 1441 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1442 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1443 | }, 1444 | "proxy-addr": { 1445 | "version": "2.0.7", 1446 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 1447 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1448 | "requires": { 1449 | "forwarded": "0.2.0", 1450 | "ipaddr.js": "1.9.1" 1451 | } 1452 | }, 1453 | "qs": { 1454 | "version": "6.9.7", 1455 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", 1456 | "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" 1457 | }, 1458 | "range-parser": { 1459 | "version": "1.2.1", 1460 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1461 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1462 | }, 1463 | "raw-body": { 1464 | "version": "2.4.3", 1465 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", 1466 | "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", 1467 | "requires": { 1468 | "bytes": "3.1.2", 1469 | "http-errors": "1.8.1", 1470 | "iconv-lite": "0.4.24", 1471 | "unpipe": "1.0.0" 1472 | } 1473 | }, 1474 | "safe-buffer": { 1475 | "version": "5.2.1", 1476 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1477 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1478 | }, 1479 | "safer-buffer": { 1480 | "version": "2.1.2", 1481 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1482 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1483 | }, 1484 | "semver": { 1485 | "version": "5.7.1", 1486 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1487 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 1488 | }, 1489 | "send": { 1490 | "version": "0.17.2", 1491 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", 1492 | "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", 1493 | "requires": { 1494 | "debug": "2.6.9", 1495 | "depd": "~1.1.2", 1496 | "destroy": "~1.0.4", 1497 | "encodeurl": "~1.0.2", 1498 | "escape-html": "~1.0.3", 1499 | "etag": "~1.8.1", 1500 | "fresh": "0.5.2", 1501 | "http-errors": "1.8.1", 1502 | "mime": "1.6.0", 1503 | "ms": "2.1.3", 1504 | "on-finished": "~2.3.0", 1505 | "range-parser": "~1.2.1", 1506 | "statuses": "~1.5.0" 1507 | }, 1508 | "dependencies": { 1509 | "ms": { 1510 | "version": "2.1.3", 1511 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1512 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1513 | } 1514 | } 1515 | }, 1516 | "serve-static": { 1517 | "version": "1.14.2", 1518 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", 1519 | "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", 1520 | "requires": { 1521 | "encodeurl": "~1.0.2", 1522 | "escape-html": "~1.0.3", 1523 | "parseurl": "~1.3.3", 1524 | "send": "0.17.2" 1525 | } 1526 | }, 1527 | "setprototypeof": { 1528 | "version": "1.2.0", 1529 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 1530 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 1531 | }, 1532 | "statuses": { 1533 | "version": "1.5.0", 1534 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1535 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 1536 | }, 1537 | "toidentifier": { 1538 | "version": "1.0.1", 1539 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 1540 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" 1541 | }, 1542 | "tr46": { 1543 | "version": "0.0.3", 1544 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 1545 | "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" 1546 | }, 1547 | "type-is": { 1548 | "version": "1.6.18", 1549 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1550 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1551 | "requires": { 1552 | "media-typer": "0.3.0", 1553 | "mime-types": "~2.1.24" 1554 | } 1555 | }, 1556 | "unpipe": { 1557 | "version": "1.0.0", 1558 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1559 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 1560 | }, 1561 | "utils-merge": { 1562 | "version": "1.0.1", 1563 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1564 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 1565 | }, 1566 | "vary": { 1567 | "version": "1.1.2", 1568 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1569 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 1570 | }, 1571 | "webidl-conversions": { 1572 | "version": "3.0.1", 1573 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 1574 | "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" 1575 | }, 1576 | "whatwg-url": { 1577 | "version": "5.0.0", 1578 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 1579 | "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", 1580 | "requires": { 1581 | "tr46": "~0.0.3", 1582 | "webidl-conversions": "^3.0.0" 1583 | } 1584 | }, 1585 | "yallist": { 1586 | "version": "4.0.0", 1587 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1588 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 1589 | } 1590 | } 1591 | } 1592 | -------------------------------------------------------------------------------- /web_complete/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wallet-web-codelab", 3 | "lockfileVersion": 2, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "body-parser": "^1.19.0", 9 | "express": "^4.17.1", 10 | "google-auth-library": ">=5.9.2", 11 | "jsonwebtoken": ">=8.5.1" 12 | } 13 | }, 14 | "node_modules/abort-controller": { 15 | "version": "3.0.0", 16 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 17 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 18 | "dependencies": { 19 | "event-target-shim": "^5.0.0" 20 | }, 21 | "engines": { 22 | "node": ">=6.5" 23 | } 24 | }, 25 | "node_modules/accepts": { 26 | "version": "1.3.8", 27 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 28 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 29 | "dependencies": { 30 | "mime-types": "~2.1.34", 31 | "negotiator": "0.6.3" 32 | }, 33 | "engines": { 34 | "node": ">= 0.6" 35 | } 36 | }, 37 | "node_modules/agent-base": { 38 | "version": "6.0.2", 39 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 40 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 41 | "dependencies": { 42 | "debug": "4" 43 | }, 44 | "engines": { 45 | "node": ">= 6.0.0" 46 | } 47 | }, 48 | "node_modules/agent-base/node_modules/debug": { 49 | "version": "4.3.4", 50 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 51 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 52 | "dependencies": { 53 | "ms": "2.1.2" 54 | }, 55 | "engines": { 56 | "node": ">=6.0" 57 | }, 58 | "peerDependenciesMeta": { 59 | "supports-color": { 60 | "optional": true 61 | } 62 | } 63 | }, 64 | "node_modules/agent-base/node_modules/ms": { 65 | "version": "2.1.2", 66 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 67 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 68 | }, 69 | "node_modules/array-flatten": { 70 | "version": "1.1.1", 71 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 72 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 73 | }, 74 | "node_modules/arrify": { 75 | "version": "2.0.1", 76 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 77 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", 78 | "engines": { 79 | "node": ">=8" 80 | } 81 | }, 82 | "node_modules/base64-js": { 83 | "version": "1.5.1", 84 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 85 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 86 | "funding": [ 87 | { 88 | "type": "github", 89 | "url": "https://github.com/sponsors/feross" 90 | }, 91 | { 92 | "type": "patreon", 93 | "url": "https://www.patreon.com/feross" 94 | }, 95 | { 96 | "type": "consulting", 97 | "url": "https://feross.org/support" 98 | } 99 | ] 100 | }, 101 | "node_modules/bignumber.js": { 102 | "version": "9.0.2", 103 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", 104 | "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", 105 | "engines": { 106 | "node": "*" 107 | } 108 | }, 109 | "node_modules/body-parser": { 110 | "version": "1.19.2", 111 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", 112 | "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", 113 | "dependencies": { 114 | "bytes": "3.1.2", 115 | "content-type": "~1.0.4", 116 | "debug": "2.6.9", 117 | "depd": "~1.1.2", 118 | "http-errors": "1.8.1", 119 | "iconv-lite": "0.4.24", 120 | "on-finished": "~2.3.0", 121 | "qs": "6.9.7", 122 | "raw-body": "2.4.3", 123 | "type-is": "~1.6.18" 124 | }, 125 | "engines": { 126 | "node": ">= 0.8" 127 | } 128 | }, 129 | "node_modules/buffer-equal-constant-time": { 130 | "version": "1.0.1", 131 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 132 | "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" 133 | }, 134 | "node_modules/bytes": { 135 | "version": "3.1.2", 136 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 137 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", 138 | "engines": { 139 | "node": ">= 0.8" 140 | } 141 | }, 142 | "node_modules/content-disposition": { 143 | "version": "0.5.4", 144 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 145 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 146 | "dependencies": { 147 | "safe-buffer": "5.2.1" 148 | }, 149 | "engines": { 150 | "node": ">= 0.6" 151 | } 152 | }, 153 | "node_modules/content-type": { 154 | "version": "1.0.4", 155 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 156 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 157 | "engines": { 158 | "node": ">= 0.6" 159 | } 160 | }, 161 | "node_modules/cookie": { 162 | "version": "0.4.2", 163 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", 164 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", 165 | "engines": { 166 | "node": ">= 0.6" 167 | } 168 | }, 169 | "node_modules/cookie-signature": { 170 | "version": "1.0.6", 171 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 172 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 173 | }, 174 | "node_modules/debug": { 175 | "version": "2.6.9", 176 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 177 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 178 | "dependencies": { 179 | "ms": "2.0.0" 180 | } 181 | }, 182 | "node_modules/depd": { 183 | "version": "1.1.2", 184 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 185 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", 186 | "engines": { 187 | "node": ">= 0.6" 188 | } 189 | }, 190 | "node_modules/destroy": { 191 | "version": "1.0.4", 192 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 193 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 194 | }, 195 | "node_modules/ecdsa-sig-formatter": { 196 | "version": "1.0.11", 197 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 198 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 199 | "dependencies": { 200 | "safe-buffer": "^5.0.1" 201 | } 202 | }, 203 | "node_modules/ee-first": { 204 | "version": "1.1.1", 205 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 206 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 207 | }, 208 | "node_modules/encodeurl": { 209 | "version": "1.0.2", 210 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 211 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", 212 | "engines": { 213 | "node": ">= 0.8" 214 | } 215 | }, 216 | "node_modules/escape-html": { 217 | "version": "1.0.3", 218 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 219 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 220 | }, 221 | "node_modules/etag": { 222 | "version": "1.8.1", 223 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 224 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", 225 | "engines": { 226 | "node": ">= 0.6" 227 | } 228 | }, 229 | "node_modules/event-target-shim": { 230 | "version": "5.0.1", 231 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 232 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", 233 | "engines": { 234 | "node": ">=6" 235 | } 236 | }, 237 | "node_modules/express": { 238 | "version": "4.17.3", 239 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", 240 | "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", 241 | "dependencies": { 242 | "accepts": "~1.3.8", 243 | "array-flatten": "1.1.1", 244 | "body-parser": "1.19.2", 245 | "content-disposition": "0.5.4", 246 | "content-type": "~1.0.4", 247 | "cookie": "0.4.2", 248 | "cookie-signature": "1.0.6", 249 | "debug": "2.6.9", 250 | "depd": "~1.1.2", 251 | "encodeurl": "~1.0.2", 252 | "escape-html": "~1.0.3", 253 | "etag": "~1.8.1", 254 | "finalhandler": "~1.1.2", 255 | "fresh": "0.5.2", 256 | "merge-descriptors": "1.0.1", 257 | "methods": "~1.1.2", 258 | "on-finished": "~2.3.0", 259 | "parseurl": "~1.3.3", 260 | "path-to-regexp": "0.1.7", 261 | "proxy-addr": "~2.0.7", 262 | "qs": "6.9.7", 263 | "range-parser": "~1.2.1", 264 | "safe-buffer": "5.2.1", 265 | "send": "0.17.2", 266 | "serve-static": "1.14.2", 267 | "setprototypeof": "1.2.0", 268 | "statuses": "~1.5.0", 269 | "type-is": "~1.6.18", 270 | "utils-merge": "1.0.1", 271 | "vary": "~1.1.2" 272 | }, 273 | "engines": { 274 | "node": ">= 0.10.0" 275 | } 276 | }, 277 | "node_modules/extend": { 278 | "version": "3.0.2", 279 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 280 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 281 | }, 282 | "node_modules/fast-text-encoding": { 283 | "version": "1.0.3", 284 | "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", 285 | "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" 286 | }, 287 | "node_modules/finalhandler": { 288 | "version": "1.1.2", 289 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 290 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 291 | "dependencies": { 292 | "debug": "2.6.9", 293 | "encodeurl": "~1.0.2", 294 | "escape-html": "~1.0.3", 295 | "on-finished": "~2.3.0", 296 | "parseurl": "~1.3.3", 297 | "statuses": "~1.5.0", 298 | "unpipe": "~1.0.0" 299 | }, 300 | "engines": { 301 | "node": ">= 0.8" 302 | } 303 | }, 304 | "node_modules/forwarded": { 305 | "version": "0.2.0", 306 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 307 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 308 | "engines": { 309 | "node": ">= 0.6" 310 | } 311 | }, 312 | "node_modules/fresh": { 313 | "version": "0.5.2", 314 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 315 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", 316 | "engines": { 317 | "node": ">= 0.6" 318 | } 319 | }, 320 | "node_modules/gaxios": { 321 | "version": "4.3.2", 322 | "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", 323 | "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", 324 | "dependencies": { 325 | "abort-controller": "^3.0.0", 326 | "extend": "^3.0.2", 327 | "https-proxy-agent": "^5.0.0", 328 | "is-stream": "^2.0.0", 329 | "node-fetch": "^2.6.1" 330 | }, 331 | "engines": { 332 | "node": ">=10" 333 | } 334 | }, 335 | "node_modules/gcp-metadata": { 336 | "version": "4.3.1", 337 | "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", 338 | "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", 339 | "dependencies": { 340 | "gaxios": "^4.0.0", 341 | "json-bigint": "^1.0.0" 342 | }, 343 | "engines": { 344 | "node": ">=10" 345 | } 346 | }, 347 | "node_modules/google-auth-library": { 348 | "version": "7.14.1", 349 | "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", 350 | "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==", 351 | "dependencies": { 352 | "arrify": "^2.0.0", 353 | "base64-js": "^1.3.0", 354 | "ecdsa-sig-formatter": "^1.0.11", 355 | "fast-text-encoding": "^1.0.0", 356 | "gaxios": "^4.0.0", 357 | "gcp-metadata": "^4.2.0", 358 | "gtoken": "^5.0.4", 359 | "jws": "^4.0.0", 360 | "lru-cache": "^6.0.0" 361 | }, 362 | "engines": { 363 | "node": ">=10" 364 | } 365 | }, 366 | "node_modules/google-p12-pem": { 367 | "version": "3.1.3", 368 | "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", 369 | "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", 370 | "dependencies": { 371 | "node-forge": "^1.0.0" 372 | }, 373 | "bin": { 374 | "gp12-pem": "build/src/bin/gp12-pem.js" 375 | }, 376 | "engines": { 377 | "node": ">=10" 378 | } 379 | }, 380 | "node_modules/gtoken": { 381 | "version": "5.3.2", 382 | "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", 383 | "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", 384 | "dependencies": { 385 | "gaxios": "^4.0.0", 386 | "google-p12-pem": "^3.1.3", 387 | "jws": "^4.0.0" 388 | }, 389 | "engines": { 390 | "node": ">=10" 391 | } 392 | }, 393 | "node_modules/http-errors": { 394 | "version": "1.8.1", 395 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", 396 | "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", 397 | "dependencies": { 398 | "depd": "~1.1.2", 399 | "inherits": "2.0.4", 400 | "setprototypeof": "1.2.0", 401 | "statuses": ">= 1.5.0 < 2", 402 | "toidentifier": "1.0.1" 403 | }, 404 | "engines": { 405 | "node": ">= 0.6" 406 | } 407 | }, 408 | "node_modules/https-proxy-agent": { 409 | "version": "5.0.0", 410 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", 411 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", 412 | "dependencies": { 413 | "agent-base": "6", 414 | "debug": "4" 415 | }, 416 | "engines": { 417 | "node": ">= 6" 418 | } 419 | }, 420 | "node_modules/https-proxy-agent/node_modules/debug": { 421 | "version": "4.3.4", 422 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 423 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 424 | "dependencies": { 425 | "ms": "2.1.2" 426 | }, 427 | "engines": { 428 | "node": ">=6.0" 429 | }, 430 | "peerDependenciesMeta": { 431 | "supports-color": { 432 | "optional": true 433 | } 434 | } 435 | }, 436 | "node_modules/https-proxy-agent/node_modules/ms": { 437 | "version": "2.1.2", 438 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 439 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 440 | }, 441 | "node_modules/iconv-lite": { 442 | "version": "0.4.24", 443 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 444 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 445 | "dependencies": { 446 | "safer-buffer": ">= 2.1.2 < 3" 447 | }, 448 | "engines": { 449 | "node": ">=0.10.0" 450 | } 451 | }, 452 | "node_modules/inherits": { 453 | "version": "2.0.4", 454 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 455 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 456 | }, 457 | "node_modules/ipaddr.js": { 458 | "version": "1.9.1", 459 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 460 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 461 | "engines": { 462 | "node": ">= 0.10" 463 | } 464 | }, 465 | "node_modules/is-stream": { 466 | "version": "2.0.1", 467 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 468 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 469 | "engines": { 470 | "node": ">=8" 471 | }, 472 | "funding": { 473 | "url": "https://github.com/sponsors/sindresorhus" 474 | } 475 | }, 476 | "node_modules/json-bigint": { 477 | "version": "1.0.0", 478 | "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", 479 | "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", 480 | "dependencies": { 481 | "bignumber.js": "^9.0.0" 482 | } 483 | }, 484 | "node_modules/jsonwebtoken": { 485 | "version": "8.5.1", 486 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", 487 | "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", 488 | "dependencies": { 489 | "jws": "^3.2.2", 490 | "lodash.includes": "^4.3.0", 491 | "lodash.isboolean": "^3.0.3", 492 | "lodash.isinteger": "^4.0.4", 493 | "lodash.isnumber": "^3.0.3", 494 | "lodash.isplainobject": "^4.0.6", 495 | "lodash.isstring": "^4.0.1", 496 | "lodash.once": "^4.0.0", 497 | "ms": "^2.1.1", 498 | "semver": "^5.6.0" 499 | }, 500 | "engines": { 501 | "node": ">=4", 502 | "npm": ">=1.4.28" 503 | } 504 | }, 505 | "node_modules/jsonwebtoken/node_modules/jwa": { 506 | "version": "1.4.1", 507 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", 508 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", 509 | "dependencies": { 510 | "buffer-equal-constant-time": "1.0.1", 511 | "ecdsa-sig-formatter": "1.0.11", 512 | "safe-buffer": "^5.0.1" 513 | } 514 | }, 515 | "node_modules/jsonwebtoken/node_modules/jws": { 516 | "version": "3.2.2", 517 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", 518 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", 519 | "dependencies": { 520 | "jwa": "^1.4.1", 521 | "safe-buffer": "^5.0.1" 522 | } 523 | }, 524 | "node_modules/jsonwebtoken/node_modules/ms": { 525 | "version": "2.1.3", 526 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 527 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 528 | }, 529 | "node_modules/jwa": { 530 | "version": "2.0.0", 531 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", 532 | "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", 533 | "dependencies": { 534 | "buffer-equal-constant-time": "1.0.1", 535 | "ecdsa-sig-formatter": "1.0.11", 536 | "safe-buffer": "^5.0.1" 537 | } 538 | }, 539 | "node_modules/jws": { 540 | "version": "4.0.0", 541 | "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", 542 | "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", 543 | "dependencies": { 544 | "jwa": "^2.0.0", 545 | "safe-buffer": "^5.0.1" 546 | } 547 | }, 548 | "node_modules/lodash.includes": { 549 | "version": "4.3.0", 550 | "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", 551 | "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" 552 | }, 553 | "node_modules/lodash.isboolean": { 554 | "version": "3.0.3", 555 | "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", 556 | "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" 557 | }, 558 | "node_modules/lodash.isinteger": { 559 | "version": "4.0.4", 560 | "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", 561 | "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" 562 | }, 563 | "node_modules/lodash.isnumber": { 564 | "version": "3.0.3", 565 | "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", 566 | "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" 567 | }, 568 | "node_modules/lodash.isplainobject": { 569 | "version": "4.0.6", 570 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 571 | "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" 572 | }, 573 | "node_modules/lodash.isstring": { 574 | "version": "4.0.1", 575 | "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", 576 | "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" 577 | }, 578 | "node_modules/lodash.once": { 579 | "version": "4.1.1", 580 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 581 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" 582 | }, 583 | "node_modules/lru-cache": { 584 | "version": "6.0.0", 585 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 586 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 587 | "dependencies": { 588 | "yallist": "^4.0.0" 589 | }, 590 | "engines": { 591 | "node": ">=10" 592 | } 593 | }, 594 | "node_modules/media-typer": { 595 | "version": "0.3.0", 596 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 597 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", 598 | "engines": { 599 | "node": ">= 0.6" 600 | } 601 | }, 602 | "node_modules/merge-descriptors": { 603 | "version": "1.0.1", 604 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 605 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 606 | }, 607 | "node_modules/methods": { 608 | "version": "1.1.2", 609 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 610 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", 611 | "engines": { 612 | "node": ">= 0.6" 613 | } 614 | }, 615 | "node_modules/mime": { 616 | "version": "1.6.0", 617 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 618 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 619 | "bin": { 620 | "mime": "cli.js" 621 | }, 622 | "engines": { 623 | "node": ">=4" 624 | } 625 | }, 626 | "node_modules/mime-db": { 627 | "version": "1.52.0", 628 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 629 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 630 | "engines": { 631 | "node": ">= 0.6" 632 | } 633 | }, 634 | "node_modules/mime-types": { 635 | "version": "2.1.35", 636 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 637 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 638 | "dependencies": { 639 | "mime-db": "1.52.0" 640 | }, 641 | "engines": { 642 | "node": ">= 0.6" 643 | } 644 | }, 645 | "node_modules/ms": { 646 | "version": "2.0.0", 647 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 648 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 649 | }, 650 | "node_modules/negotiator": { 651 | "version": "0.6.3", 652 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 653 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 654 | "engines": { 655 | "node": ">= 0.6" 656 | } 657 | }, 658 | "node_modules/node-fetch": { 659 | "version": "2.6.7", 660 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 661 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 662 | "dependencies": { 663 | "whatwg-url": "^5.0.0" 664 | }, 665 | "engines": { 666 | "node": "4.x || >=6.0.0" 667 | }, 668 | "peerDependencies": { 669 | "encoding": "^0.1.0" 670 | }, 671 | "peerDependenciesMeta": { 672 | "encoding": { 673 | "optional": true 674 | } 675 | } 676 | }, 677 | "node_modules/node-forge": { 678 | "version": "1.3.1", 679 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 680 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", 681 | "engines": { 682 | "node": ">= 6.13.0" 683 | } 684 | }, 685 | "node_modules/on-finished": { 686 | "version": "2.3.0", 687 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 688 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 689 | "dependencies": { 690 | "ee-first": "1.1.1" 691 | }, 692 | "engines": { 693 | "node": ">= 0.8" 694 | } 695 | }, 696 | "node_modules/parseurl": { 697 | "version": "1.3.3", 698 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 699 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 700 | "engines": { 701 | "node": ">= 0.8" 702 | } 703 | }, 704 | "node_modules/path-to-regexp": { 705 | "version": "0.1.7", 706 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 707 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 708 | }, 709 | "node_modules/proxy-addr": { 710 | "version": "2.0.7", 711 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 712 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 713 | "dependencies": { 714 | "forwarded": "0.2.0", 715 | "ipaddr.js": "1.9.1" 716 | }, 717 | "engines": { 718 | "node": ">= 0.10" 719 | } 720 | }, 721 | "node_modules/qs": { 722 | "version": "6.9.7", 723 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", 724 | "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", 725 | "engines": { 726 | "node": ">=0.6" 727 | }, 728 | "funding": { 729 | "url": "https://github.com/sponsors/ljharb" 730 | } 731 | }, 732 | "node_modules/range-parser": { 733 | "version": "1.2.1", 734 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 735 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 736 | "engines": { 737 | "node": ">= 0.6" 738 | } 739 | }, 740 | "node_modules/raw-body": { 741 | "version": "2.4.3", 742 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", 743 | "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", 744 | "dependencies": { 745 | "bytes": "3.1.2", 746 | "http-errors": "1.8.1", 747 | "iconv-lite": "0.4.24", 748 | "unpipe": "1.0.0" 749 | }, 750 | "engines": { 751 | "node": ">= 0.8" 752 | } 753 | }, 754 | "node_modules/safe-buffer": { 755 | "version": "5.2.1", 756 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 757 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 758 | "funding": [ 759 | { 760 | "type": "github", 761 | "url": "https://github.com/sponsors/feross" 762 | }, 763 | { 764 | "type": "patreon", 765 | "url": "https://www.patreon.com/feross" 766 | }, 767 | { 768 | "type": "consulting", 769 | "url": "https://feross.org/support" 770 | } 771 | ] 772 | }, 773 | "node_modules/safer-buffer": { 774 | "version": "2.1.2", 775 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 776 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 777 | }, 778 | "node_modules/semver": { 779 | "version": "5.7.1", 780 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 781 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 782 | "bin": { 783 | "semver": "bin/semver" 784 | } 785 | }, 786 | "node_modules/send": { 787 | "version": "0.17.2", 788 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", 789 | "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", 790 | "dependencies": { 791 | "debug": "2.6.9", 792 | "depd": "~1.1.2", 793 | "destroy": "~1.0.4", 794 | "encodeurl": "~1.0.2", 795 | "escape-html": "~1.0.3", 796 | "etag": "~1.8.1", 797 | "fresh": "0.5.2", 798 | "http-errors": "1.8.1", 799 | "mime": "1.6.0", 800 | "ms": "2.1.3", 801 | "on-finished": "~2.3.0", 802 | "range-parser": "~1.2.1", 803 | "statuses": "~1.5.0" 804 | }, 805 | "engines": { 806 | "node": ">= 0.8.0" 807 | } 808 | }, 809 | "node_modules/send/node_modules/ms": { 810 | "version": "2.1.3", 811 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 812 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 813 | }, 814 | "node_modules/serve-static": { 815 | "version": "1.14.2", 816 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", 817 | "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", 818 | "dependencies": { 819 | "encodeurl": "~1.0.2", 820 | "escape-html": "~1.0.3", 821 | "parseurl": "~1.3.3", 822 | "send": "0.17.2" 823 | }, 824 | "engines": { 825 | "node": ">= 0.8.0" 826 | } 827 | }, 828 | "node_modules/setprototypeof": { 829 | "version": "1.2.0", 830 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 831 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 832 | }, 833 | "node_modules/statuses": { 834 | "version": "1.5.0", 835 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 836 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", 837 | "engines": { 838 | "node": ">= 0.6" 839 | } 840 | }, 841 | "node_modules/toidentifier": { 842 | "version": "1.0.1", 843 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 844 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", 845 | "engines": { 846 | "node": ">=0.6" 847 | } 848 | }, 849 | "node_modules/tr46": { 850 | "version": "0.0.3", 851 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 852 | "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" 853 | }, 854 | "node_modules/type-is": { 855 | "version": "1.6.18", 856 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 857 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 858 | "dependencies": { 859 | "media-typer": "0.3.0", 860 | "mime-types": "~2.1.24" 861 | }, 862 | "engines": { 863 | "node": ">= 0.6" 864 | } 865 | }, 866 | "node_modules/unpipe": { 867 | "version": "1.0.0", 868 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 869 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", 870 | "engines": { 871 | "node": ">= 0.8" 872 | } 873 | }, 874 | "node_modules/utils-merge": { 875 | "version": "1.0.1", 876 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 877 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", 878 | "engines": { 879 | "node": ">= 0.4.0" 880 | } 881 | }, 882 | "node_modules/vary": { 883 | "version": "1.1.2", 884 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 885 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", 886 | "engines": { 887 | "node": ">= 0.8" 888 | } 889 | }, 890 | "node_modules/webidl-conversions": { 891 | "version": "3.0.1", 892 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 893 | "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" 894 | }, 895 | "node_modules/whatwg-url": { 896 | "version": "5.0.0", 897 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 898 | "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", 899 | "dependencies": { 900 | "tr46": "~0.0.3", 901 | "webidl-conversions": "^3.0.0" 902 | } 903 | }, 904 | "node_modules/yallist": { 905 | "version": "4.0.0", 906 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 907 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 908 | } 909 | }, 910 | "dependencies": { 911 | "abort-controller": { 912 | "version": "3.0.0", 913 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 914 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 915 | "requires": { 916 | "event-target-shim": "^5.0.0" 917 | } 918 | }, 919 | "accepts": { 920 | "version": "1.3.8", 921 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 922 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 923 | "requires": { 924 | "mime-types": "~2.1.34", 925 | "negotiator": "0.6.3" 926 | } 927 | }, 928 | "agent-base": { 929 | "version": "6.0.2", 930 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 931 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 932 | "requires": { 933 | "debug": "4" 934 | }, 935 | "dependencies": { 936 | "debug": { 937 | "version": "4.3.4", 938 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 939 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 940 | "requires": { 941 | "ms": "2.1.2" 942 | } 943 | }, 944 | "ms": { 945 | "version": "2.1.2", 946 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 947 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 948 | } 949 | } 950 | }, 951 | "array-flatten": { 952 | "version": "1.1.1", 953 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 954 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 955 | }, 956 | "arrify": { 957 | "version": "2.0.1", 958 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 959 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" 960 | }, 961 | "base64-js": { 962 | "version": "1.5.1", 963 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 964 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 965 | }, 966 | "bignumber.js": { 967 | "version": "9.0.2", 968 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", 969 | "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" 970 | }, 971 | "body-parser": { 972 | "version": "1.19.2", 973 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", 974 | "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", 975 | "requires": { 976 | "bytes": "3.1.2", 977 | "content-type": "~1.0.4", 978 | "debug": "2.6.9", 979 | "depd": "~1.1.2", 980 | "http-errors": "1.8.1", 981 | "iconv-lite": "0.4.24", 982 | "on-finished": "~2.3.0", 983 | "qs": "6.9.7", 984 | "raw-body": "2.4.3", 985 | "type-is": "~1.6.18" 986 | } 987 | }, 988 | "buffer-equal-constant-time": { 989 | "version": "1.0.1", 990 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 991 | "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" 992 | }, 993 | "bytes": { 994 | "version": "3.1.2", 995 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 996 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" 997 | }, 998 | "content-disposition": { 999 | "version": "0.5.4", 1000 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 1001 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 1002 | "requires": { 1003 | "safe-buffer": "5.2.1" 1004 | } 1005 | }, 1006 | "content-type": { 1007 | "version": "1.0.4", 1008 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 1009 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 1010 | }, 1011 | "cookie": { 1012 | "version": "0.4.2", 1013 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", 1014 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" 1015 | }, 1016 | "cookie-signature": { 1017 | "version": "1.0.6", 1018 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 1019 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 1020 | }, 1021 | "debug": { 1022 | "version": "2.6.9", 1023 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1024 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1025 | "requires": { 1026 | "ms": "2.0.0" 1027 | } 1028 | }, 1029 | "depd": { 1030 | "version": "1.1.2", 1031 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 1032 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 1033 | }, 1034 | "destroy": { 1035 | "version": "1.0.4", 1036 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 1037 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 1038 | }, 1039 | "ecdsa-sig-formatter": { 1040 | "version": "1.0.11", 1041 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 1042 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 1043 | "requires": { 1044 | "safe-buffer": "^5.0.1" 1045 | } 1046 | }, 1047 | "ee-first": { 1048 | "version": "1.1.1", 1049 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 1050 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 1051 | }, 1052 | "encodeurl": { 1053 | "version": "1.0.2", 1054 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 1055 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 1056 | }, 1057 | "escape-html": { 1058 | "version": "1.0.3", 1059 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 1060 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 1061 | }, 1062 | "etag": { 1063 | "version": "1.8.1", 1064 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 1065 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 1066 | }, 1067 | "event-target-shim": { 1068 | "version": "5.0.1", 1069 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 1070 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 1071 | }, 1072 | "express": { 1073 | "version": "4.17.3", 1074 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", 1075 | "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", 1076 | "requires": { 1077 | "accepts": "~1.3.8", 1078 | "array-flatten": "1.1.1", 1079 | "body-parser": "1.19.2", 1080 | "content-disposition": "0.5.4", 1081 | "content-type": "~1.0.4", 1082 | "cookie": "0.4.2", 1083 | "cookie-signature": "1.0.6", 1084 | "debug": "2.6.9", 1085 | "depd": "~1.1.2", 1086 | "encodeurl": "~1.0.2", 1087 | "escape-html": "~1.0.3", 1088 | "etag": "~1.8.1", 1089 | "finalhandler": "~1.1.2", 1090 | "fresh": "0.5.2", 1091 | "merge-descriptors": "1.0.1", 1092 | "methods": "~1.1.2", 1093 | "on-finished": "~2.3.0", 1094 | "parseurl": "~1.3.3", 1095 | "path-to-regexp": "0.1.7", 1096 | "proxy-addr": "~2.0.7", 1097 | "qs": "6.9.7", 1098 | "range-parser": "~1.2.1", 1099 | "safe-buffer": "5.2.1", 1100 | "send": "0.17.2", 1101 | "serve-static": "1.14.2", 1102 | "setprototypeof": "1.2.0", 1103 | "statuses": "~1.5.0", 1104 | "type-is": "~1.6.18", 1105 | "utils-merge": "1.0.1", 1106 | "vary": "~1.1.2" 1107 | } 1108 | }, 1109 | "extend": { 1110 | "version": "3.0.2", 1111 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1112 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 1113 | }, 1114 | "fast-text-encoding": { 1115 | "version": "1.0.3", 1116 | "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", 1117 | "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" 1118 | }, 1119 | "finalhandler": { 1120 | "version": "1.1.2", 1121 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 1122 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 1123 | "requires": { 1124 | "debug": "2.6.9", 1125 | "encodeurl": "~1.0.2", 1126 | "escape-html": "~1.0.3", 1127 | "on-finished": "~2.3.0", 1128 | "parseurl": "~1.3.3", 1129 | "statuses": "~1.5.0", 1130 | "unpipe": "~1.0.0" 1131 | } 1132 | }, 1133 | "forwarded": { 1134 | "version": "0.2.0", 1135 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 1136 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 1137 | }, 1138 | "fresh": { 1139 | "version": "0.5.2", 1140 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1141 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 1142 | }, 1143 | "gaxios": { 1144 | "version": "4.3.2", 1145 | "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", 1146 | "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", 1147 | "requires": { 1148 | "abort-controller": "^3.0.0", 1149 | "extend": "^3.0.2", 1150 | "https-proxy-agent": "^5.0.0", 1151 | "is-stream": "^2.0.0", 1152 | "node-fetch": "^2.6.1" 1153 | } 1154 | }, 1155 | "gcp-metadata": { 1156 | "version": "4.3.1", 1157 | "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", 1158 | "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", 1159 | "requires": { 1160 | "gaxios": "^4.0.0", 1161 | "json-bigint": "^1.0.0" 1162 | } 1163 | }, 1164 | "google-auth-library": { 1165 | "version": "7.14.1", 1166 | "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", 1167 | "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==", 1168 | "requires": { 1169 | "arrify": "^2.0.0", 1170 | "base64-js": "^1.3.0", 1171 | "ecdsa-sig-formatter": "^1.0.11", 1172 | "fast-text-encoding": "^1.0.0", 1173 | "gaxios": "^4.0.0", 1174 | "gcp-metadata": "^4.2.0", 1175 | "gtoken": "^5.0.4", 1176 | "jws": "^4.0.0", 1177 | "lru-cache": "^6.0.0" 1178 | } 1179 | }, 1180 | "google-p12-pem": { 1181 | "version": "3.1.3", 1182 | "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", 1183 | "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", 1184 | "requires": { 1185 | "node-forge": "^1.0.0" 1186 | } 1187 | }, 1188 | "gtoken": { 1189 | "version": "5.3.2", 1190 | "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", 1191 | "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", 1192 | "requires": { 1193 | "gaxios": "^4.0.0", 1194 | "google-p12-pem": "^3.1.3", 1195 | "jws": "^4.0.0" 1196 | } 1197 | }, 1198 | "http-errors": { 1199 | "version": "1.8.1", 1200 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", 1201 | "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", 1202 | "requires": { 1203 | "depd": "~1.1.2", 1204 | "inherits": "2.0.4", 1205 | "setprototypeof": "1.2.0", 1206 | "statuses": ">= 1.5.0 < 2", 1207 | "toidentifier": "1.0.1" 1208 | } 1209 | }, 1210 | "https-proxy-agent": { 1211 | "version": "5.0.0", 1212 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", 1213 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", 1214 | "requires": { 1215 | "agent-base": "6", 1216 | "debug": "4" 1217 | }, 1218 | "dependencies": { 1219 | "debug": { 1220 | "version": "4.3.4", 1221 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1222 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1223 | "requires": { 1224 | "ms": "2.1.2" 1225 | } 1226 | }, 1227 | "ms": { 1228 | "version": "2.1.2", 1229 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1230 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1231 | } 1232 | } 1233 | }, 1234 | "iconv-lite": { 1235 | "version": "0.4.24", 1236 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1237 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1238 | "requires": { 1239 | "safer-buffer": ">= 2.1.2 < 3" 1240 | } 1241 | }, 1242 | "inherits": { 1243 | "version": "2.0.4", 1244 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1245 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1246 | }, 1247 | "ipaddr.js": { 1248 | "version": "1.9.1", 1249 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 1250 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 1251 | }, 1252 | "is-stream": { 1253 | "version": "2.0.1", 1254 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 1255 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" 1256 | }, 1257 | "json-bigint": { 1258 | "version": "1.0.0", 1259 | "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", 1260 | "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", 1261 | "requires": { 1262 | "bignumber.js": "^9.0.0" 1263 | } 1264 | }, 1265 | "jsonwebtoken": { 1266 | "version": "8.5.1", 1267 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", 1268 | "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", 1269 | "requires": { 1270 | "jws": "^3.2.2", 1271 | "lodash.includes": "^4.3.0", 1272 | "lodash.isboolean": "^3.0.3", 1273 | "lodash.isinteger": "^4.0.4", 1274 | "lodash.isnumber": "^3.0.3", 1275 | "lodash.isplainobject": "^4.0.6", 1276 | "lodash.isstring": "^4.0.1", 1277 | "lodash.once": "^4.0.0", 1278 | "ms": "^2.1.1", 1279 | "semver": "^5.6.0" 1280 | }, 1281 | "dependencies": { 1282 | "jwa": { 1283 | "version": "1.4.1", 1284 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", 1285 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", 1286 | "requires": { 1287 | "buffer-equal-constant-time": "1.0.1", 1288 | "ecdsa-sig-formatter": "1.0.11", 1289 | "safe-buffer": "^5.0.1" 1290 | } 1291 | }, 1292 | "jws": { 1293 | "version": "3.2.2", 1294 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", 1295 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", 1296 | "requires": { 1297 | "jwa": "^1.4.1", 1298 | "safe-buffer": "^5.0.1" 1299 | } 1300 | }, 1301 | "ms": { 1302 | "version": "2.1.3", 1303 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1304 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1305 | } 1306 | } 1307 | }, 1308 | "jwa": { 1309 | "version": "2.0.0", 1310 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", 1311 | "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", 1312 | "requires": { 1313 | "buffer-equal-constant-time": "1.0.1", 1314 | "ecdsa-sig-formatter": "1.0.11", 1315 | "safe-buffer": "^5.0.1" 1316 | } 1317 | }, 1318 | "jws": { 1319 | "version": "4.0.0", 1320 | "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", 1321 | "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", 1322 | "requires": { 1323 | "jwa": "^2.0.0", 1324 | "safe-buffer": "^5.0.1" 1325 | } 1326 | }, 1327 | "lodash.includes": { 1328 | "version": "4.3.0", 1329 | "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", 1330 | "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" 1331 | }, 1332 | "lodash.isboolean": { 1333 | "version": "3.0.3", 1334 | "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", 1335 | "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" 1336 | }, 1337 | "lodash.isinteger": { 1338 | "version": "4.0.4", 1339 | "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", 1340 | "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" 1341 | }, 1342 | "lodash.isnumber": { 1343 | "version": "3.0.3", 1344 | "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", 1345 | "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" 1346 | }, 1347 | "lodash.isplainobject": { 1348 | "version": "4.0.6", 1349 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 1350 | "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" 1351 | }, 1352 | "lodash.isstring": { 1353 | "version": "4.0.1", 1354 | "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", 1355 | "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" 1356 | }, 1357 | "lodash.once": { 1358 | "version": "4.1.1", 1359 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 1360 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" 1361 | }, 1362 | "lru-cache": { 1363 | "version": "6.0.0", 1364 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1365 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1366 | "requires": { 1367 | "yallist": "^4.0.0" 1368 | } 1369 | }, 1370 | "media-typer": { 1371 | "version": "0.3.0", 1372 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1373 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1374 | }, 1375 | "merge-descriptors": { 1376 | "version": "1.0.1", 1377 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1378 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1379 | }, 1380 | "methods": { 1381 | "version": "1.1.2", 1382 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1383 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 1384 | }, 1385 | "mime": { 1386 | "version": "1.6.0", 1387 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1388 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1389 | }, 1390 | "mime-db": { 1391 | "version": "1.52.0", 1392 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 1393 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 1394 | }, 1395 | "mime-types": { 1396 | "version": "2.1.35", 1397 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 1398 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1399 | "requires": { 1400 | "mime-db": "1.52.0" 1401 | } 1402 | }, 1403 | "ms": { 1404 | "version": "2.0.0", 1405 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1406 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1407 | }, 1408 | "negotiator": { 1409 | "version": "0.6.3", 1410 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 1411 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" 1412 | }, 1413 | "node-fetch": { 1414 | "version": "2.6.7", 1415 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 1416 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 1417 | "requires": { 1418 | "whatwg-url": "^5.0.0" 1419 | } 1420 | }, 1421 | "node-forge": { 1422 | "version": "1.3.1", 1423 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 1424 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" 1425 | }, 1426 | "on-finished": { 1427 | "version": "2.3.0", 1428 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1429 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1430 | "requires": { 1431 | "ee-first": "1.1.1" 1432 | } 1433 | }, 1434 | "parseurl": { 1435 | "version": "1.3.3", 1436 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1437 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1438 | }, 1439 | "path-to-regexp": { 1440 | "version": "0.1.7", 1441 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1442 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1443 | }, 1444 | "proxy-addr": { 1445 | "version": "2.0.7", 1446 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 1447 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1448 | "requires": { 1449 | "forwarded": "0.2.0", 1450 | "ipaddr.js": "1.9.1" 1451 | } 1452 | }, 1453 | "qs": { 1454 | "version": "6.9.7", 1455 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", 1456 | "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" 1457 | }, 1458 | "range-parser": { 1459 | "version": "1.2.1", 1460 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1461 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1462 | }, 1463 | "raw-body": { 1464 | "version": "2.4.3", 1465 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", 1466 | "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", 1467 | "requires": { 1468 | "bytes": "3.1.2", 1469 | "http-errors": "1.8.1", 1470 | "iconv-lite": "0.4.24", 1471 | "unpipe": "1.0.0" 1472 | } 1473 | }, 1474 | "safe-buffer": { 1475 | "version": "5.2.1", 1476 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1477 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1478 | }, 1479 | "safer-buffer": { 1480 | "version": "2.1.2", 1481 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1482 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1483 | }, 1484 | "semver": { 1485 | "version": "5.7.1", 1486 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1487 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 1488 | }, 1489 | "send": { 1490 | "version": "0.17.2", 1491 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", 1492 | "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", 1493 | "requires": { 1494 | "debug": "2.6.9", 1495 | "depd": "~1.1.2", 1496 | "destroy": "~1.0.4", 1497 | "encodeurl": "~1.0.2", 1498 | "escape-html": "~1.0.3", 1499 | "etag": "~1.8.1", 1500 | "fresh": "0.5.2", 1501 | "http-errors": "1.8.1", 1502 | "mime": "1.6.0", 1503 | "ms": "2.1.3", 1504 | "on-finished": "~2.3.0", 1505 | "range-parser": "~1.2.1", 1506 | "statuses": "~1.5.0" 1507 | }, 1508 | "dependencies": { 1509 | "ms": { 1510 | "version": "2.1.3", 1511 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1512 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1513 | } 1514 | } 1515 | }, 1516 | "serve-static": { 1517 | "version": "1.14.2", 1518 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", 1519 | "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", 1520 | "requires": { 1521 | "encodeurl": "~1.0.2", 1522 | "escape-html": "~1.0.3", 1523 | "parseurl": "~1.3.3", 1524 | "send": "0.17.2" 1525 | } 1526 | }, 1527 | "setprototypeof": { 1528 | "version": "1.2.0", 1529 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 1530 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 1531 | }, 1532 | "statuses": { 1533 | "version": "1.5.0", 1534 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1535 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 1536 | }, 1537 | "toidentifier": { 1538 | "version": "1.0.1", 1539 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 1540 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" 1541 | }, 1542 | "tr46": { 1543 | "version": "0.0.3", 1544 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 1545 | "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" 1546 | }, 1547 | "type-is": { 1548 | "version": "1.6.18", 1549 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1550 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1551 | "requires": { 1552 | "media-typer": "0.3.0", 1553 | "mime-types": "~2.1.24" 1554 | } 1555 | }, 1556 | "unpipe": { 1557 | "version": "1.0.0", 1558 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1559 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 1560 | }, 1561 | "utils-merge": { 1562 | "version": "1.0.1", 1563 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1564 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 1565 | }, 1566 | "vary": { 1567 | "version": "1.1.2", 1568 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1569 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 1570 | }, 1571 | "webidl-conversions": { 1572 | "version": "3.0.1", 1573 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 1574 | "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" 1575 | }, 1576 | "whatwg-url": { 1577 | "version": "5.0.0", 1578 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 1579 | "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", 1580 | "requires": { 1581 | "tr46": "~0.0.3", 1582 | "webidl-conversions": "^3.0.0" 1583 | } 1584 | }, 1585 | "yallist": { 1586 | "version": "4.0.0", 1587 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1588 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 1589 | } 1590 | } 1591 | } 1592 | --------------------------------------------------------------------------------