├── lambda ├── package.json ├── index.js └── package-lock.json ├── LICENSE ├── README.md ├── .gitignore └── template.yml /lambda/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aws-bill-export", 3 | "version": "0.1.0", 4 | "description": "Download AWS bills from the console programmatically", 5 | "main": "index.js", 6 | "dependencies": { 7 | "aws-sdk": "^2.814.0", 8 | "https": "^1.0.0", 9 | "puppeteer-core": "^19.8.0", 10 | "@sparticuz/chromium": "^112.0.2", 11 | "request": "^2.88.0", 12 | "request-promise": "^4.2.5", 13 | "winston": "^3.2.1" 14 | }, 15 | "devDependencies": {}, 16 | "scripts": { 17 | "test": "echo \"Error: no test specified\" && exit 1" 18 | }, 19 | "repository": { 20 | "type": "git", 21 | "url": "git+https://github.com/iann0036/aws-bill-export.git" 22 | }, 23 | "author": "Ian Mckay", 24 | "license": "MIT", 25 | "bugs": { 26 | "url": "https://github.com/iann0036/aws-bill-export/issues" 27 | }, 28 | "homepage": "https://github.com/iann0036/aws-bill-export#readme" 29 | } 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Ian Mckay 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AWS Bill Export 2 | 3 | > ["something monstrous"](https://twitter.com/QuinnyPig/status/1251572159434027008) 4 | 5 | Downloads AWS bills from the console programmatically. 6 | 7 | ## Installation 8 | 9 | [![Launch Stack](https://cdn.rawgit.com/buildkite/cloudformation-launch-stack-button-svg/master/launch-stack.svg)](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=billretriever&templateURL=https://s3.amazonaws.com/ianmckay-us-east-1/billretriever/template.yml) 10 | 11 | Click the above link to deploy the stack to your environment. 12 | 13 | If you prefer, you can also manually upsert the [template.yml](https://github.com/iann0036/aws-bill-export/blob/master/template.yml) stack from source. 14 | 15 | Currently, the only tested region is `us-east-1`. 16 | 17 | ## Usage 18 | 19 | The stack outputs a base URL you can use to make calls. The following calls can be made: 20 | 21 | **Show complete bill contents** 22 | 23 | ``` 24 | https:///completebill.json?month=3&year=2020 25 | ``` 26 | 27 | **Show the invoice list** 28 | 29 | ``` 30 | https:///invoicelist.json?month=3&year=2020 31 | ``` 32 | 33 | **Show linked account bills** 34 | 35 | ``` 36 | https:///linkedaccountbillsummary.json?month=3&year=2020 37 | ``` 38 | 39 | **Generate and download an invoice** 40 | ``` 41 | https:///generate.json?invoiceNumber=12345&invoiceGroupId=12345" 42 | https:///download.pdf?invoiceNumber=12345&invoiceGroupId=12345" 43 | ``` 44 | 45 | ## Notes 46 | 47 | - Authentication and/or authorization is anonymous by default, and a basic IAM authentication/authorization is available via the `AuthorizationType` . Configuring this to match your environment is left as an exercise for you. 48 | - You have to keep puppeteer-core and @sparticuz/chromium in sync if you update packages. See the [sparticuz/chromium readme](https://github.com/sparticuz/chromium) for instructions. 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | -------------------------------------------------------------------------------- /lambda/index.js: -------------------------------------------------------------------------------- 1 | const chromium = require("@sparticuz/chromium"); 2 | const puppeteer = require('puppeteer-core'); 3 | const winston = require('winston') 4 | const rp = require('request-promise') 5 | 6 | const LOG = winston.createLogger({ 7 | level: "debug", 8 | transports: [ 9 | new winston.transports.Console() 10 | ] 11 | }); 12 | 13 | var cookie = ""; 14 | var xsrftoken = ""; 15 | 16 | async function login(page) { 17 | let signintoken = await rp('https://signin.aws.amazon.com/federation?Action=getSigninToken&Session=' + encodeURIComponent(JSON.stringify({ 18 | 'sessionId': process.env.AWS_ACCESS_KEY_ID, 19 | 'sessionKey': process.env.AWS_SECRET_ACCESS_KEY, 20 | 'sessionToken': process.env.AWS_SESSION_TOKEN, 21 | }))); 22 | 23 | await page.goto('https://signin.aws.amazon.com/federation?Action=login&Destination=https%3A%2F%2Fconsole.aws.amazon.com%2F&SigninToken=' + JSON.parse(signintoken)['SigninToken'], { 24 | timeout: 0, 25 | waitUntil: ['domcontentloaded'] 26 | }); 27 | 28 | await page.goto('https://console.aws.amazon.com/billing/home?#/bills', { 29 | timeout: 0, 30 | waitUntil: ['domcontentloaded'] 31 | }); 32 | 33 | const cookies = await page.cookies(); 34 | 35 | cookie = ""; 36 | cookies.forEach(cookieitem => { 37 | cookie += cookieitem['name'] + "=" + cookieitem['value'] + "; "; 38 | }); 39 | cookie = cookie.substr(0, cookie.length - 2); 40 | 41 | xsrftoken = await page.$eval('#xsrfToken', element => element.value); 42 | } 43 | 44 | async function getCompleteBill(params) { 45 | if (!params.month.match(/^[0-9]+$/g) || !params.year.match(/^[0-9]+$/g)) { 46 | return {} 47 | } 48 | 49 | let res = await rp({ 50 | uri: 'https://console.aws.amazon.com/billing/rest/v1.0/bill/completebill?month=' + params.month + '&year=' + params.year, 51 | headers: { 52 | 'accept': 'application/json, text/plain, */*', 53 | 'x-AWSBillingConsole-Region': 'us-east-1', 54 | 'x-awsbc-xsrf-token': xsrftoken, 55 | 'cookie': cookie 56 | } 57 | }); 58 | 59 | return JSON.parse(res); 60 | } 61 | 62 | async function getInvoiceList(params) { 63 | if (!params.month.match(/^[0-9]+$/g) || !params.year.match(/^[0-9]+$/g)) { 64 | return {} 65 | } 66 | 67 | let res = await rp({ 68 | uri: 'https://console.aws.amazon.com/billing/rest/v1.0/bill/invoice/list?month=' + params.month + '&year=' + params.year, 69 | headers: { 70 | 'accept': 'application/json, text/plain, */*', 71 | 'x-AWSBillingConsole-Region': 'us-east-1', 72 | 'x-awsbc-xsrf-token': xsrftoken, 73 | 'cookie': cookie 74 | } 75 | }); 76 | 77 | return JSON.parse(res); 78 | } 79 | 80 | async function getLinkedAccountBillSummary(params) { 81 | if (!params.month.match(/^[0-9]+$/g) || !params.year.match(/^[0-9]+$/g)) { 82 | return {} 83 | } 84 | 85 | let res = await rp({ 86 | uri: 'https://console.aws.amazon.com/billing/rest/v1.0/bill/linked/accountbillsummary?month=' + params.month + '×tamp=' + Math.round(Date.now() / 1000).toString() + '&year=' + params.year, 87 | headers: { 88 | 'accept': 'application/json, text/plain, */*', 89 | 'x-AWSBillingConsole-Region': 'us-east-1', 90 | 'x-awsbc-xsrf-token': xsrftoken, 91 | 'cookie': cookie 92 | } 93 | }); 94 | 95 | return JSON.parse(res); 96 | } 97 | 98 | async function getGenerate(params) { 99 | if (!params.invoiceNumber.match(/^[0-9A-Z-]+$/g) || !params.invoiceGroupId.match(/^[0-9A-Z-]+$/g)) { 100 | return {} 101 | } 102 | 103 | let res = await rp({ 104 | uri: 'https://us-east-1.console.aws.amazon.com/billing/rest/v1.0/bill/invoice/generate?invoicenumber='+ params.invoiceNumber + '&invoiceGroupId='+ params.invoiceGroupId +'&generatenew=true', 105 | headers: { 106 | 'accept': 'application/json, text/plain, */*', 107 | 'x-AWSBillingConsole-Region': 'us-east-1', 108 | 'x-awsbc-xsrf-token': xsrftoken, 109 | 'cookie': cookie 110 | } 111 | }); 112 | 113 | return JSON.parse(res); 114 | } 115 | 116 | async function getDownload(params) { 117 | if (!params.invoiceNumber.match(/^[0-9A-Z-]+$/g) || !params.invoiceGroupId.match(/^[0-9A-Z-]+$/g)) { 118 | return; 119 | } 120 | 121 | let buf = await rp({ 122 | uri: 'https://us-east-1.console.aws.amazon.com/billing/rest/v1.0/bill/invoice/download?invoicenumber='+ params.invoiceNumber + '&invoiceGroupId='+ params.invoiceGroupId, 123 | encoding: null, 124 | headers: { 125 | 'accept': 'application/json, text/plain, */*', 126 | 'x-AWSBillingConsole-Region': 'us-east-1', 127 | 'x-awsbc-xsrf-token': xsrftoken, 128 | 'cookie': cookie 129 | } 130 | }); 131 | 132 | return buf; 133 | 134 | } 135 | 136 | exports.handler = async (event, context) => { 137 | LOG.debug(event); 138 | 139 | let resp = { 140 | "error": "No valid method called" 141 | } 142 | 143 | let browser = await puppeteer.launch({ 144 | args: chromium.args, 145 | defaultViewport: chromium.defaultViewport, 146 | executablePath: await chromium.executablePath(), 147 | headless: chromium.headless, 148 | }); 149 | 150 | let page = await browser.newPage(); 151 | 152 | await login(page); 153 | 154 | contentType = "application/json"; 155 | isBase64Encoded = false; 156 | if (event.routeKey == "GET /completebill.json") { 157 | resp = await getCompleteBill(event.queryStringParameters); 158 | body = JSON.stringify(resp) 159 | } else if (event.routeKey == "GET /invoicelist.json") { 160 | resp = await getInvoiceList(event.queryStringParameters); 161 | body = JSON.stringify(resp) 162 | } else if (event.routeKey == "GET /linkedaccountbillsummary.json") { 163 | resp = await getLinkedAccountBillSummary(event.queryStringParameters); 164 | body = JSON.stringify(resp) 165 | } else if (event.routeKey == "GET /generate.json") { 166 | resp = await getGenerate(event.queryStringParameters); 167 | body = JSON.stringify(resp) 168 | } else if (event.routeKey == "GET /download.pdf") { 169 | contentType = "application/pdf"; 170 | buf = await getDownload(event.queryStringParameters); 171 | isBase64Encoded = true; 172 | body = buf.toString('base64'); 173 | } else { 174 | return context.succeed(); 175 | } 176 | 177 | return { 178 | "statusCode": 200, 179 | "isBase64Encoded": isBase64Encoded, 180 | "headers": { 181 | "Content-Type": contentType, 182 | }, 183 | "body": body, 184 | }; 185 | }; 186 | -------------------------------------------------------------------------------- /template.yml: -------------------------------------------------------------------------------- 1 | AWSTemplateFormatVersion: "2010-09-09" 2 | 3 | Description: AWS Bill Export Solution 4 | 5 | Parameters: 6 | AuthorizationType: 7 | Type: String 8 | Description: Type of auhtorization to use for the API Gateway 9 | AllowedValues: 10 | - AWS_IAM 11 | - NONE 12 | Default: NONE 13 | 14 | Conditions: 15 | IamAuthorization: !Equals [!Ref AuthorizationType, AWS_IAM] 16 | 17 | Mappings: 18 | RegionMap: 19 | us-east-1: 20 | bucketname: ianmckay-us-east-1 21 | us-east-2: 22 | bucketname: ianmckay-us-east-2 23 | us-west-1: 24 | bucketname: ianmckay-us-west-1 25 | us-west-2: 26 | bucketname: ianmckay-us-west-2 27 | ap-south-1: 28 | bucketname: ianmckay-ap-south-1 29 | ap-northeast-2: 30 | bucketname: ianmckay-ap-northeast-2 31 | ap-southeast-1: 32 | bucketname: ianmckay-ap-southeast-1 33 | ap-southeast-2: 34 | bucketname: ianmckay-ap-southeast-2 35 | ap-northeast-1: 36 | bucketname: ianmckay-ap-northeast-1 37 | ca-central-1: 38 | bucketname: ianmckay-ca-central-1 39 | eu-central-1: 40 | bucketname: ianmckay-eu-central-1 41 | eu-west-1: 42 | bucketname: ianmckay-eu-west-1 43 | eu-west-2: 44 | bucketname: ianmckay-eu-west-2 45 | eu-west-3: 46 | bucketname: ianmckay-eu-west-3 47 | eu-north-1: 48 | bucketname: ianmckay-eu-north-1 49 | sa-east-1: 50 | bucketname: ianmckay-sa-east-1 51 | 52 | Resources: 53 | 54 | LambdaAPIGatewayPermission: 55 | Type: AWS::Lambda::Permission 56 | Properties: 57 | FunctionName: !Ref LambdaFunction 58 | Action: lambda:InvokeFunction 59 | Principal: apigateway.amazonaws.com 60 | SourceArn: !Sub "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${HttpApi}/*/*/*" 61 | 62 | LambdaLogGroup: 63 | Type: AWS::Logs::LogGroup 64 | Properties: 65 | LogGroupName: /aws/lambda/BillRetriever 66 | RetentionInDays: 14 67 | 68 | LambdaFunction: 69 | DependsOn: 70 | - LambdaLogGroup 71 | Type: AWS::Lambda::Function 72 | Properties: 73 | FunctionName: BillRetriever 74 | Code: 75 | S3Bucket: 76 | Fn::FindInMap: 77 | - RegionMap 78 | - !Ref 'AWS::Region' 79 | - bucketname 80 | S3Key: 'billretriever/app.zip' 81 | Handler: index.handler 82 | Role: !GetAtt LambdaExecutionRole.Arn 83 | Environment: 84 | Variables: 85 | ACCOUNTID: !Ref AWS::AccountId 86 | Runtime: nodejs18.x 87 | MemorySize: 1024 88 | Timeout: 30 # maximum for http api is 30s 89 | 90 | LambdaExecutionRole: 91 | Type: AWS::IAM::Role 92 | Properties: 93 | AssumeRolePolicyDocument: 94 | Version: '2012-10-17' 95 | Statement: 96 | - Effect: Allow 97 | Principal: 98 | Service: 99 | - lambda.amazonaws.com 100 | Action: 101 | - sts:AssumeRole 102 | Path: / 103 | ManagedPolicyArns: 104 | - arn:aws:iam::aws:policy/job-function/Billing 105 | Policies: 106 | - PolicyName: root 107 | PolicyDocument: 108 | Version: '2012-10-17' 109 | Statement: 110 | - Effect: Allow 111 | Action: 112 | - logs:CreateLogGroup 113 | - logs:CreateLogStream 114 | - logs:PutLogEvents 115 | Resource: arn:aws:logs:*:*:* 116 | 117 | HttpApi: 118 | Type: AWS::ApiGatewayV2::Api 119 | Properties: 120 | Name: !Ref AWS::StackName 121 | ProtocolType: HTTP 122 | RouteSelectionExpression: "$request.method $request.path" 123 | Version: "1.0" 124 | CorsConfiguration: 125 | AllowMethods: 126 | - GET 127 | AllowOrigins: 128 | - "*" 129 | 130 | HttpApiStage: 131 | Type: AWS::ApiGatewayV2::Stage 132 | Properties: 133 | ApiId: !Ref HttpApi 134 | AutoDeploy: true 135 | StageName: "$default" 136 | 137 | HttpApiGetCompletebillRoute: 138 | Type: AWS::ApiGatewayV2::Route 139 | Properties: 140 | ApiId: !Ref HttpApi 141 | AuthorizationType: !Ref AuthorizationType 142 | RouteKey: "GET /completebill.json" 143 | Target: !Sub "integrations/${HttpApiIntegration}" 144 | 145 | HttpApiGetInvoicelistRoute: 146 | Type: AWS::ApiGatewayV2::Route 147 | Properties: 148 | ApiId: !Ref HttpApi 149 | AuthorizationType: !Ref AuthorizationType 150 | RouteKey: "GET /invoicelist.json" 151 | Target: !Sub "integrations/${HttpApiIntegration}" 152 | 153 | HttpApiGetLinkedaccountbillsummaryRoute: 154 | Type: AWS::ApiGatewayV2::Route 155 | Properties: 156 | ApiId: !Ref HttpApi 157 | AuthorizationType: !Ref AuthorizationType 158 | RouteKey: "GET /linkedaccountbillsummary.json" 159 | Target: !Sub "integrations/${HttpApiIntegration}" 160 | 161 | HttpApiGetGenerateRoute: 162 | Type: AWS::ApiGatewayV2::Route 163 | Properties: 164 | ApiId: !Ref HttpApi 165 | AuthorizationType: !Ref AuthorizationType 166 | RouteKey: "GET /generate.json" 167 | Target: !Sub "integrations/${HttpApiIntegration}" 168 | 169 | HttpApiGetDownloadRoute: 170 | Type: AWS::ApiGatewayV2::Route 171 | Properties: 172 | ApiId: !Ref HttpApi 173 | AuthorizationType: !Ref AuthorizationType 174 | RouteKey: "GET /download.pdf" 175 | Target: !Sub "integrations/${HttpApiIntegration}" 176 | 177 | 178 | HttpApiIntegration: 179 | Type: AWS::ApiGatewayV2::Integration 180 | Properties: 181 | ApiId: !Ref HttpApi 182 | ConnectionType: INTERNET 183 | IntegrationMethod: POST 184 | IntegrationType: AWS_PROXY 185 | IntegrationUri: !GetAtt LambdaFunction.Arn 186 | PayloadFormatVersion: "2.0" 187 | 188 | HttpApiInvokePolicy: 189 | Type: AWS::IAM::ManagedPolicy 190 | Condition: IamAuthorization 191 | Properties: 192 | Description: !Sub "Allows usage of the HttpApi in ${AWS::StackName}" 193 | PolicyDocument: 194 | Version: 2012-10-17 195 | Statement: 196 | Effect: Allow 197 | Action: execute-api:Invoke 198 | Resource: !Sub "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${HttpApi}/${HttpApiStage}/GET/*" 199 | 200 | Outputs: 201 | 202 | Url: 203 | Value: !Sub "https://${HttpApi}.execute-api.${AWS::Region}.amazonaws.com/" 204 | HttpApiInvokePolicy: 205 | Value: !If 206 | - IamAuthorization 207 | - !Ref HttpApiInvokePolicy 208 | - "" 209 | -------------------------------------------------------------------------------- /lambda/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aws-bill-export", 3 | "version": "0.1.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "aws-bill-export", 9 | "version": "0.1.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "@sparticuz/chromium": "^112.0.2", 13 | "aws-sdk": "^2.814.0", 14 | "https": "^1.0.0", 15 | "puppeteer-core": "^19.8.0", 16 | "request": "^2.88.0", 17 | "request-promise": "^4.2.5", 18 | "winston": "^3.2.1" 19 | } 20 | }, 21 | "node_modules/@puppeteer/browsers": { 22 | "version": "0.5.0", 23 | "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-0.5.0.tgz", 24 | "integrity": "sha512-Uw6oB7VvmPRLE4iKsjuOh8zgDabhNX67dzo8U/BB0f9527qx+4eeUs+korU98OhG5C4ubg7ufBgVi63XYwS6TQ==", 25 | "dependencies": { 26 | "debug": "4.3.4", 27 | "extract-zip": "2.0.1", 28 | "https-proxy-agent": "5.0.1", 29 | "progress": "2.0.3", 30 | "proxy-from-env": "1.1.0", 31 | "tar-fs": "2.1.1", 32 | "unbzip2-stream": "1.4.3", 33 | "yargs": "17.7.1" 34 | }, 35 | "bin": { 36 | "browsers": "lib/cjs/main-cli.js" 37 | }, 38 | "engines": { 39 | "node": ">=14.1.0" 40 | }, 41 | "peerDependencies": { 42 | "typescript": ">= 4.7.4" 43 | }, 44 | "peerDependenciesMeta": { 45 | "typescript": { 46 | "optional": true 47 | } 48 | } 49 | }, 50 | "node_modules/@sparticuz/chromium": { 51 | "version": "112.0.2", 52 | "resolved": "https://registry.npmjs.org/@sparticuz/chromium/-/chromium-112.0.2.tgz", 53 | "integrity": "sha512-tpoY0o4vhrFE4/mXmJF3fcPLKIeKIQxbokfLgZB62rYW7KOIljbQTqCTBARzRXGN/k2+kLvhys1LVv6PWGwWNw==", 54 | "dependencies": { 55 | "follow-redirects": "^1.15.2", 56 | "tar-fs": "^2.1.1" 57 | }, 58 | "engines": { 59 | "node": ">= 14.18.0" 60 | } 61 | }, 62 | "node_modules/@types/node": { 63 | "version": "20.4.1", 64 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", 65 | "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==", 66 | "optional": true 67 | }, 68 | "node_modules/@types/yauzl": { 69 | "version": "2.10.0", 70 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", 71 | "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", 72 | "optional": true, 73 | "dependencies": { 74 | "@types/node": "*" 75 | } 76 | }, 77 | "node_modules/agent-base": { 78 | "version": "6.0.2", 79 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 80 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 81 | "dependencies": { 82 | "debug": "4" 83 | }, 84 | "engines": { 85 | "node": ">= 6.0.0" 86 | } 87 | }, 88 | "node_modules/ajv": { 89 | "version": "6.12.6", 90 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 91 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 92 | "dependencies": { 93 | "fast-deep-equal": "^3.1.1", 94 | "fast-json-stable-stringify": "^2.0.0", 95 | "json-schema-traverse": "^0.4.1", 96 | "uri-js": "^4.2.2" 97 | }, 98 | "funding": { 99 | "type": "github", 100 | "url": "https://github.com/sponsors/epoberezkin" 101 | } 102 | }, 103 | "node_modules/ansi-regex": { 104 | "version": "5.0.1", 105 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 106 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 107 | "engines": { 108 | "node": ">=8" 109 | } 110 | }, 111 | "node_modules/ansi-styles": { 112 | "version": "4.3.0", 113 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 114 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 115 | "dependencies": { 116 | "color-convert": "^2.0.1" 117 | }, 118 | "engines": { 119 | "node": ">=8" 120 | }, 121 | "funding": { 122 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 123 | } 124 | }, 125 | "node_modules/ansi-styles/node_modules/color-convert": { 126 | "version": "2.0.1", 127 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 128 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 129 | "dependencies": { 130 | "color-name": "~1.1.4" 131 | }, 132 | "engines": { 133 | "node": ">=7.0.0" 134 | } 135 | }, 136 | "node_modules/ansi-styles/node_modules/color-name": { 137 | "version": "1.1.4", 138 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 139 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 140 | }, 141 | "node_modules/asn1": { 142 | "version": "0.2.4", 143 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 144 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 145 | "dependencies": { 146 | "safer-buffer": "~2.1.0" 147 | } 148 | }, 149 | "node_modules/assert-plus": { 150 | "version": "1.0.0", 151 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 152 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 153 | "engines": { 154 | "node": ">=0.8" 155 | } 156 | }, 157 | "node_modules/async": { 158 | "version": "2.6.4", 159 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", 160 | "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", 161 | "dependencies": { 162 | "lodash": "^4.17.14" 163 | } 164 | }, 165 | "node_modules/asynckit": { 166 | "version": "0.4.0", 167 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 168 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 169 | }, 170 | "node_modules/available-typed-arrays": { 171 | "version": "1.0.5", 172 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", 173 | "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", 174 | "engines": { 175 | "node": ">= 0.4" 176 | }, 177 | "funding": { 178 | "url": "https://github.com/sponsors/ljharb" 179 | } 180 | }, 181 | "node_modules/aws-sdk": { 182 | "version": "2.1412.0", 183 | "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1412.0.tgz", 184 | "integrity": "sha512-7c+9mActTHZeXhFu/QhNUgy0yQtYX9VwgTO8pMcBsuSuxT1D06QzPS6nc3Cd6/+sK9Ht19jO17PYwbvhisBtuA==", 185 | "dependencies": { 186 | "buffer": "4.9.2", 187 | "events": "1.1.1", 188 | "ieee754": "1.1.13", 189 | "jmespath": "0.16.0", 190 | "querystring": "0.2.0", 191 | "sax": "1.2.1", 192 | "url": "0.10.3", 193 | "util": "^0.12.4", 194 | "uuid": "8.0.0", 195 | "xml2js": "0.5.0" 196 | }, 197 | "engines": { 198 | "node": ">= 10.0.0" 199 | } 200 | }, 201 | "node_modules/aws-sdk/node_modules/uuid": { 202 | "version": "8.0.0", 203 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", 204 | "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==", 205 | "bin": { 206 | "uuid": "dist/bin/uuid" 207 | } 208 | }, 209 | "node_modules/aws-sign2": { 210 | "version": "0.7.0", 211 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 212 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 213 | "engines": { 214 | "node": "*" 215 | } 216 | }, 217 | "node_modules/aws4": { 218 | "version": "1.8.0", 219 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 220 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" 221 | }, 222 | "node_modules/base64-js": { 223 | "version": "1.5.1", 224 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 225 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 226 | "funding": [ 227 | { 228 | "type": "github", 229 | "url": "https://github.com/sponsors/feross" 230 | }, 231 | { 232 | "type": "patreon", 233 | "url": "https://www.patreon.com/feross" 234 | }, 235 | { 236 | "type": "consulting", 237 | "url": "https://feross.org/support" 238 | } 239 | ] 240 | }, 241 | "node_modules/bcrypt-pbkdf": { 242 | "version": "1.0.2", 243 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 244 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 245 | "dependencies": { 246 | "tweetnacl": "^0.14.3" 247 | } 248 | }, 249 | "node_modules/bl": { 250 | "version": "4.1.0", 251 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", 252 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", 253 | "dependencies": { 254 | "buffer": "^5.5.0", 255 | "inherits": "^2.0.4", 256 | "readable-stream": "^3.4.0" 257 | } 258 | }, 259 | "node_modules/bl/node_modules/buffer": { 260 | "version": "5.7.1", 261 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 262 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 263 | "funding": [ 264 | { 265 | "type": "github", 266 | "url": "https://github.com/sponsors/feross" 267 | }, 268 | { 269 | "type": "patreon", 270 | "url": "https://www.patreon.com/feross" 271 | }, 272 | { 273 | "type": "consulting", 274 | "url": "https://feross.org/support" 275 | } 276 | ], 277 | "dependencies": { 278 | "base64-js": "^1.3.1", 279 | "ieee754": "^1.1.13" 280 | } 281 | }, 282 | "node_modules/bl/node_modules/readable-stream": { 283 | "version": "3.6.2", 284 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 285 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 286 | "dependencies": { 287 | "inherits": "^2.0.3", 288 | "string_decoder": "^1.1.1", 289 | "util-deprecate": "^1.0.1" 290 | }, 291 | "engines": { 292 | "node": ">= 6" 293 | } 294 | }, 295 | "node_modules/bluebird": { 296 | "version": "3.7.2", 297 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", 298 | "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" 299 | }, 300 | "node_modules/buffer": { 301 | "version": "4.9.2", 302 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", 303 | "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", 304 | "dependencies": { 305 | "base64-js": "^1.0.2", 306 | "ieee754": "^1.1.4", 307 | "isarray": "^1.0.0" 308 | } 309 | }, 310 | "node_modules/buffer-crc32": { 311 | "version": "0.2.13", 312 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 313 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 314 | "engines": { 315 | "node": "*" 316 | } 317 | }, 318 | "node_modules/call-bind": { 319 | "version": "1.0.2", 320 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 321 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 322 | "dependencies": { 323 | "function-bind": "^1.1.1", 324 | "get-intrinsic": "^1.0.2" 325 | }, 326 | "funding": { 327 | "url": "https://github.com/sponsors/ljharb" 328 | } 329 | }, 330 | "node_modules/caseless": { 331 | "version": "0.12.0", 332 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 333 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 334 | }, 335 | "node_modules/chownr": { 336 | "version": "1.1.4", 337 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 338 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" 339 | }, 340 | "node_modules/chromium-bidi": { 341 | "version": "0.4.7", 342 | "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.7.tgz", 343 | "integrity": "sha512-6+mJuFXwTMU6I3vYLs6IL8A1DyQTPjCfIL971X0aMPVGRbGnNfl6i6Cl0NMbxi2bRYLGESt9T2ZIMRM5PAEcIQ==", 344 | "dependencies": { 345 | "mitt": "3.0.0" 346 | }, 347 | "peerDependencies": { 348 | "devtools-protocol": "*" 349 | } 350 | }, 351 | "node_modules/cliui": { 352 | "version": "8.0.1", 353 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", 354 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", 355 | "dependencies": { 356 | "string-width": "^4.2.0", 357 | "strip-ansi": "^6.0.1", 358 | "wrap-ansi": "^7.0.0" 359 | }, 360 | "engines": { 361 | "node": ">=12" 362 | } 363 | }, 364 | "node_modules/color": { 365 | "version": "3.0.0", 366 | "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", 367 | "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", 368 | "dependencies": { 369 | "color-convert": "^1.9.1", 370 | "color-string": "^1.5.2" 371 | } 372 | }, 373 | "node_modules/color-convert": { 374 | "version": "1.9.3", 375 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 376 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 377 | "dependencies": { 378 | "color-name": "1.1.3" 379 | } 380 | }, 381 | "node_modules/color-name": { 382 | "version": "1.1.3", 383 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 384 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 385 | }, 386 | "node_modules/color-string": { 387 | "version": "1.9.1", 388 | "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 389 | "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 390 | "dependencies": { 391 | "color-name": "^1.0.0", 392 | "simple-swizzle": "^0.2.2" 393 | } 394 | }, 395 | "node_modules/colornames": { 396 | "version": "1.1.1", 397 | "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz", 398 | "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=" 399 | }, 400 | "node_modules/colors": { 401 | "version": "1.4.0", 402 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 403 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 404 | "engines": { 405 | "node": ">=0.1.90" 406 | } 407 | }, 408 | "node_modules/colorspace": { 409 | "version": "1.1.2", 410 | "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", 411 | "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", 412 | "dependencies": { 413 | "color": "3.0.x", 414 | "text-hex": "1.0.x" 415 | } 416 | }, 417 | "node_modules/combined-stream": { 418 | "version": "1.0.8", 419 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 420 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 421 | "dependencies": { 422 | "delayed-stream": "~1.0.0" 423 | }, 424 | "engines": { 425 | "node": ">= 0.8" 426 | } 427 | }, 428 | "node_modules/core-util-is": { 429 | "version": "1.0.2", 430 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 431 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 432 | }, 433 | "node_modules/cross-fetch": { 434 | "version": "3.1.5", 435 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", 436 | "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", 437 | "dependencies": { 438 | "node-fetch": "2.6.7" 439 | } 440 | }, 441 | "node_modules/dashdash": { 442 | "version": "1.14.1", 443 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 444 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 445 | "dependencies": { 446 | "assert-plus": "^1.0.0" 447 | }, 448 | "engines": { 449 | "node": ">=0.10" 450 | } 451 | }, 452 | "node_modules/debug": { 453 | "version": "4.3.4", 454 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 455 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 456 | "dependencies": { 457 | "ms": "2.1.2" 458 | }, 459 | "engines": { 460 | "node": ">=6.0" 461 | }, 462 | "peerDependenciesMeta": { 463 | "supports-color": { 464 | "optional": true 465 | } 466 | } 467 | }, 468 | "node_modules/delayed-stream": { 469 | "version": "1.0.0", 470 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 471 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 472 | "engines": { 473 | "node": ">=0.4.0" 474 | } 475 | }, 476 | "node_modules/devtools-protocol": { 477 | "version": "0.0.1107588", 478 | "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz", 479 | "integrity": "sha512-yIR+pG9x65Xko7bErCUSQaDLrO/P1p3JUzEk7JCU4DowPcGHkTGUGQapcfcLc4qj0UaALwZ+cr0riFgiqpixcg==" 480 | }, 481 | "node_modules/diagnostics": { 482 | "version": "1.1.1", 483 | "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz", 484 | "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==", 485 | "dependencies": { 486 | "colorspace": "1.1.x", 487 | "enabled": "1.0.x", 488 | "kuler": "1.0.x" 489 | } 490 | }, 491 | "node_modules/ecc-jsbn": { 492 | "version": "0.1.2", 493 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 494 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 495 | "dependencies": { 496 | "jsbn": "~0.1.0", 497 | "safer-buffer": "^2.1.0" 498 | } 499 | }, 500 | "node_modules/emoji-regex": { 501 | "version": "8.0.0", 502 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 503 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 504 | }, 505 | "node_modules/enabled": { 506 | "version": "1.0.2", 507 | "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", 508 | "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=", 509 | "dependencies": { 510 | "env-variable": "0.0.x" 511 | } 512 | }, 513 | "node_modules/end-of-stream": { 514 | "version": "1.4.4", 515 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 516 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 517 | "dependencies": { 518 | "once": "^1.4.0" 519 | } 520 | }, 521 | "node_modules/env-variable": { 522 | "version": "0.0.6", 523 | "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz", 524 | "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==" 525 | }, 526 | "node_modules/escalade": { 527 | "version": "3.1.1", 528 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 529 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 530 | "engines": { 531 | "node": ">=6" 532 | } 533 | }, 534 | "node_modules/events": { 535 | "version": "1.1.1", 536 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", 537 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", 538 | "engines": { 539 | "node": ">=0.4.x" 540 | } 541 | }, 542 | "node_modules/extend": { 543 | "version": "3.0.2", 544 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 545 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 546 | }, 547 | "node_modules/extract-zip": { 548 | "version": "2.0.1", 549 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", 550 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 551 | "dependencies": { 552 | "debug": "^4.1.1", 553 | "get-stream": "^5.1.0", 554 | "yauzl": "^2.10.0" 555 | }, 556 | "bin": { 557 | "extract-zip": "cli.js" 558 | }, 559 | "engines": { 560 | "node": ">= 10.17.0" 561 | }, 562 | "optionalDependencies": { 563 | "@types/yauzl": "^2.9.1" 564 | } 565 | }, 566 | "node_modules/extsprintf": { 567 | "version": "1.3.0", 568 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 569 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 570 | "engines": [ 571 | "node >=0.6.0" 572 | ] 573 | }, 574 | "node_modules/fast-deep-equal": { 575 | "version": "3.1.3", 576 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 577 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 578 | }, 579 | "node_modules/fast-json-stable-stringify": { 580 | "version": "2.0.0", 581 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 582 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 583 | }, 584 | "node_modules/fast-safe-stringify": { 585 | "version": "2.0.7", 586 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", 587 | "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" 588 | }, 589 | "node_modules/fd-slicer": { 590 | "version": "1.1.0", 591 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 592 | "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 593 | "dependencies": { 594 | "pend": "~1.2.0" 595 | } 596 | }, 597 | "node_modules/fecha": { 598 | "version": "2.3.3", 599 | "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", 600 | "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" 601 | }, 602 | "node_modules/follow-redirects": { 603 | "version": "1.15.2", 604 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", 605 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", 606 | "funding": [ 607 | { 608 | "type": "individual", 609 | "url": "https://github.com/sponsors/RubenVerborgh" 610 | } 611 | ], 612 | "engines": { 613 | "node": ">=4.0" 614 | }, 615 | "peerDependenciesMeta": { 616 | "debug": { 617 | "optional": true 618 | } 619 | } 620 | }, 621 | "node_modules/for-each": { 622 | "version": "0.3.3", 623 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 624 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 625 | "dependencies": { 626 | "is-callable": "^1.1.3" 627 | } 628 | }, 629 | "node_modules/forever-agent": { 630 | "version": "0.6.1", 631 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 632 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 633 | "engines": { 634 | "node": "*" 635 | } 636 | }, 637 | "node_modules/form-data": { 638 | "version": "2.3.3", 639 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 640 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 641 | "dependencies": { 642 | "asynckit": "^0.4.0", 643 | "combined-stream": "^1.0.6", 644 | "mime-types": "^2.1.12" 645 | }, 646 | "engines": { 647 | "node": ">= 0.12" 648 | } 649 | }, 650 | "node_modules/fs-constants": { 651 | "version": "1.0.0", 652 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 653 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 654 | }, 655 | "node_modules/function-bind": { 656 | "version": "1.1.1", 657 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 658 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 659 | }, 660 | "node_modules/get-caller-file": { 661 | "version": "2.0.5", 662 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 663 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 664 | "engines": { 665 | "node": "6.* || 8.* || >= 10.*" 666 | } 667 | }, 668 | "node_modules/get-intrinsic": { 669 | "version": "1.2.1", 670 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", 671 | "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", 672 | "dependencies": { 673 | "function-bind": "^1.1.1", 674 | "has": "^1.0.3", 675 | "has-proto": "^1.0.1", 676 | "has-symbols": "^1.0.3" 677 | }, 678 | "funding": { 679 | "url": "https://github.com/sponsors/ljharb" 680 | } 681 | }, 682 | "node_modules/get-stream": { 683 | "version": "5.2.0", 684 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 685 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 686 | "dependencies": { 687 | "pump": "^3.0.0" 688 | }, 689 | "engines": { 690 | "node": ">=8" 691 | }, 692 | "funding": { 693 | "url": "https://github.com/sponsors/sindresorhus" 694 | } 695 | }, 696 | "node_modules/getpass": { 697 | "version": "0.1.7", 698 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 699 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 700 | "dependencies": { 701 | "assert-plus": "^1.0.0" 702 | } 703 | }, 704 | "node_modules/gopd": { 705 | "version": "1.0.1", 706 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", 707 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", 708 | "dependencies": { 709 | "get-intrinsic": "^1.1.3" 710 | }, 711 | "funding": { 712 | "url": "https://github.com/sponsors/ljharb" 713 | } 714 | }, 715 | "node_modules/har-schema": { 716 | "version": "2.0.0", 717 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 718 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 719 | "engines": { 720 | "node": ">=4" 721 | } 722 | }, 723 | "node_modules/har-validator": { 724 | "version": "5.1.3", 725 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 726 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 727 | "deprecated": "this library is no longer supported", 728 | "dependencies": { 729 | "ajv": "^6.5.5", 730 | "har-schema": "^2.0.0" 731 | }, 732 | "engines": { 733 | "node": ">=6" 734 | } 735 | }, 736 | "node_modules/has": { 737 | "version": "1.0.3", 738 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 739 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 740 | "dependencies": { 741 | "function-bind": "^1.1.1" 742 | }, 743 | "engines": { 744 | "node": ">= 0.4.0" 745 | } 746 | }, 747 | "node_modules/has-proto": { 748 | "version": "1.0.1", 749 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", 750 | "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", 751 | "engines": { 752 | "node": ">= 0.4" 753 | }, 754 | "funding": { 755 | "url": "https://github.com/sponsors/ljharb" 756 | } 757 | }, 758 | "node_modules/has-symbols": { 759 | "version": "1.0.3", 760 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 761 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 762 | "engines": { 763 | "node": ">= 0.4" 764 | }, 765 | "funding": { 766 | "url": "https://github.com/sponsors/ljharb" 767 | } 768 | }, 769 | "node_modules/has-tostringtag": { 770 | "version": "1.0.0", 771 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 772 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 773 | "dependencies": { 774 | "has-symbols": "^1.0.2" 775 | }, 776 | "engines": { 777 | "node": ">= 0.4" 778 | }, 779 | "funding": { 780 | "url": "https://github.com/sponsors/ljharb" 781 | } 782 | }, 783 | "node_modules/http-signature": { 784 | "version": "1.2.0", 785 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 786 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 787 | "dependencies": { 788 | "assert-plus": "^1.0.0", 789 | "jsprim": "^1.2.2", 790 | "sshpk": "^1.7.0" 791 | }, 792 | "engines": { 793 | "node": ">=0.8", 794 | "npm": ">=1.3.7" 795 | } 796 | }, 797 | "node_modules/https": { 798 | "version": "1.0.0", 799 | "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", 800 | "integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=" 801 | }, 802 | "node_modules/https-proxy-agent": { 803 | "version": "5.0.1", 804 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", 805 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", 806 | "dependencies": { 807 | "agent-base": "6", 808 | "debug": "4" 809 | }, 810 | "engines": { 811 | "node": ">= 6" 812 | } 813 | }, 814 | "node_modules/ieee754": { 815 | "version": "1.1.13", 816 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", 817 | "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" 818 | }, 819 | "node_modules/inherits": { 820 | "version": "2.0.4", 821 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 822 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 823 | }, 824 | "node_modules/is-arguments": { 825 | "version": "1.1.1", 826 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 827 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", 828 | "dependencies": { 829 | "call-bind": "^1.0.2", 830 | "has-tostringtag": "^1.0.0" 831 | }, 832 | "engines": { 833 | "node": ">= 0.4" 834 | }, 835 | "funding": { 836 | "url": "https://github.com/sponsors/ljharb" 837 | } 838 | }, 839 | "node_modules/is-arrayish": { 840 | "version": "0.3.2", 841 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 842 | "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" 843 | }, 844 | "node_modules/is-callable": { 845 | "version": "1.2.7", 846 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 847 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 848 | "engines": { 849 | "node": ">= 0.4" 850 | }, 851 | "funding": { 852 | "url": "https://github.com/sponsors/ljharb" 853 | } 854 | }, 855 | "node_modules/is-fullwidth-code-point": { 856 | "version": "3.0.0", 857 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 858 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 859 | "engines": { 860 | "node": ">=8" 861 | } 862 | }, 863 | "node_modules/is-generator-function": { 864 | "version": "1.0.10", 865 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", 866 | "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", 867 | "dependencies": { 868 | "has-tostringtag": "^1.0.0" 869 | }, 870 | "engines": { 871 | "node": ">= 0.4" 872 | }, 873 | "funding": { 874 | "url": "https://github.com/sponsors/ljharb" 875 | } 876 | }, 877 | "node_modules/is-stream": { 878 | "version": "1.1.0", 879 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 880 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 881 | "engines": { 882 | "node": ">=0.10.0" 883 | } 884 | }, 885 | "node_modules/is-typed-array": { 886 | "version": "1.1.10", 887 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", 888 | "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", 889 | "dependencies": { 890 | "available-typed-arrays": "^1.0.5", 891 | "call-bind": "^1.0.2", 892 | "for-each": "^0.3.3", 893 | "gopd": "^1.0.1", 894 | "has-tostringtag": "^1.0.0" 895 | }, 896 | "engines": { 897 | "node": ">= 0.4" 898 | }, 899 | "funding": { 900 | "url": "https://github.com/sponsors/ljharb" 901 | } 902 | }, 903 | "node_modules/is-typedarray": { 904 | "version": "1.0.0", 905 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 906 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 907 | }, 908 | "node_modules/isarray": { 909 | "version": "1.0.0", 910 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 911 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 912 | }, 913 | "node_modules/isstream": { 914 | "version": "0.1.2", 915 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 916 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 917 | }, 918 | "node_modules/jmespath": { 919 | "version": "0.16.0", 920 | "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", 921 | "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", 922 | "engines": { 923 | "node": ">= 0.6.0" 924 | } 925 | }, 926 | "node_modules/jsbn": { 927 | "version": "0.1.1", 928 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 929 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 930 | }, 931 | "node_modules/json-schema": { 932 | "version": "0.4.0", 933 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", 934 | "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" 935 | }, 936 | "node_modules/json-schema-traverse": { 937 | "version": "0.4.1", 938 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 939 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 940 | }, 941 | "node_modules/json-stringify-safe": { 942 | "version": "5.0.1", 943 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 944 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 945 | }, 946 | "node_modules/jsprim": { 947 | "version": "1.4.2", 948 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", 949 | "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", 950 | "dependencies": { 951 | "assert-plus": "1.0.0", 952 | "extsprintf": "1.3.0", 953 | "json-schema": "0.4.0", 954 | "verror": "1.10.0" 955 | }, 956 | "engines": { 957 | "node": ">=0.6.0" 958 | } 959 | }, 960 | "node_modules/kuler": { 961 | "version": "1.0.1", 962 | "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz", 963 | "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==", 964 | "dependencies": { 965 | "colornames": "^1.1.1" 966 | } 967 | }, 968 | "node_modules/lodash": { 969 | "version": "4.17.21", 970 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 971 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 972 | }, 973 | "node_modules/logform": { 974 | "version": "2.1.2", 975 | "resolved": "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz", 976 | "integrity": "sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==", 977 | "dependencies": { 978 | "colors": "^1.2.1", 979 | "fast-safe-stringify": "^2.0.4", 980 | "fecha": "^2.3.3", 981 | "ms": "^2.1.1", 982 | "triple-beam": "^1.3.0" 983 | } 984 | }, 985 | "node_modules/mime-db": { 986 | "version": "1.40.0", 987 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", 988 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", 989 | "engines": { 990 | "node": ">= 0.6" 991 | } 992 | }, 993 | "node_modules/mime-types": { 994 | "version": "2.1.24", 995 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", 996 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", 997 | "dependencies": { 998 | "mime-db": "1.40.0" 999 | }, 1000 | "engines": { 1001 | "node": ">= 0.6" 1002 | } 1003 | }, 1004 | "node_modules/mitt": { 1005 | "version": "3.0.0", 1006 | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", 1007 | "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==" 1008 | }, 1009 | "node_modules/mkdirp-classic": { 1010 | "version": "0.5.3", 1011 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 1012 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" 1013 | }, 1014 | "node_modules/ms": { 1015 | "version": "2.1.2", 1016 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1017 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1018 | }, 1019 | "node_modules/node-fetch": { 1020 | "version": "2.6.7", 1021 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 1022 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 1023 | "dependencies": { 1024 | "whatwg-url": "^5.0.0" 1025 | }, 1026 | "engines": { 1027 | "node": "4.x || >=6.0.0" 1028 | }, 1029 | "peerDependencies": { 1030 | "encoding": "^0.1.0" 1031 | }, 1032 | "peerDependenciesMeta": { 1033 | "encoding": { 1034 | "optional": true 1035 | } 1036 | } 1037 | }, 1038 | "node_modules/oauth-sign": { 1039 | "version": "0.9.0", 1040 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 1041 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 1042 | "engines": { 1043 | "node": "*" 1044 | } 1045 | }, 1046 | "node_modules/once": { 1047 | "version": "1.4.0", 1048 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1049 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1050 | "dependencies": { 1051 | "wrappy": "1" 1052 | } 1053 | }, 1054 | "node_modules/one-time": { 1055 | "version": "0.0.4", 1056 | "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz", 1057 | "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=" 1058 | }, 1059 | "node_modules/pend": { 1060 | "version": "1.2.0", 1061 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 1062 | "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" 1063 | }, 1064 | "node_modules/performance-now": { 1065 | "version": "2.1.0", 1066 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 1067 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 1068 | }, 1069 | "node_modules/process-nextick-args": { 1070 | "version": "2.0.1", 1071 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1072 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 1073 | }, 1074 | "node_modules/progress": { 1075 | "version": "2.0.3", 1076 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1077 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 1078 | "engines": { 1079 | "node": ">=0.4.0" 1080 | } 1081 | }, 1082 | "node_modules/proxy-from-env": { 1083 | "version": "1.1.0", 1084 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 1085 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 1086 | }, 1087 | "node_modules/psl": { 1088 | "version": "1.1.31", 1089 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", 1090 | "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" 1091 | }, 1092 | "node_modules/pump": { 1093 | "version": "3.0.0", 1094 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1095 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1096 | "dependencies": { 1097 | "end-of-stream": "^1.1.0", 1098 | "once": "^1.3.1" 1099 | } 1100 | }, 1101 | "node_modules/punycode": { 1102 | "version": "1.3.2", 1103 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 1104 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" 1105 | }, 1106 | "node_modules/puppeteer-core": { 1107 | "version": "19.11.1", 1108 | "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.11.1.tgz", 1109 | "integrity": "sha512-qcuC2Uf0Fwdj9wNtaTZ2OvYRraXpAK+puwwVW8ofOhOgLPZyz1c68tsorfIZyCUOpyBisjr+xByu7BMbEYMepA==", 1110 | "dependencies": { 1111 | "@puppeteer/browsers": "0.5.0", 1112 | "chromium-bidi": "0.4.7", 1113 | "cross-fetch": "3.1.5", 1114 | "debug": "4.3.4", 1115 | "devtools-protocol": "0.0.1107588", 1116 | "extract-zip": "2.0.1", 1117 | "https-proxy-agent": "5.0.1", 1118 | "proxy-from-env": "1.1.0", 1119 | "tar-fs": "2.1.1", 1120 | "unbzip2-stream": "1.4.3", 1121 | "ws": "8.13.0" 1122 | }, 1123 | "engines": { 1124 | "node": ">=14.14.0" 1125 | }, 1126 | "peerDependencies": { 1127 | "typescript": ">= 4.7.4" 1128 | }, 1129 | "peerDependenciesMeta": { 1130 | "typescript": { 1131 | "optional": true 1132 | } 1133 | } 1134 | }, 1135 | "node_modules/qs": { 1136 | "version": "6.5.3", 1137 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", 1138 | "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", 1139 | "engines": { 1140 | "node": ">=0.6" 1141 | } 1142 | }, 1143 | "node_modules/querystring": { 1144 | "version": "0.2.0", 1145 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 1146 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 1147 | "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", 1148 | "engines": { 1149 | "node": ">=0.4.x" 1150 | } 1151 | }, 1152 | "node_modules/readable-stream": { 1153 | "version": "2.3.7", 1154 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1155 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1156 | "dependencies": { 1157 | "core-util-is": "~1.0.0", 1158 | "inherits": "~2.0.3", 1159 | "isarray": "~1.0.0", 1160 | "process-nextick-args": "~2.0.0", 1161 | "safe-buffer": "~5.1.1", 1162 | "string_decoder": "~1.1.1", 1163 | "util-deprecate": "~1.0.1" 1164 | } 1165 | }, 1166 | "node_modules/request": { 1167 | "version": "2.88.2", 1168 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", 1169 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", 1170 | "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", 1171 | "dependencies": { 1172 | "aws-sign2": "~0.7.0", 1173 | "aws4": "^1.8.0", 1174 | "caseless": "~0.12.0", 1175 | "combined-stream": "~1.0.6", 1176 | "extend": "~3.0.2", 1177 | "forever-agent": "~0.6.1", 1178 | "form-data": "~2.3.2", 1179 | "har-validator": "~5.1.3", 1180 | "http-signature": "~1.2.0", 1181 | "is-typedarray": "~1.0.0", 1182 | "isstream": "~0.1.2", 1183 | "json-stringify-safe": "~5.0.1", 1184 | "mime-types": "~2.1.19", 1185 | "oauth-sign": "~0.9.0", 1186 | "performance-now": "^2.1.0", 1187 | "qs": "~6.5.2", 1188 | "safe-buffer": "^5.1.2", 1189 | "tough-cookie": "~2.5.0", 1190 | "tunnel-agent": "^0.6.0", 1191 | "uuid": "^3.3.2" 1192 | }, 1193 | "engines": { 1194 | "node": ">= 6" 1195 | } 1196 | }, 1197 | "node_modules/request-promise": { 1198 | "version": "4.2.6", 1199 | "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz", 1200 | "integrity": "sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==", 1201 | "deprecated": "request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", 1202 | "dependencies": { 1203 | "bluebird": "^3.5.0", 1204 | "request-promise-core": "1.1.4", 1205 | "stealthy-require": "^1.1.1", 1206 | "tough-cookie": "^2.3.3" 1207 | }, 1208 | "engines": { 1209 | "node": ">=0.10.0" 1210 | }, 1211 | "peerDependencies": { 1212 | "request": "^2.34" 1213 | } 1214 | }, 1215 | "node_modules/request-promise-core": { 1216 | "version": "1.1.4", 1217 | "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", 1218 | "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", 1219 | "dependencies": { 1220 | "lodash": "^4.17.19" 1221 | }, 1222 | "engines": { 1223 | "node": ">=0.10.0" 1224 | }, 1225 | "peerDependencies": { 1226 | "request": "^2.34" 1227 | } 1228 | }, 1229 | "node_modules/require-directory": { 1230 | "version": "2.1.1", 1231 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1232 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", 1233 | "engines": { 1234 | "node": ">=0.10.0" 1235 | } 1236 | }, 1237 | "node_modules/safe-buffer": { 1238 | "version": "5.1.2", 1239 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1240 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1241 | }, 1242 | "node_modules/safer-buffer": { 1243 | "version": "2.1.2", 1244 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1245 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1246 | }, 1247 | "node_modules/sax": { 1248 | "version": "1.2.1", 1249 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", 1250 | "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==" 1251 | }, 1252 | "node_modules/simple-swizzle": { 1253 | "version": "0.2.2", 1254 | "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 1255 | "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", 1256 | "dependencies": { 1257 | "is-arrayish": "^0.3.1" 1258 | } 1259 | }, 1260 | "node_modules/sshpk": { 1261 | "version": "1.16.1", 1262 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 1263 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 1264 | "dependencies": { 1265 | "asn1": "~0.2.3", 1266 | "assert-plus": "^1.0.0", 1267 | "bcrypt-pbkdf": "^1.0.0", 1268 | "dashdash": "^1.12.0", 1269 | "ecc-jsbn": "~0.1.1", 1270 | "getpass": "^0.1.1", 1271 | "jsbn": "~0.1.0", 1272 | "safer-buffer": "^2.0.2", 1273 | "tweetnacl": "~0.14.0" 1274 | }, 1275 | "bin": { 1276 | "sshpk-conv": "bin/sshpk-conv", 1277 | "sshpk-sign": "bin/sshpk-sign", 1278 | "sshpk-verify": "bin/sshpk-verify" 1279 | }, 1280 | "engines": { 1281 | "node": ">=0.10.0" 1282 | } 1283 | }, 1284 | "node_modules/stack-trace": { 1285 | "version": "0.0.10", 1286 | "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", 1287 | "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", 1288 | "engines": { 1289 | "node": "*" 1290 | } 1291 | }, 1292 | "node_modules/stealthy-require": { 1293 | "version": "1.1.1", 1294 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", 1295 | "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", 1296 | "engines": { 1297 | "node": ">=0.10.0" 1298 | } 1299 | }, 1300 | "node_modules/string_decoder": { 1301 | "version": "1.1.1", 1302 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1303 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1304 | "dependencies": { 1305 | "safe-buffer": "~5.1.0" 1306 | } 1307 | }, 1308 | "node_modules/string-width": { 1309 | "version": "4.2.3", 1310 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1311 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1312 | "dependencies": { 1313 | "emoji-regex": "^8.0.0", 1314 | "is-fullwidth-code-point": "^3.0.0", 1315 | "strip-ansi": "^6.0.1" 1316 | }, 1317 | "engines": { 1318 | "node": ">=8" 1319 | } 1320 | }, 1321 | "node_modules/strip-ansi": { 1322 | "version": "6.0.1", 1323 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1324 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1325 | "dependencies": { 1326 | "ansi-regex": "^5.0.1" 1327 | }, 1328 | "engines": { 1329 | "node": ">=8" 1330 | } 1331 | }, 1332 | "node_modules/tar-fs": { 1333 | "version": "2.1.1", 1334 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", 1335 | "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", 1336 | "dependencies": { 1337 | "chownr": "^1.1.1", 1338 | "mkdirp-classic": "^0.5.2", 1339 | "pump": "^3.0.0", 1340 | "tar-stream": "^2.1.4" 1341 | } 1342 | }, 1343 | "node_modules/tar-stream": { 1344 | "version": "2.2.0", 1345 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", 1346 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 1347 | "dependencies": { 1348 | "bl": "^4.0.3", 1349 | "end-of-stream": "^1.4.1", 1350 | "fs-constants": "^1.0.0", 1351 | "inherits": "^2.0.3", 1352 | "readable-stream": "^3.1.1" 1353 | }, 1354 | "engines": { 1355 | "node": ">=6" 1356 | } 1357 | }, 1358 | "node_modules/tar-stream/node_modules/readable-stream": { 1359 | "version": "3.6.2", 1360 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 1361 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 1362 | "dependencies": { 1363 | "inherits": "^2.0.3", 1364 | "string_decoder": "^1.1.1", 1365 | "util-deprecate": "^1.0.1" 1366 | }, 1367 | "engines": { 1368 | "node": ">= 6" 1369 | } 1370 | }, 1371 | "node_modules/text-hex": { 1372 | "version": "1.0.0", 1373 | "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", 1374 | "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" 1375 | }, 1376 | "node_modules/through": { 1377 | "version": "2.3.8", 1378 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1379 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" 1380 | }, 1381 | "node_modules/tough-cookie": { 1382 | "version": "2.5.0", 1383 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 1384 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 1385 | "dependencies": { 1386 | "psl": "^1.1.28", 1387 | "punycode": "^2.1.1" 1388 | }, 1389 | "engines": { 1390 | "node": ">=0.8" 1391 | } 1392 | }, 1393 | "node_modules/tough-cookie/node_modules/punycode": { 1394 | "version": "2.1.1", 1395 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1396 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1397 | "engines": { 1398 | "node": ">=6" 1399 | } 1400 | }, 1401 | "node_modules/tr46": { 1402 | "version": "0.0.3", 1403 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 1404 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 1405 | }, 1406 | "node_modules/triple-beam": { 1407 | "version": "1.3.0", 1408 | "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", 1409 | "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" 1410 | }, 1411 | "node_modules/tunnel-agent": { 1412 | "version": "0.6.0", 1413 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1414 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1415 | "dependencies": { 1416 | "safe-buffer": "^5.0.1" 1417 | }, 1418 | "engines": { 1419 | "node": "*" 1420 | } 1421 | }, 1422 | "node_modules/tweetnacl": { 1423 | "version": "0.14.5", 1424 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 1425 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 1426 | }, 1427 | "node_modules/unbzip2-stream": { 1428 | "version": "1.4.3", 1429 | "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", 1430 | "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", 1431 | "dependencies": { 1432 | "buffer": "^5.2.1", 1433 | "through": "^2.3.8" 1434 | } 1435 | }, 1436 | "node_modules/unbzip2-stream/node_modules/buffer": { 1437 | "version": "5.7.1", 1438 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 1439 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 1440 | "funding": [ 1441 | { 1442 | "type": "github", 1443 | "url": "https://github.com/sponsors/feross" 1444 | }, 1445 | { 1446 | "type": "patreon", 1447 | "url": "https://www.patreon.com/feross" 1448 | }, 1449 | { 1450 | "type": "consulting", 1451 | "url": "https://feross.org/support" 1452 | } 1453 | ], 1454 | "dependencies": { 1455 | "base64-js": "^1.3.1", 1456 | "ieee754": "^1.1.13" 1457 | } 1458 | }, 1459 | "node_modules/uri-js": { 1460 | "version": "4.2.2", 1461 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1462 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 1463 | "dependencies": { 1464 | "punycode": "^2.1.0" 1465 | } 1466 | }, 1467 | "node_modules/uri-js/node_modules/punycode": { 1468 | "version": "2.1.1", 1469 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1470 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1471 | "engines": { 1472 | "node": ">=6" 1473 | } 1474 | }, 1475 | "node_modules/url": { 1476 | "version": "0.10.3", 1477 | "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", 1478 | "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", 1479 | "dependencies": { 1480 | "punycode": "1.3.2", 1481 | "querystring": "0.2.0" 1482 | } 1483 | }, 1484 | "node_modules/util": { 1485 | "version": "0.12.5", 1486 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", 1487 | "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", 1488 | "dependencies": { 1489 | "inherits": "^2.0.3", 1490 | "is-arguments": "^1.0.4", 1491 | "is-generator-function": "^1.0.7", 1492 | "is-typed-array": "^1.1.3", 1493 | "which-typed-array": "^1.1.2" 1494 | } 1495 | }, 1496 | "node_modules/util-deprecate": { 1497 | "version": "1.0.2", 1498 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1499 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1500 | }, 1501 | "node_modules/uuid": { 1502 | "version": "3.3.2", 1503 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 1504 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", 1505 | "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", 1506 | "bin": { 1507 | "uuid": "bin/uuid" 1508 | } 1509 | }, 1510 | "node_modules/verror": { 1511 | "version": "1.10.0", 1512 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 1513 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 1514 | "engines": [ 1515 | "node >=0.6.0" 1516 | ], 1517 | "dependencies": { 1518 | "assert-plus": "^1.0.0", 1519 | "core-util-is": "1.0.2", 1520 | "extsprintf": "^1.2.0" 1521 | } 1522 | }, 1523 | "node_modules/webidl-conversions": { 1524 | "version": "3.0.1", 1525 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 1526 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 1527 | }, 1528 | "node_modules/whatwg-url": { 1529 | "version": "5.0.0", 1530 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 1531 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 1532 | "dependencies": { 1533 | "tr46": "~0.0.3", 1534 | "webidl-conversions": "^3.0.0" 1535 | } 1536 | }, 1537 | "node_modules/which-typed-array": { 1538 | "version": "1.1.9", 1539 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", 1540 | "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", 1541 | "dependencies": { 1542 | "available-typed-arrays": "^1.0.5", 1543 | "call-bind": "^1.0.2", 1544 | "for-each": "^0.3.3", 1545 | "gopd": "^1.0.1", 1546 | "has-tostringtag": "^1.0.0", 1547 | "is-typed-array": "^1.1.10" 1548 | }, 1549 | "engines": { 1550 | "node": ">= 0.4" 1551 | }, 1552 | "funding": { 1553 | "url": "https://github.com/sponsors/ljharb" 1554 | } 1555 | }, 1556 | "node_modules/winston": { 1557 | "version": "3.2.1", 1558 | "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz", 1559 | "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==", 1560 | "dependencies": { 1561 | "async": "^2.6.1", 1562 | "diagnostics": "^1.1.1", 1563 | "is-stream": "^1.1.0", 1564 | "logform": "^2.1.1", 1565 | "one-time": "0.0.4", 1566 | "readable-stream": "^3.1.1", 1567 | "stack-trace": "0.0.x", 1568 | "triple-beam": "^1.3.0", 1569 | "winston-transport": "^4.3.0" 1570 | }, 1571 | "engines": { 1572 | "node": ">= 6.4.0" 1573 | } 1574 | }, 1575 | "node_modules/winston-transport": { 1576 | "version": "4.3.0", 1577 | "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz", 1578 | "integrity": "sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==", 1579 | "dependencies": { 1580 | "readable-stream": "^2.3.6", 1581 | "triple-beam": "^1.2.0" 1582 | }, 1583 | "engines": { 1584 | "node": ">= 6.4.0" 1585 | } 1586 | }, 1587 | "node_modules/winston/node_modules/readable-stream": { 1588 | "version": "3.6.0", 1589 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1590 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1591 | "dependencies": { 1592 | "inherits": "^2.0.3", 1593 | "string_decoder": "^1.1.1", 1594 | "util-deprecate": "^1.0.1" 1595 | }, 1596 | "engines": { 1597 | "node": ">= 6" 1598 | } 1599 | }, 1600 | "node_modules/wrap-ansi": { 1601 | "version": "7.0.0", 1602 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 1603 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1604 | "dependencies": { 1605 | "ansi-styles": "^4.0.0", 1606 | "string-width": "^4.1.0", 1607 | "strip-ansi": "^6.0.0" 1608 | }, 1609 | "engines": { 1610 | "node": ">=10" 1611 | }, 1612 | "funding": { 1613 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1614 | } 1615 | }, 1616 | "node_modules/wrappy": { 1617 | "version": "1.0.2", 1618 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1619 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1620 | }, 1621 | "node_modules/ws": { 1622 | "version": "8.13.0", 1623 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", 1624 | "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", 1625 | "engines": { 1626 | "node": ">=10.0.0" 1627 | }, 1628 | "peerDependencies": { 1629 | "bufferutil": "^4.0.1", 1630 | "utf-8-validate": ">=5.0.2" 1631 | }, 1632 | "peerDependenciesMeta": { 1633 | "bufferutil": { 1634 | "optional": true 1635 | }, 1636 | "utf-8-validate": { 1637 | "optional": true 1638 | } 1639 | } 1640 | }, 1641 | "node_modules/xml2js": { 1642 | "version": "0.5.0", 1643 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", 1644 | "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", 1645 | "dependencies": { 1646 | "sax": ">=0.6.0", 1647 | "xmlbuilder": "~11.0.0" 1648 | }, 1649 | "engines": { 1650 | "node": ">=4.0.0" 1651 | } 1652 | }, 1653 | "node_modules/xmlbuilder": { 1654 | "version": "11.0.1", 1655 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 1656 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", 1657 | "engines": { 1658 | "node": ">=4.0" 1659 | } 1660 | }, 1661 | "node_modules/y18n": { 1662 | "version": "5.0.8", 1663 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 1664 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", 1665 | "engines": { 1666 | "node": ">=10" 1667 | } 1668 | }, 1669 | "node_modules/yargs": { 1670 | "version": "17.7.1", 1671 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", 1672 | "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", 1673 | "dependencies": { 1674 | "cliui": "^8.0.1", 1675 | "escalade": "^3.1.1", 1676 | "get-caller-file": "^2.0.5", 1677 | "require-directory": "^2.1.1", 1678 | "string-width": "^4.2.3", 1679 | "y18n": "^5.0.5", 1680 | "yargs-parser": "^21.1.1" 1681 | }, 1682 | "engines": { 1683 | "node": ">=12" 1684 | } 1685 | }, 1686 | "node_modules/yargs-parser": { 1687 | "version": "21.1.1", 1688 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", 1689 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", 1690 | "engines": { 1691 | "node": ">=12" 1692 | } 1693 | }, 1694 | "node_modules/yauzl": { 1695 | "version": "2.10.0", 1696 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 1697 | "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 1698 | "dependencies": { 1699 | "buffer-crc32": "~0.2.3", 1700 | "fd-slicer": "~1.1.0" 1701 | } 1702 | } 1703 | } 1704 | } 1705 | --------------------------------------------------------------------------------