├── .github └── workflows │ └── publish.yml ├── .gitignore ├── .npmignore ├── README.md ├── lib ├── builder.ts ├── function.ts ├── index.ts └── util.ts ├── package-lock.json └── package.json /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Publish CDK packages 3 | 4 | on: 5 | push: 6 | tags: 7 | - "v*" 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - name: Get the version 15 | id: get_version 16 | run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/v/} 17 | 18 | - name: Checkout code 19 | uses: actions/checkout@v1 20 | with: 21 | fetch-depth: 1 22 | 23 | - name: Publish packages 24 | uses: udondan/jsii-publish@v0.8.3 25 | with: 26 | VERSION: ${{ steps.get_version.outputs.VERSION }} 27 | BUILD_SOURCE: true 28 | BUILD_PACKAGES: true 29 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 30 | PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} 31 | NUGET_TOKEN: ${{ secrets.NUGET_TOKEN }} 32 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 33 | GITHUB_REPOSITORY: ${{ github.repository }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.js 2 | tsconfig.json 3 | tslint.json 4 | *.js.map 5 | *.d.ts 6 | *.generated.ts 7 | dist 8 | lib/generated/resources.ts 9 | .jsii 10 | 11 | .LAST_BUILD 12 | .nyc_output 13 | coverage 14 | nyc.config.js 15 | .LAST_PACKAGE 16 | *.snk 17 | 18 | node_modules -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # Don't include original .ts files when doing `npm pack` 2 | *.ts 3 | !*.d.ts 4 | coverage 5 | .nyc_output 6 | *.tgz 7 | 8 | dist 9 | example 10 | .LAST_PACKAGE 11 | .LAST_BUILD 12 | !*.js 13 | 14 | # Include .jsii 15 | !.jsii 16 | 17 | *.snk 18 | 19 | *.tsbuildinfo 20 | 21 | tsconfig.json -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![GitHub version](https://badge.fury.io/gh/RafalWilinski%2Faws-lambda-golang-cdk.svg)](https://badge.fury.io/gh/RafalWilinski%2Faws-lambda-golang-cdk) 2 | [![npm version](https://badge.fury.io/js/aws-lambda-golang.svg)](https://badge.fury.io/js/aws-lambda-golang) 3 | [![NuGet version](https://badge.fury.io/nu/rwilinski.GolangFunction.svg)](https://badge.fury.io/nu/rwilinski.GolangFunction) 4 | [![PyPI version](https://badge.fury.io/py/rwilinski.aws-lambda-golang.svg)](https://badge.fury.io/py/rwilinski.aws-lambda-golang) 5 | 6 | ## Amazon Lambda Golang Construct 7 | 8 | This library provides constructs for Golang (Go 1.11 and 1.12 because of go modules) Lambda functions. 9 | 10 | [Why? Read this blogpost](https://www.rwilinski.me/blog/golang-and-cdk/) 11 | 12 | ### Installing 13 | In Typescript: 14 | 15 | ```sh 16 | npm i aws-lambda-golang --save 17 | # or using yarn 18 | yarn add aws-lambda-golang 19 | ``` 20 | 21 | In .NET: 22 | ```sh 23 | dotnet add package rwilinski.GolangFunction --version 0.1.0 24 | ``` 25 | 26 | In Python using Pip: 27 | ```sh 28 | pip install rwilinski.aws-lambda-golang 29 | ``` 30 | 31 | In Java using Maven, add this to `pom.xml`: 32 | ```xml 33 | 34 | com.rwilinski 35 | aws-lambda-golang 36 | 0.1.1 37 | 38 | ``` 39 | 40 | ### Usage 41 | In Typescript: 42 | 43 | ```ts 44 | import * as golang from 'aws-lambda-golang'; // Import aws-lambda-golang module 45 | import * as cdk from '@aws-cdk/core'; 46 | import * as apigateway from '@aws-cdk/aws-apigateway'; 47 | 48 | export class TestStackStack extends cdk.Stack { 49 | constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { 50 | super(scope, id, props); 51 | 52 | // Define function. Source code should be located in ./test-function/main.go 53 | const backend = new golang.GolangFunction(this, 'test-function'); 54 | const api = new apigateway.LambdaRestApi(this, 'myapi', { 55 | handler: backend, 56 | proxy: false, 57 | }); 58 | 59 | const items = api.root.addResource('items'); 60 | items.addMethod('GET'); 61 | } 62 | } 63 | ``` 64 | 65 | By default, the construct will use the name of the defining file and the construct's id to look 66 | up the entry file: 67 | ``` 68 | . 69 | ├── stack.ts # defines a 'GolangFunction' with 'my-handler' as id 70 | ├── stack/my-handler/main.go 71 | ├── stack/my-handler/go.mod 72 | ├── stack/my-handler/go.sum 73 | ``` 74 | 75 | The simplest Golang function (`stack/my-handler/main.go`): 76 | 77 | ```go 78 | package main 79 | 80 | import ( 81 | "fmt" 82 | "net/http" 83 | "github.com/aws/aws-lambda-go/events" 84 | "github.com/aws/aws-lambda-go/lambda" 85 | ) 86 | 87 | func handler(req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { 88 | fmt.Println("Received body: ", req.Body) 89 | 90 | return events.APIGatewayProxyResponse{ 91 | StatusCode: http.StatusOK, 92 | Body: "Hello from CDK GolangFunction!", 93 | }, nil 94 | } 95 | 96 | func main() { 97 | lambda.Start(handler) 98 | } 99 | ``` 100 | 101 | ### Configuring build 102 | 103 | The `GolangFunction` construct exposes some options via properties: `buildCmd`, `buildDir`, `entry` and `handler`, `extraEnv`. 104 | 105 | By default, your Golang code is compiled using `go build -ldflags="-s -w"` command with `GOOS=linux` env variable. 106 | 107 | ## 🤝 Contributing 108 | 109 | Contributions, issues and feature requests are welcome!
Feel free to check [issues page](https://github.com/RafalWilinski/aws-lambda-golang-cdk/issues). 110 | 111 | Project sponsored by [Dynobase](https://dynobase.dev) 112 | -------------------------------------------------------------------------------- /lib/builder.ts: -------------------------------------------------------------------------------- 1 | import { spawnSync } from 'child_process'; 2 | import * as path from 'path'; 3 | 4 | /** 5 | * Builder options 6 | */ 7 | export interface BuilderOptions { 8 | /** 9 | * Entry file 10 | */ 11 | readonly entry: string; 12 | 13 | /** 14 | * The output directory 15 | */ 16 | readonly outDir: string; 17 | 18 | /** 19 | * The output directory 20 | */ 21 | readonly buildCmd: string; 22 | 23 | /** 24 | * The handler name, also name of compiled file, defaults to `main` 25 | */ 26 | readonly handler: string; 27 | 28 | /** 29 | * Additional env variables 30 | */ 31 | readonly extraEnv: string; 32 | } 33 | 34 | /** 35 | * Builder 36 | */ 37 | export class Builder { 38 | private readonly entry: string; 39 | private readonly outDir: string; 40 | private readonly buildCmd: string; 41 | private readonly handler: string; 42 | private readonly extraEnv: any; 43 | 44 | constructor(options: BuilderOptions) { 45 | this.entry = options.entry; 46 | this.outDir = options.outDir; 47 | this.buildCmd = options.buildCmd; 48 | this.handler = options.handler; 49 | this.extraEnv = options.extraEnv; 50 | } 51 | 52 | public build(): void { 53 | try { 54 | const cmd = `${this.buildCmd} -o ${this.outDir}/${this.handler} ${this.entry}`; 55 | const cwd = path.dirname(this.entry); 56 | 57 | const goBuild = spawnSync(cmd, { 58 | env: { ...process.env, GOOS: 'linux', ...this.extraEnv }, 59 | shell: true, 60 | cwd, 61 | }); 62 | 63 | if (goBuild.error) { 64 | throw goBuild.error; 65 | } 66 | 67 | if (goBuild.status !== 0) { 68 | throw new Error(goBuild.stdout.toString().trim()); 69 | } 70 | } catch (err) { 71 | throw new Error(`Failed to compile Go function at ${this.entry}: ${err}`); 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /lib/function.ts: -------------------------------------------------------------------------------- 1 | import * as lambda from '@aws-cdk/aws-lambda'; 2 | import * as cdk from '@aws-cdk/core'; 3 | import * as crypto from 'crypto'; 4 | import * as fs from 'fs'; 5 | import * as path from 'path'; 6 | import { Builder } from './builder'; 7 | import { parseStackTrace } from './util'; 8 | 9 | /** 10 | * Properties for a GolangFunction 11 | */ 12 | export interface GolangFunctionProps extends lambda.FunctionOptions { 13 | /** 14 | * Path to the entry Golang source file. 15 | * 16 | * @default - Derived from the name of the defining file and the construct's id. 17 | * If the `GolangFunction` is defined in `stack.ts` with `my-handler` as id 18 | * (`new GolangFunction(this, 'my-handler')`), the construct will look at `stack/my-handler/main.go` 19 | */ 20 | readonly entry?: string; 21 | 22 | /** 23 | * The name of the exported handler in the entry file. 24 | * 25 | * @default main 26 | */ 27 | readonly handler?: string; 28 | 29 | /** 30 | * The build directory 31 | * 32 | * @default - `.build` in the entry file directory 33 | */ 34 | readonly buildDir?: string; 35 | 36 | /** 37 | * The build command 38 | * 39 | * @default - `go build -ldflags="-s -w"` 40 | */ 41 | readonly buildCmd?: string; 42 | 43 | /** 44 | * Additional environment variables 45 | * 46 | * @default - `{ GOOS: 'linux' }` 47 | */ 48 | readonly extraEnv?: any; 49 | } 50 | 51 | /** 52 | * A Node.js Lambda function bundled using Parcel 53 | */ 54 | export class GolangFunction extends lambda.Function { 55 | constructor(scope: cdk.Construct, id: string, props: GolangFunctionProps = {}) { 56 | const entry = findEntry(id, props.entry); 57 | const handler = props.handler || 'main'; 58 | const buildCmd = props.buildCmd || 'go build -ldflags="-s -w"'; 59 | const buildDir = props.buildDir || path.join(path.dirname(entry), '.build'); 60 | const handlerDir = path.join(buildDir, crypto.createHash('sha256').update(entry).digest('hex')); 61 | const runtime = lambda.Runtime.GO_1_X; 62 | 63 | // Build with go 64 | const builder = new Builder({ 65 | entry, 66 | outDir: handlerDir, 67 | handler, 68 | buildCmd, 69 | extraEnv: props.extraEnv || {}, 70 | }); 71 | builder.build(); 72 | 73 | super(scope, id, { 74 | ...props, 75 | runtime, 76 | code: lambda.Code.fromAsset(handlerDir), 77 | handler: handler, 78 | }); 79 | } 80 | } 81 | 82 | /** 83 | * Searches for an entry file. Preference order is the following: 84 | * 1. Given entry file 85 | * 2. A .go file named as the defining file with id as suffix (defining-file.id.go) 86 | */ 87 | function findEntry(id: string, entry?: string): string { 88 | if (entry) { 89 | if (!/\.(go)$/.test(entry)) { 90 | throw new Error('Only Golang entry files are supported.'); 91 | } 92 | 93 | entry = path.join(process.cwd(), path.sep, entry) 94 | 95 | if (!fs.existsSync(entry)) { 96 | throw new Error(`Cannot find entry file at ${entry}`); 97 | } 98 | return entry; 99 | } 100 | 101 | const definingFile = findDefiningFile(); 102 | const libDir = path.join(definingFile, '..'); 103 | const goHandlerFile = path.join(libDir, `/${id}/main.go`); 104 | 105 | if (fs.existsSync(goHandlerFile)) { 106 | return goHandlerFile; 107 | } 108 | 109 | throw new Error('Cannot find entry file.'); 110 | } 111 | 112 | /** 113 | * Finds the name of the file where the `GolangFunction` is defined 114 | */ 115 | function findDefiningFile(): string { 116 | const stackTrace = parseStackTrace(); 117 | const functionIndex = stackTrace.findIndex((s) => /GolangFunction/.test(s.methodName || '')); 118 | 119 | if (functionIndex === -1 || !stackTrace[functionIndex + 1]) { 120 | throw new Error('Cannot find defining file.'); 121 | } 122 | 123 | return stackTrace[functionIndex + 1].file; 124 | } 125 | -------------------------------------------------------------------------------- /lib/index.ts: -------------------------------------------------------------------------------- 1 | export * from './function'; 2 | -------------------------------------------------------------------------------- /lib/util.ts: -------------------------------------------------------------------------------- 1 | // From https://github.com/errwischt/stacktrace-parser/blob/master/src/stack-trace-parser.js 2 | const STACK_RE = /^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i; 3 | 4 | /** 5 | * A parsed stack trace line 6 | */ 7 | export interface StackTrace { 8 | readonly file: string; 9 | readonly methodName?: string; 10 | readonly lineNumber: number; 11 | readonly column: number; 12 | } 13 | 14 | /** 15 | * Parses the stack trace of an error 16 | */ 17 | export function parseStackTrace(error?: Error): StackTrace[] { 18 | const err = error || new Error(); 19 | 20 | if (!err.stack) { 21 | return []; 22 | } 23 | 24 | const lines = err.stack.split('\n'); 25 | 26 | const stackTrace: StackTrace[] = []; 27 | 28 | for (const line of lines) { 29 | const results = STACK_RE.exec(line); 30 | if (results) { 31 | stackTrace.push({ 32 | file: results[2], 33 | methodName: results[1], 34 | lineNumber: parseInt(results[3], 10), 35 | column: parseInt(results[4], 10), 36 | }); 37 | } 38 | } 39 | 40 | return stackTrace; 41 | } 42 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aws-lambda-golang", 3 | "version": "0.1.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@aws-cdk/assert": { 8 | "version": "1.43.0", 9 | "resolved": "https://registry.npmjs.org/@aws-cdk/assert/-/assert-1.43.0.tgz", 10 | "integrity": "sha512-QwUH3oDOroMKBNzfWc0d2ohdr1UD16mReFgcqEk49VGXM6qWGCuS0i9K2bl3RBP1sxFuk98rpU7Fbx/DzKK2Tw==", 11 | "dev": true, 12 | "requires": { 13 | "@aws-cdk/cloud-assembly-schema": "1.43.0", 14 | "@aws-cdk/cloudformation-diff": "1.43.0", 15 | "@aws-cdk/core": "1.43.0", 16 | "@aws-cdk/cx-api": "1.43.0", 17 | "constructs": "^3.0.2" 18 | }, 19 | "dependencies": { 20 | "constructs": { 21 | "version": "3.0.3", 22 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 23 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==", 24 | "dev": true 25 | } 26 | } 27 | }, 28 | "@aws-cdk/assets": { 29 | "version": "1.43.0", 30 | "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.43.0.tgz", 31 | "integrity": "sha512-bfmNJ6hbGmIDtjTGCH5Y9V/BY9pHBz4EV/53X09GoPPYKowTBMAAg6FziXbPQLV4TsAwv2G57HqCXlCFC7pR3A==", 32 | "requires": { 33 | "@aws-cdk/core": "1.43.0", 34 | "@aws-cdk/cx-api": "1.43.0", 35 | "constructs": "^3.0.2" 36 | }, 37 | "dependencies": { 38 | "constructs": { 39 | "version": "3.0.3", 40 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 41 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 42 | } 43 | } 44 | }, 45 | "@aws-cdk/aws-cloudwatch": { 46 | "version": "1.43.0", 47 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.43.0.tgz", 48 | "integrity": "sha512-3LiXJODevdAompJmlJa7lMYH1dipfaaux62sM8X/NO4kPvSr6r77cyx3qLQ8yEX2b28JObnrphg2lLKv7RH+Sw==", 49 | "requires": { 50 | "@aws-cdk/aws-iam": "1.43.0", 51 | "@aws-cdk/core": "1.43.0", 52 | "constructs": "^3.0.2" 53 | }, 54 | "dependencies": { 55 | "constructs": { 56 | "version": "3.0.3", 57 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 58 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 59 | } 60 | } 61 | }, 62 | "@aws-cdk/aws-ec2": { 63 | "version": "1.43.0", 64 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.43.0.tgz", 65 | "integrity": "sha512-lymf3GDtVsVuTmS2KQ4d5ovQ0mTDdb+K+kJu8DezQNvl35EMmriTzWRNAyf9b84aVRrRox2g1TMXiH6IkkZBDw==", 66 | "requires": { 67 | "@aws-cdk/aws-cloudwatch": "1.43.0", 68 | "@aws-cdk/aws-iam": "1.43.0", 69 | "@aws-cdk/aws-logs": "1.43.0", 70 | "@aws-cdk/aws-s3": "1.43.0", 71 | "@aws-cdk/aws-ssm": "1.43.0", 72 | "@aws-cdk/cloud-assembly-schema": "1.43.0", 73 | "@aws-cdk/core": "1.43.0", 74 | "@aws-cdk/cx-api": "1.43.0", 75 | "@aws-cdk/region-info": "1.43.0", 76 | "constructs": "^3.0.2" 77 | }, 78 | "dependencies": { 79 | "constructs": { 80 | "version": "3.0.3", 81 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 82 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 83 | } 84 | } 85 | }, 86 | "@aws-cdk/aws-events": { 87 | "version": "1.43.0", 88 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.43.0.tgz", 89 | "integrity": "sha512-3BHyZLgvpGRns4FMsstG2jQyFXl4GqpBxUsONfO0JOmB3n8nJEmGvnlmmurGNdITS4YilU6e203GC2WuI8kKDQ==", 90 | "requires": { 91 | "@aws-cdk/aws-iam": "1.43.0", 92 | "@aws-cdk/core": "1.43.0", 93 | "constructs": "^3.0.2" 94 | }, 95 | "dependencies": { 96 | "constructs": { 97 | "version": "3.0.3", 98 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 99 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 100 | } 101 | } 102 | }, 103 | "@aws-cdk/aws-iam": { 104 | "version": "1.43.0", 105 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.43.0.tgz", 106 | "integrity": "sha512-/nRVUmgcA+83rCfQhrrnUhLEzeVcIvymUpYhD6lcLDihuHrCW/8ds9JL8diWRgcBJsUAiogwqvKAUVkh3KP1Bg==", 107 | "requires": { 108 | "@aws-cdk/core": "1.43.0", 109 | "@aws-cdk/region-info": "1.43.0", 110 | "constructs": "^3.0.2" 111 | }, 112 | "dependencies": { 113 | "constructs": { 114 | "version": "3.0.3", 115 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 116 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 117 | } 118 | } 119 | }, 120 | "@aws-cdk/aws-kms": { 121 | "version": "1.43.0", 122 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.43.0.tgz", 123 | "integrity": "sha512-eqYINo1HWTs50ClMgSt8xCb0CYJM5S59zcsG9bgKFCE0emXMp7w2yW9/Pj/R++8HxZ97fMEu/iDyLxOnwxB8Ag==", 124 | "requires": { 125 | "@aws-cdk/aws-iam": "1.43.0", 126 | "@aws-cdk/core": "1.43.0", 127 | "constructs": "^3.0.2" 128 | }, 129 | "dependencies": { 130 | "constructs": { 131 | "version": "3.0.3", 132 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 133 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 134 | } 135 | } 136 | }, 137 | "@aws-cdk/aws-lambda": { 138 | "version": "1.43.0", 139 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.43.0.tgz", 140 | "integrity": "sha512-wIHx9J0pqABSEuhIH/6MKF9ccAO4ucxTK/B2Zgshc60H+2swPhO+qtCMwB0N5QWmXM3hwB5pG3jCBG6ib+OUpg==", 141 | "requires": { 142 | "@aws-cdk/aws-cloudwatch": "1.43.0", 143 | "@aws-cdk/aws-ec2": "1.43.0", 144 | "@aws-cdk/aws-events": "1.43.0", 145 | "@aws-cdk/aws-iam": "1.43.0", 146 | "@aws-cdk/aws-logs": "1.43.0", 147 | "@aws-cdk/aws-s3": "1.43.0", 148 | "@aws-cdk/aws-s3-assets": "1.43.0", 149 | "@aws-cdk/aws-sqs": "1.43.0", 150 | "@aws-cdk/core": "1.43.0", 151 | "@aws-cdk/cx-api": "1.43.0", 152 | "constructs": "^3.0.2" 153 | }, 154 | "dependencies": { 155 | "constructs": { 156 | "version": "3.0.3", 157 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 158 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 159 | } 160 | } 161 | }, 162 | "@aws-cdk/aws-logs": { 163 | "version": "1.43.0", 164 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.43.0.tgz", 165 | "integrity": "sha512-gylDRoxoTNolP0E53scXLpvIZUk0J1WnL6F7AqKkgdw99OQ4ZY72pkCIH/3pF/kZ6tLYPZ3Nh7XqUnGIZKlAcg==", 166 | "requires": { 167 | "@aws-cdk/aws-cloudwatch": "1.43.0", 168 | "@aws-cdk/aws-iam": "1.43.0", 169 | "@aws-cdk/core": "1.43.0", 170 | "constructs": "^3.0.2" 171 | }, 172 | "dependencies": { 173 | "constructs": { 174 | "version": "3.0.3", 175 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 176 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 177 | } 178 | } 179 | }, 180 | "@aws-cdk/aws-s3": { 181 | "version": "1.43.0", 182 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.43.0.tgz", 183 | "integrity": "sha512-5fAyohoUbI33rxpNDRJfHnCc5jpHt5UI2KFxX9fc+YvTLyw7k712awdcSdNZQxWGM4vgTvPA8b3/DM7fFV5AqQ==", 184 | "requires": { 185 | "@aws-cdk/aws-events": "1.43.0", 186 | "@aws-cdk/aws-iam": "1.43.0", 187 | "@aws-cdk/aws-kms": "1.43.0", 188 | "@aws-cdk/core": "1.43.0", 189 | "constructs": "^3.0.2" 190 | }, 191 | "dependencies": { 192 | "constructs": { 193 | "version": "3.0.3", 194 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 195 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 196 | } 197 | } 198 | }, 199 | "@aws-cdk/aws-s3-assets": { 200 | "version": "1.43.0", 201 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.43.0.tgz", 202 | "integrity": "sha512-BHzUO5vbUV5ejyHviXYHKfaIZ+UP83MqBnN5evCRPB3swr7JIcAMriMAVbcrA8fAdlhVGrdigSqifTef3lnkTw==", 203 | "requires": { 204 | "@aws-cdk/assets": "1.43.0", 205 | "@aws-cdk/aws-iam": "1.43.0", 206 | "@aws-cdk/aws-s3": "1.43.0", 207 | "@aws-cdk/core": "1.43.0", 208 | "@aws-cdk/cx-api": "1.43.0", 209 | "constructs": "^3.0.2" 210 | }, 211 | "dependencies": { 212 | "constructs": { 213 | "version": "3.0.3", 214 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 215 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 216 | } 217 | } 218 | }, 219 | "@aws-cdk/aws-sqs": { 220 | "version": "1.43.0", 221 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.43.0.tgz", 222 | "integrity": "sha512-tQlFu/TU/PA35y1QbqZplzJHPlgSoerZ4bAxjDioGOjdey66JtMZMCKUGH43uBfAsCWKbq+qm8dF4TQg3U/xRQ==", 223 | "requires": { 224 | "@aws-cdk/aws-cloudwatch": "1.43.0", 225 | "@aws-cdk/aws-iam": "1.43.0", 226 | "@aws-cdk/aws-kms": "1.43.0", 227 | "@aws-cdk/core": "1.43.0", 228 | "constructs": "^3.0.2" 229 | }, 230 | "dependencies": { 231 | "constructs": { 232 | "version": "3.0.3", 233 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 234 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 235 | } 236 | } 237 | }, 238 | "@aws-cdk/aws-ssm": { 239 | "version": "1.43.0", 240 | "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.43.0.tgz", 241 | "integrity": "sha512-gBKrUEsvo1VzwibFzXqVZCvrZOW89zl2b/BNTpR19G8gEhXDZMsBkGW44eGvswzU5ac0q90B54ELGEh0IvPvxQ==", 242 | "requires": { 243 | "@aws-cdk/aws-iam": "1.43.0", 244 | "@aws-cdk/aws-kms": "1.43.0", 245 | "@aws-cdk/cloud-assembly-schema": "1.43.0", 246 | "@aws-cdk/core": "1.43.0", 247 | "constructs": "^3.0.2" 248 | }, 249 | "dependencies": { 250 | "constructs": { 251 | "version": "3.0.3", 252 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 253 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 254 | } 255 | } 256 | }, 257 | "@aws-cdk/cdk-assets-schema": { 258 | "version": "1.43.0", 259 | "resolved": "https://registry.npmjs.org/@aws-cdk/cdk-assets-schema/-/cdk-assets-schema-1.43.0.tgz", 260 | "integrity": "sha512-zG2XlJPOajQGwTX3ptxyyLKKUu/viFRD5AdjlvhYFLQKX2fSDnjDtWdFf34FRNyPdI8gR3erzttn5Etw/alTsA==", 261 | "requires": { 262 | "semver": "^7.2.2" 263 | }, 264 | "dependencies": { 265 | "semver": { 266 | "version": "7.3.2", 267 | "bundled": true 268 | } 269 | } 270 | }, 271 | "@aws-cdk/cfnspec": { 272 | "version": "1.43.0", 273 | "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.43.0.tgz", 274 | "integrity": "sha512-CcVb2icN6GVSXelYA9vYMHCy0bU68t5m1bZghYZFavhJVtq1ZL3gMLVMZ9R0O7Nc1zKk7xUkXnj0Ljt7SgTb0Q==", 275 | "dev": true, 276 | "requires": { 277 | "md5": "^2.2.1" 278 | } 279 | }, 280 | "@aws-cdk/cloud-assembly-schema": { 281 | "version": "1.43.0", 282 | "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.43.0.tgz", 283 | "integrity": "sha512-PRPoErhsenkgukL48pWgWc2lhk7ntwxWgo/s2+tlARa6BclXM8ZwxmACNxWvqvgb9G1fVdsXmAQFHJJs5DHciw==", 284 | "requires": { 285 | "jsonschema": "^1.2.5", 286 | "semver": "^7.2.2" 287 | }, 288 | "dependencies": { 289 | "jsonschema": { 290 | "version": "1.2.6", 291 | "bundled": true 292 | }, 293 | "semver": { 294 | "version": "7.3.2", 295 | "bundled": true 296 | } 297 | } 298 | }, 299 | "@aws-cdk/cloudformation-diff": { 300 | "version": "1.43.0", 301 | "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.43.0.tgz", 302 | "integrity": "sha512-FnqeFYP2QCnXUAytxLy8/UQgpiwkfuPucxfUGhIOlhU/4xu25HLStFdN1SFCteSZP+SaTS4fmFQkI2r6lVEF4g==", 303 | "dev": true, 304 | "requires": { 305 | "@aws-cdk/cfnspec": "1.43.0", 306 | "colors": "^1.4.0", 307 | "diff": "^4.0.2", 308 | "fast-deep-equal": "^3.1.1", 309 | "string-width": "^4.2.0", 310 | "table": "^5.4.6" 311 | } 312 | }, 313 | "@aws-cdk/core": { 314 | "version": "1.43.0", 315 | "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.43.0.tgz", 316 | "integrity": "sha512-QdnVC/IcSvS8001YvYRBFgJ/CtbC7+Lh0ow2yBLkoo66AhmP0QZzHgxkvI5QxikLtMNpFp2wqnrQtNFS1heNMw==", 317 | "requires": { 318 | "@aws-cdk/cdk-assets-schema": "1.43.0", 319 | "@aws-cdk/cloud-assembly-schema": "1.43.0", 320 | "@aws-cdk/cx-api": "1.43.0", 321 | "constructs": "^3.0.2", 322 | "minimatch": "^3.0.4" 323 | }, 324 | "dependencies": { 325 | "balanced-match": { 326 | "version": "1.0.0", 327 | "bundled": true 328 | }, 329 | "brace-expansion": { 330 | "version": "1.1.11", 331 | "bundled": true, 332 | "requires": { 333 | "balanced-match": "^1.0.0", 334 | "concat-map": "0.0.1" 335 | } 336 | }, 337 | "concat-map": { 338 | "version": "0.0.1", 339 | "bundled": true 340 | }, 341 | "constructs": { 342 | "version": "3.0.3", 343 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 344 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 345 | }, 346 | "minimatch": { 347 | "version": "3.0.4", 348 | "bundled": true, 349 | "requires": { 350 | "brace-expansion": "^1.1.7" 351 | } 352 | } 353 | } 354 | }, 355 | "@aws-cdk/cx-api": { 356 | "version": "1.43.0", 357 | "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.43.0.tgz", 358 | "integrity": "sha512-0NTFa+HScC8rdk5asS2Fcj1fjWzQ1s4XbJPDe5ZUek88hej9gJUpjh5GbCy8rRTUx3qjAJU4vT5vpGeAXUGFYA==", 359 | "requires": { 360 | "@aws-cdk/cloud-assembly-schema": "1.43.0", 361 | "semver": "^7.2.2" 362 | }, 363 | "dependencies": { 364 | "semver": { 365 | "version": "7.3.2", 366 | "bundled": true 367 | } 368 | } 369 | }, 370 | "@aws-cdk/region-info": { 371 | "version": "1.43.0", 372 | "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.43.0.tgz", 373 | "integrity": "sha512-x7rwK6kSm17EdMDbjFuIujWgiJMKfgJgHH37y9YqLedpanAtIm1iJsP9ZRC3ieo0zESpQLsHv2RkRRbTEWClZA==" 374 | }, 375 | "@jsii/spec": { 376 | "version": "1.6.0", 377 | "resolved": "https://registry.npmjs.org/@jsii/spec/-/spec-1.6.0.tgz", 378 | "integrity": "sha512-6S863f3YQCLG00236OOT29EOqZZRFQEQcfACZ5f3Ph1PApRRndeZLsELm23MS6cCktdgdptRzaYR0HCupajBHQ==", 379 | "dev": true, 380 | "requires": { 381 | "jsonschema": "^1.2.6" 382 | } 383 | }, 384 | "@types/color-name": { 385 | "version": "1.1.1", 386 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 387 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", 388 | "dev": true 389 | }, 390 | "@types/node": { 391 | "version": "14.0.10", 392 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.10.tgz", 393 | "integrity": "sha512-Bz23oN/5bi0rniKT24ExLf4cK0JdvN3dH/3k0whYkdN4eI4vS2ZW/2ENNn2uxHCzWcbdHIa/GRuWQytfzCjRYw==", 394 | "dev": true 395 | }, 396 | "ajv": { 397 | "version": "6.12.0", 398 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", 399 | "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", 400 | "dev": true, 401 | "requires": { 402 | "fast-deep-equal": "^3.1.1", 403 | "fast-json-stable-stringify": "^2.0.0", 404 | "json-schema-traverse": "^0.4.1", 405 | "uri-js": "^4.2.2" 406 | } 407 | }, 408 | "ansi-styles": { 409 | "version": "3.2.1", 410 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 411 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 412 | "dev": true, 413 | "requires": { 414 | "color-convert": "^1.9.0" 415 | } 416 | }, 417 | "array-filter": { 418 | "version": "1.0.0", 419 | "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", 420 | "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", 421 | "dev": true 422 | }, 423 | "astral-regex": { 424 | "version": "1.0.0", 425 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 426 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 427 | "dev": true 428 | }, 429 | "at-least-node": { 430 | "version": "1.0.0", 431 | "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", 432 | "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", 433 | "dev": true 434 | }, 435 | "available-typed-arrays": { 436 | "version": "1.0.2", 437 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", 438 | "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", 439 | "dev": true, 440 | "requires": { 441 | "array-filter": "^1.0.0" 442 | } 443 | }, 444 | "camelcase": { 445 | "version": "5.3.1", 446 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 447 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 448 | "dev": true 449 | }, 450 | "case": { 451 | "version": "1.6.3", 452 | "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", 453 | "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", 454 | "dev": true 455 | }, 456 | "charenc": { 457 | "version": "0.0.2", 458 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", 459 | "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", 460 | "dev": true 461 | }, 462 | "cliui": { 463 | "version": "6.0.0", 464 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", 465 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", 466 | "dev": true, 467 | "requires": { 468 | "string-width": "^4.2.0", 469 | "strip-ansi": "^6.0.0", 470 | "wrap-ansi": "^6.2.0" 471 | } 472 | }, 473 | "clone": { 474 | "version": "2.1.2", 475 | "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", 476 | "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", 477 | "dev": true 478 | }, 479 | "codemaker": { 480 | "version": "1.6.0", 481 | "resolved": "https://registry.npmjs.org/codemaker/-/codemaker-1.6.0.tgz", 482 | "integrity": "sha512-B8FcGhBVMfQs+a8i8VnAWZLUgsM8IU3Q+V2hrLnBXd82Tlp/uUm5K5melOJeSKCoHHaTU8y1kNLaNo6qq47etw==", 483 | "dev": true, 484 | "requires": { 485 | "camelcase": "^6.0.0", 486 | "decamelize": "^1.2.0", 487 | "fs-extra": "^9.0.0" 488 | }, 489 | "dependencies": { 490 | "camelcase": { 491 | "version": "6.0.0", 492 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", 493 | "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==", 494 | "dev": true 495 | }, 496 | "fs-extra": { 497 | "version": "9.0.1", 498 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", 499 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", 500 | "dev": true, 501 | "requires": { 502 | "at-least-node": "^1.0.0", 503 | "graceful-fs": "^4.2.0", 504 | "jsonfile": "^6.0.1", 505 | "universalify": "^1.0.0" 506 | } 507 | }, 508 | "jsonfile": { 509 | "version": "6.0.1", 510 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", 511 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", 512 | "dev": true, 513 | "requires": { 514 | "graceful-fs": "^4.1.6", 515 | "universalify": "^1.0.0" 516 | } 517 | }, 518 | "universalify": { 519 | "version": "1.0.0", 520 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", 521 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", 522 | "dev": true 523 | } 524 | } 525 | }, 526 | "color-convert": { 527 | "version": "1.9.3", 528 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 529 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 530 | "dev": true, 531 | "requires": { 532 | "color-name": "1.1.3" 533 | } 534 | }, 535 | "color-name": { 536 | "version": "1.1.3", 537 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 538 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 539 | "dev": true 540 | }, 541 | "colors": { 542 | "version": "1.4.0", 543 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 544 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 545 | "dev": true 546 | }, 547 | "commonmark": { 548 | "version": "0.29.1", 549 | "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.29.1.tgz", 550 | "integrity": "sha512-DafPdNYFXoEhsSiR4O+dJ45UJBfDL4cBTks4B+agKiaWt7qjG0bIhg5xuCE0RqU71ikJcBIf4/sRHh9vYQVF8Q==", 551 | "dev": true, 552 | "requires": { 553 | "entities": "~1.1.1", 554 | "mdurl": "~1.0.1", 555 | "minimist": "~1.2.0", 556 | "string.prototype.repeat": "^0.2.0" 557 | } 558 | }, 559 | "constructs": { 560 | "version": "3.0.3", 561 | "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.3.tgz", 562 | "integrity": "sha512-JrYLpTlz92Un1jxkwoGiOiGoDjzIWtxo64sLC5FD4mQN1H9mAqZNvgxWYWaJIiWUXNkl5L5sO3GFf6peTj7UMQ==" 563 | }, 564 | "crypt": { 565 | "version": "0.0.2", 566 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", 567 | "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", 568 | "dev": true 569 | }, 570 | "date-format": { 571 | "version": "3.0.0", 572 | "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", 573 | "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", 574 | "dev": true 575 | }, 576 | "debug": { 577 | "version": "4.1.1", 578 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 579 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 580 | "dev": true, 581 | "requires": { 582 | "ms": "^2.1.1" 583 | } 584 | }, 585 | "decamelize": { 586 | "version": "1.2.0", 587 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 588 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 589 | "dev": true 590 | }, 591 | "deep-equal": { 592 | "version": "2.0.3", 593 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.3.tgz", 594 | "integrity": "sha512-Spqdl4H+ky45I9ByyJtXteOm9CaIrPmnIPmOhrkKGNYWeDgCvJ8jNYVCTjChxW4FqGuZnLHADc8EKRMX6+CgvA==", 595 | "dev": true, 596 | "requires": { 597 | "es-abstract": "^1.17.5", 598 | "es-get-iterator": "^1.1.0", 599 | "is-arguments": "^1.0.4", 600 | "is-date-object": "^1.0.2", 601 | "is-regex": "^1.0.5", 602 | "isarray": "^2.0.5", 603 | "object-is": "^1.1.2", 604 | "object-keys": "^1.1.1", 605 | "object.assign": "^4.1.0", 606 | "regexp.prototype.flags": "^1.3.0", 607 | "side-channel": "^1.0.2", 608 | "which-boxed-primitive": "^1.0.1", 609 | "which-collection": "^1.0.1", 610 | "which-typed-array": "^1.1.2" 611 | } 612 | }, 613 | "define-properties": { 614 | "version": "1.1.3", 615 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 616 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 617 | "dev": true, 618 | "requires": { 619 | "object-keys": "^1.0.12" 620 | } 621 | }, 622 | "detect-indent": { 623 | "version": "5.0.0", 624 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", 625 | "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", 626 | "dev": true 627 | }, 628 | "detect-newline": { 629 | "version": "2.1.0", 630 | "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", 631 | "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", 632 | "dev": true 633 | }, 634 | "diff": { 635 | "version": "4.0.2", 636 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", 637 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", 638 | "dev": true 639 | }, 640 | "emoji-regex": { 641 | "version": "7.0.3", 642 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 643 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 644 | "dev": true 645 | }, 646 | "entities": { 647 | "version": "1.1.2", 648 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", 649 | "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", 650 | "dev": true 651 | }, 652 | "es-abstract": { 653 | "version": "1.17.5", 654 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", 655 | "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", 656 | "dev": true, 657 | "requires": { 658 | "es-to-primitive": "^1.2.1", 659 | "function-bind": "^1.1.1", 660 | "has": "^1.0.3", 661 | "has-symbols": "^1.0.1", 662 | "is-callable": "^1.1.5", 663 | "is-regex": "^1.0.5", 664 | "object-inspect": "^1.7.0", 665 | "object-keys": "^1.1.1", 666 | "object.assign": "^4.1.0", 667 | "string.prototype.trimleft": "^2.1.1", 668 | "string.prototype.trimright": "^2.1.1" 669 | } 670 | }, 671 | "es-get-iterator": { 672 | "version": "1.1.0", 673 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", 674 | "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", 675 | "dev": true, 676 | "requires": { 677 | "es-abstract": "^1.17.4", 678 | "has-symbols": "^1.0.1", 679 | "is-arguments": "^1.0.4", 680 | "is-map": "^2.0.1", 681 | "is-set": "^2.0.1", 682 | "is-string": "^1.0.5", 683 | "isarray": "^2.0.5" 684 | } 685 | }, 686 | "es-to-primitive": { 687 | "version": "1.2.1", 688 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 689 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 690 | "dev": true, 691 | "requires": { 692 | "is-callable": "^1.1.4", 693 | "is-date-object": "^1.0.1", 694 | "is-symbol": "^1.0.2" 695 | } 696 | }, 697 | "escape-string-regexp": { 698 | "version": "4.0.0", 699 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 700 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 701 | "dev": true 702 | }, 703 | "fast-deep-equal": { 704 | "version": "3.1.1", 705 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", 706 | "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", 707 | "dev": true 708 | }, 709 | "fast-json-stable-stringify": { 710 | "version": "2.1.0", 711 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 712 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 713 | "dev": true 714 | }, 715 | "find-up": { 716 | "version": "4.1.0", 717 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 718 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 719 | "dev": true, 720 | "requires": { 721 | "locate-path": "^5.0.0", 722 | "path-exists": "^4.0.0" 723 | } 724 | }, 725 | "flatted": { 726 | "version": "2.0.2", 727 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", 728 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", 729 | "dev": true 730 | }, 731 | "foreach": { 732 | "version": "2.0.5", 733 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 734 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", 735 | "dev": true 736 | }, 737 | "fs-extra": { 738 | "version": "8.1.0", 739 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 740 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 741 | "dev": true, 742 | "requires": { 743 | "graceful-fs": "^4.2.0", 744 | "jsonfile": "^4.0.0", 745 | "universalify": "^0.1.0" 746 | } 747 | }, 748 | "function-bind": { 749 | "version": "1.1.1", 750 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 751 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 752 | "dev": true 753 | }, 754 | "get-caller-file": { 755 | "version": "2.0.5", 756 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 757 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 758 | "dev": true 759 | }, 760 | "graceful-fs": { 761 | "version": "4.2.3", 762 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", 763 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", 764 | "dev": true 765 | }, 766 | "has": { 767 | "version": "1.0.3", 768 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 769 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 770 | "dev": true, 771 | "requires": { 772 | "function-bind": "^1.1.1" 773 | } 774 | }, 775 | "has-symbols": { 776 | "version": "1.0.1", 777 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 778 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", 779 | "dev": true 780 | }, 781 | "is-arguments": { 782 | "version": "1.0.4", 783 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", 784 | "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", 785 | "dev": true 786 | }, 787 | "is-bigint": { 788 | "version": "1.0.0", 789 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.0.tgz", 790 | "integrity": "sha512-t5mGUXC/xRheCK431ylNiSkGGpBp8bHENBcENTkDT6ppwPzEVxNGZRvgvmOEfbWkFhA7D2GEuE2mmQTr78sl2g==", 791 | "dev": true 792 | }, 793 | "is-boolean-object": { 794 | "version": "1.0.1", 795 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz", 796 | "integrity": "sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==", 797 | "dev": true 798 | }, 799 | "is-buffer": { 800 | "version": "1.1.6", 801 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 802 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 803 | "dev": true 804 | }, 805 | "is-callable": { 806 | "version": "1.2.0", 807 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", 808 | "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", 809 | "dev": true 810 | }, 811 | "is-date-object": { 812 | "version": "1.0.2", 813 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", 814 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", 815 | "dev": true 816 | }, 817 | "is-fullwidth-code-point": { 818 | "version": "3.0.0", 819 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 820 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 821 | "dev": true 822 | }, 823 | "is-map": { 824 | "version": "2.0.1", 825 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", 826 | "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", 827 | "dev": true 828 | }, 829 | "is-number-object": { 830 | "version": "1.0.4", 831 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", 832 | "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", 833 | "dev": true 834 | }, 835 | "is-regex": { 836 | "version": "1.1.0", 837 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", 838 | "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", 839 | "dev": true, 840 | "requires": { 841 | "has-symbols": "^1.0.1" 842 | } 843 | }, 844 | "is-set": { 845 | "version": "2.0.1", 846 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", 847 | "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", 848 | "dev": true 849 | }, 850 | "is-string": { 851 | "version": "1.0.5", 852 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", 853 | "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", 854 | "dev": true 855 | }, 856 | "is-symbol": { 857 | "version": "1.0.3", 858 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", 859 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", 860 | "dev": true, 861 | "requires": { 862 | "has-symbols": "^1.0.1" 863 | } 864 | }, 865 | "is-typed-array": { 866 | "version": "1.1.3", 867 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", 868 | "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", 869 | "dev": true, 870 | "requires": { 871 | "available-typed-arrays": "^1.0.0", 872 | "es-abstract": "^1.17.4", 873 | "foreach": "^2.0.5", 874 | "has-symbols": "^1.0.1" 875 | } 876 | }, 877 | "is-weakmap": { 878 | "version": "2.0.1", 879 | "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", 880 | "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", 881 | "dev": true 882 | }, 883 | "is-weakset": { 884 | "version": "2.0.1", 885 | "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", 886 | "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==", 887 | "dev": true 888 | }, 889 | "isarray": { 890 | "version": "2.0.5", 891 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 892 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 893 | "dev": true 894 | }, 895 | "jsii": { 896 | "version": "1.6.0", 897 | "resolved": "https://registry.npmjs.org/jsii/-/jsii-1.6.0.tgz", 898 | "integrity": "sha512-g9L2xBnKCrzfMPkaioYSz8lYATYGt8SWimycq9HxfszaI0/QjKv+68E5pgTimy6EZil+2O/KguiYqlK9jNQE7A==", 899 | "dev": true, 900 | "requires": { 901 | "@jsii/spec": "^1.6.0", 902 | "case": "^1.6.3", 903 | "colors": "^1.4.0", 904 | "deep-equal": "^2.0.3", 905 | "fs-extra": "^9.0.0", 906 | "log4js": "^6.3.0", 907 | "semver": "^7.3.2", 908 | "semver-intersect": "^1.4.0", 909 | "sort-json": "^2.0.0", 910 | "spdx-license-list": "^6.2.0", 911 | "typescript": "~3.8.3", 912 | "yargs": "^15.3.1" 913 | }, 914 | "dependencies": { 915 | "fs-extra": { 916 | "version": "9.0.1", 917 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", 918 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", 919 | "dev": true, 920 | "requires": { 921 | "at-least-node": "^1.0.0", 922 | "graceful-fs": "^4.2.0", 923 | "jsonfile": "^6.0.1", 924 | "universalify": "^1.0.0" 925 | } 926 | }, 927 | "jsonfile": { 928 | "version": "6.0.1", 929 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", 930 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", 931 | "dev": true, 932 | "requires": { 933 | "graceful-fs": "^4.1.6", 934 | "universalify": "^1.0.0" 935 | } 936 | }, 937 | "universalify": { 938 | "version": "1.0.0", 939 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", 940 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", 941 | "dev": true 942 | } 943 | } 944 | }, 945 | "jsii-pacmak": { 946 | "version": "1.6.0", 947 | "resolved": "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.6.0.tgz", 948 | "integrity": "sha512-Ces8X36Ccyq5AZjzpznFUfV5wd0Ol0hiprJwtGHhs5vug5uJFLZxdS0hPFBFFPLiXQWwsEToWyM7PQ+xakTTpg==", 949 | "dev": true, 950 | "requires": { 951 | "@jsii/spec": "^1.6.0", 952 | "clone": "^2.1.2", 953 | "codemaker": "^1.6.0", 954 | "commonmark": "^0.29.1", 955 | "escape-string-regexp": "^4.0.0", 956 | "fs-extra": "^9.0.0", 957 | "jsii-reflect": "^1.6.0", 958 | "jsii-rosetta": "^1.6.0", 959 | "semver": "^7.3.2", 960 | "spdx-license-list": "^6.2.0", 961 | "xmlbuilder": "^15.1.1", 962 | "yargs": "^15.3.1" 963 | }, 964 | "dependencies": { 965 | "fs-extra": { 966 | "version": "9.0.1", 967 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", 968 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", 969 | "dev": true, 970 | "requires": { 971 | "at-least-node": "^1.0.0", 972 | "graceful-fs": "^4.2.0", 973 | "jsonfile": "^6.0.1", 974 | "universalify": "^1.0.0" 975 | } 976 | }, 977 | "jsonfile": { 978 | "version": "6.0.1", 979 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", 980 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", 981 | "dev": true, 982 | "requires": { 983 | "graceful-fs": "^4.1.6", 984 | "universalify": "^1.0.0" 985 | } 986 | }, 987 | "universalify": { 988 | "version": "1.0.0", 989 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", 990 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", 991 | "dev": true 992 | } 993 | } 994 | }, 995 | "jsii-reflect": { 996 | "version": "1.6.0", 997 | "resolved": "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.6.0.tgz", 998 | "integrity": "sha512-JsVGJCcezNdnR4OukLNs7p6T6f3rKbGWNByE8Omvi7GfDf9c/YiVG4LggxEQaWyIZiYYqeEtBw6JtIKj3Qme5w==", 999 | "dev": true, 1000 | "requires": { 1001 | "@jsii/spec": "^1.6.0", 1002 | "colors": "^1.4.0", 1003 | "fs-extra": "^9.0.0", 1004 | "oo-ascii-tree": "^1.6.0", 1005 | "yargs": "^15.3.1" 1006 | }, 1007 | "dependencies": { 1008 | "fs-extra": { 1009 | "version": "9.0.1", 1010 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", 1011 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", 1012 | "dev": true, 1013 | "requires": { 1014 | "at-least-node": "^1.0.0", 1015 | "graceful-fs": "^4.2.0", 1016 | "jsonfile": "^6.0.1", 1017 | "universalify": "^1.0.0" 1018 | } 1019 | }, 1020 | "jsonfile": { 1021 | "version": "6.0.1", 1022 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", 1023 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", 1024 | "dev": true, 1025 | "requires": { 1026 | "graceful-fs": "^4.1.6", 1027 | "universalify": "^1.0.0" 1028 | } 1029 | }, 1030 | "universalify": { 1031 | "version": "1.0.0", 1032 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", 1033 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", 1034 | "dev": true 1035 | } 1036 | } 1037 | }, 1038 | "jsii-rosetta": { 1039 | "version": "1.6.0", 1040 | "resolved": "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.6.0.tgz", 1041 | "integrity": "sha512-eDaaIyvFcnB07j4aRS/xWBxenHE+OEW8gWLwSnv72+BsPifcS1QOkYcz/p/fTtPjNDyjtO8dcG5V4NUsy3QKdw==", 1042 | "dev": true, 1043 | "requires": { 1044 | "@jsii/spec": "^1.6.0", 1045 | "commonmark": "^0.29.1", 1046 | "fs-extra": "^9.0.0", 1047 | "typescript": "~3.8.3", 1048 | "xmldom": "^0.3.0", 1049 | "yargs": "^15.3.1" 1050 | }, 1051 | "dependencies": { 1052 | "fs-extra": { 1053 | "version": "9.0.1", 1054 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", 1055 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", 1056 | "dev": true, 1057 | "requires": { 1058 | "at-least-node": "^1.0.0", 1059 | "graceful-fs": "^4.2.0", 1060 | "jsonfile": "^6.0.1", 1061 | "universalify": "^1.0.0" 1062 | } 1063 | }, 1064 | "jsonfile": { 1065 | "version": "6.0.1", 1066 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", 1067 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", 1068 | "dev": true, 1069 | "requires": { 1070 | "graceful-fs": "^4.1.6", 1071 | "universalify": "^1.0.0" 1072 | } 1073 | }, 1074 | "universalify": { 1075 | "version": "1.0.0", 1076 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", 1077 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", 1078 | "dev": true 1079 | } 1080 | } 1081 | }, 1082 | "json-schema-traverse": { 1083 | "version": "0.4.1", 1084 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1085 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1086 | "dev": true 1087 | }, 1088 | "jsonfile": { 1089 | "version": "4.0.0", 1090 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 1091 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 1092 | "dev": true, 1093 | "requires": { 1094 | "graceful-fs": "^4.1.6" 1095 | } 1096 | }, 1097 | "jsonschema": { 1098 | "version": "1.2.6", 1099 | "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.6.tgz", 1100 | "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA==", 1101 | "dev": true 1102 | }, 1103 | "locate-path": { 1104 | "version": "5.0.0", 1105 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 1106 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 1107 | "dev": true, 1108 | "requires": { 1109 | "p-locate": "^4.1.0" 1110 | } 1111 | }, 1112 | "lodash": { 1113 | "version": "4.17.19", 1114 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", 1115 | "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", 1116 | "dev": true 1117 | }, 1118 | "log4js": { 1119 | "version": "6.3.0", 1120 | "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", 1121 | "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", 1122 | "dev": true, 1123 | "requires": { 1124 | "date-format": "^3.0.0", 1125 | "debug": "^4.1.1", 1126 | "flatted": "^2.0.1", 1127 | "rfdc": "^1.1.4", 1128 | "streamroller": "^2.2.4" 1129 | } 1130 | }, 1131 | "md5": { 1132 | "version": "2.2.1", 1133 | "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", 1134 | "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", 1135 | "dev": true, 1136 | "requires": { 1137 | "charenc": "~0.0.1", 1138 | "crypt": "~0.0.1", 1139 | "is-buffer": "~1.1.1" 1140 | } 1141 | }, 1142 | "mdurl": { 1143 | "version": "1.0.1", 1144 | "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", 1145 | "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", 1146 | "dev": true 1147 | }, 1148 | "minimist": { 1149 | "version": "1.2.5", 1150 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1151 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 1152 | "dev": true 1153 | }, 1154 | "ms": { 1155 | "version": "2.1.2", 1156 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1157 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1158 | "dev": true 1159 | }, 1160 | "object-inspect": { 1161 | "version": "1.7.0", 1162 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", 1163 | "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", 1164 | "dev": true 1165 | }, 1166 | "object-is": { 1167 | "version": "1.1.2", 1168 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", 1169 | "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", 1170 | "dev": true, 1171 | "requires": { 1172 | "define-properties": "^1.1.3", 1173 | "es-abstract": "^1.17.5" 1174 | } 1175 | }, 1176 | "object-keys": { 1177 | "version": "1.1.1", 1178 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1179 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1180 | "dev": true 1181 | }, 1182 | "object.assign": { 1183 | "version": "4.1.0", 1184 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", 1185 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", 1186 | "dev": true, 1187 | "requires": { 1188 | "define-properties": "^1.1.2", 1189 | "function-bind": "^1.1.1", 1190 | "has-symbols": "^1.0.0", 1191 | "object-keys": "^1.0.11" 1192 | } 1193 | }, 1194 | "oo-ascii-tree": { 1195 | "version": "1.6.0", 1196 | "resolved": "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.6.0.tgz", 1197 | "integrity": "sha512-3JNvbe7r+qHPHbJhnQ8R8GzgSdF5sAA49gNKnJDWD/bQ9cZzSKG8qtbGPBBnwQ2wX/YCaJ4rUTs1c2Rz2sx1+w==", 1198 | "dev": true 1199 | }, 1200 | "p-limit": { 1201 | "version": "2.3.0", 1202 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1203 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1204 | "dev": true, 1205 | "requires": { 1206 | "p-try": "^2.0.0" 1207 | } 1208 | }, 1209 | "p-locate": { 1210 | "version": "4.1.0", 1211 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 1212 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1213 | "dev": true, 1214 | "requires": { 1215 | "p-limit": "^2.2.0" 1216 | } 1217 | }, 1218 | "p-try": { 1219 | "version": "2.2.0", 1220 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1221 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1222 | "dev": true 1223 | }, 1224 | "path-exists": { 1225 | "version": "4.0.0", 1226 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1227 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1228 | "dev": true 1229 | }, 1230 | "punycode": { 1231 | "version": "2.1.1", 1232 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1233 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1234 | "dev": true 1235 | }, 1236 | "regexp.prototype.flags": { 1237 | "version": "1.3.0", 1238 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", 1239 | "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", 1240 | "dev": true, 1241 | "requires": { 1242 | "define-properties": "^1.1.3", 1243 | "es-abstract": "^1.17.0-next.1" 1244 | } 1245 | }, 1246 | "require-directory": { 1247 | "version": "2.1.1", 1248 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1249 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 1250 | "dev": true 1251 | }, 1252 | "require-main-filename": { 1253 | "version": "2.0.0", 1254 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 1255 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 1256 | "dev": true 1257 | }, 1258 | "rfdc": { 1259 | "version": "1.1.4", 1260 | "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", 1261 | "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", 1262 | "dev": true 1263 | }, 1264 | "semver": { 1265 | "version": "7.3.2", 1266 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", 1267 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", 1268 | "dev": true 1269 | }, 1270 | "semver-intersect": { 1271 | "version": "1.4.0", 1272 | "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", 1273 | "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", 1274 | "dev": true, 1275 | "requires": { 1276 | "semver": "^5.0.0" 1277 | }, 1278 | "dependencies": { 1279 | "semver": { 1280 | "version": "5.7.1", 1281 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1282 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1283 | "dev": true 1284 | } 1285 | } 1286 | }, 1287 | "set-blocking": { 1288 | "version": "2.0.0", 1289 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1290 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 1291 | "dev": true 1292 | }, 1293 | "side-channel": { 1294 | "version": "1.0.2", 1295 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", 1296 | "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", 1297 | "dev": true, 1298 | "requires": { 1299 | "es-abstract": "^1.17.0-next.1", 1300 | "object-inspect": "^1.7.0" 1301 | } 1302 | }, 1303 | "slice-ansi": { 1304 | "version": "2.1.0", 1305 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 1306 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 1307 | "dev": true, 1308 | "requires": { 1309 | "ansi-styles": "^3.2.0", 1310 | "astral-regex": "^1.0.0", 1311 | "is-fullwidth-code-point": "^2.0.0" 1312 | }, 1313 | "dependencies": { 1314 | "is-fullwidth-code-point": { 1315 | "version": "2.0.0", 1316 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1317 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1318 | "dev": true 1319 | } 1320 | } 1321 | }, 1322 | "sort-json": { 1323 | "version": "2.0.0", 1324 | "resolved": "https://registry.npmjs.org/sort-json/-/sort-json-2.0.0.tgz", 1325 | "integrity": "sha512-OgXPErPJM/rBK5OhzIJ+etib/BmLQ1JY55Nb/ElhoWUec62pXNF/X6DrecHq3NW5OAGX0KxYD7m0HtgB9dvGeA==", 1326 | "dev": true, 1327 | "requires": { 1328 | "detect-indent": "^5.0.0", 1329 | "detect-newline": "^2.1.0", 1330 | "minimist": "^1.2.0" 1331 | } 1332 | }, 1333 | "spdx-license-list": { 1334 | "version": "6.2.0", 1335 | "resolved": "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.2.0.tgz", 1336 | "integrity": "sha512-sHM1eQz+yYrKRIO5j/tzu3yWhbouQc2RYmCn5nNC296nVztW0VSlpJvmgsWPKAMEIqjfghXy3vvIwCbEOJPSHg==", 1337 | "dev": true 1338 | }, 1339 | "streamroller": { 1340 | "version": "2.2.4", 1341 | "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", 1342 | "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", 1343 | "dev": true, 1344 | "requires": { 1345 | "date-format": "^2.1.0", 1346 | "debug": "^4.1.1", 1347 | "fs-extra": "^8.1.0" 1348 | }, 1349 | "dependencies": { 1350 | "date-format": { 1351 | "version": "2.1.0", 1352 | "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", 1353 | "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", 1354 | "dev": true 1355 | } 1356 | } 1357 | }, 1358 | "string-width": { 1359 | "version": "4.2.0", 1360 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 1361 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 1362 | "dev": true, 1363 | "requires": { 1364 | "emoji-regex": "^8.0.0", 1365 | "is-fullwidth-code-point": "^3.0.0", 1366 | "strip-ansi": "^6.0.0" 1367 | }, 1368 | "dependencies": { 1369 | "emoji-regex": { 1370 | "version": "8.0.0", 1371 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1372 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 1373 | "dev": true 1374 | } 1375 | } 1376 | }, 1377 | "string.prototype.repeat": { 1378 | "version": "0.2.0", 1379 | "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz", 1380 | "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=", 1381 | "dev": true 1382 | }, 1383 | "string.prototype.trimend": { 1384 | "version": "1.0.1", 1385 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", 1386 | "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", 1387 | "dev": true, 1388 | "requires": { 1389 | "define-properties": "^1.1.3", 1390 | "es-abstract": "^1.17.5" 1391 | } 1392 | }, 1393 | "string.prototype.trimleft": { 1394 | "version": "2.1.2", 1395 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", 1396 | "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", 1397 | "dev": true, 1398 | "requires": { 1399 | "define-properties": "^1.1.3", 1400 | "es-abstract": "^1.17.5", 1401 | "string.prototype.trimstart": "^1.0.0" 1402 | } 1403 | }, 1404 | "string.prototype.trimright": { 1405 | "version": "2.1.2", 1406 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", 1407 | "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", 1408 | "dev": true, 1409 | "requires": { 1410 | "define-properties": "^1.1.3", 1411 | "es-abstract": "^1.17.5", 1412 | "string.prototype.trimend": "^1.0.0" 1413 | } 1414 | }, 1415 | "string.prototype.trimstart": { 1416 | "version": "1.0.1", 1417 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", 1418 | "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", 1419 | "dev": true, 1420 | "requires": { 1421 | "define-properties": "^1.1.3", 1422 | "es-abstract": "^1.17.5" 1423 | } 1424 | }, 1425 | "strip-ansi": { 1426 | "version": "6.0.0", 1427 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1428 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1429 | "dev": true, 1430 | "requires": { 1431 | "ansi-regex": "^5.0.0" 1432 | }, 1433 | "dependencies": { 1434 | "ansi-regex": { 1435 | "version": "5.0.0", 1436 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 1437 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 1438 | "dev": true 1439 | } 1440 | } 1441 | }, 1442 | "table": { 1443 | "version": "5.4.6", 1444 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", 1445 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", 1446 | "dev": true, 1447 | "requires": { 1448 | "ajv": "^6.10.2", 1449 | "lodash": "^4.17.14", 1450 | "slice-ansi": "^2.1.0", 1451 | "string-width": "^3.0.0" 1452 | }, 1453 | "dependencies": { 1454 | "ansi-regex": { 1455 | "version": "4.1.0", 1456 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 1457 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 1458 | "dev": true 1459 | }, 1460 | "is-fullwidth-code-point": { 1461 | "version": "2.0.0", 1462 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1463 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1464 | "dev": true 1465 | }, 1466 | "string-width": { 1467 | "version": "3.1.0", 1468 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1469 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1470 | "dev": true, 1471 | "requires": { 1472 | "emoji-regex": "^7.0.1", 1473 | "is-fullwidth-code-point": "^2.0.0", 1474 | "strip-ansi": "^5.1.0" 1475 | } 1476 | }, 1477 | "strip-ansi": { 1478 | "version": "5.2.0", 1479 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1480 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1481 | "dev": true, 1482 | "requires": { 1483 | "ansi-regex": "^4.1.0" 1484 | } 1485 | } 1486 | } 1487 | }, 1488 | "typescript": { 1489 | "version": "3.8.3", 1490 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", 1491 | "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", 1492 | "dev": true 1493 | }, 1494 | "universalify": { 1495 | "version": "0.1.2", 1496 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 1497 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 1498 | "dev": true 1499 | }, 1500 | "uri-js": { 1501 | "version": "4.2.2", 1502 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1503 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 1504 | "dev": true, 1505 | "requires": { 1506 | "punycode": "^2.1.0" 1507 | } 1508 | }, 1509 | "which-boxed-primitive": { 1510 | "version": "1.0.1", 1511 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.1.tgz", 1512 | "integrity": "sha512-7BT4TwISdDGBgaemWU0N0OU7FeAEJ9Oo2P1PHRm/FCWoEi2VLWC9b6xvxAA3C/NMpxg3HXVgi0sMmGbNUbNepQ==", 1513 | "dev": true, 1514 | "requires": { 1515 | "is-bigint": "^1.0.0", 1516 | "is-boolean-object": "^1.0.0", 1517 | "is-number-object": "^1.0.3", 1518 | "is-string": "^1.0.4", 1519 | "is-symbol": "^1.0.2" 1520 | } 1521 | }, 1522 | "which-collection": { 1523 | "version": "1.0.1", 1524 | "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", 1525 | "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", 1526 | "dev": true, 1527 | "requires": { 1528 | "is-map": "^2.0.1", 1529 | "is-set": "^2.0.1", 1530 | "is-weakmap": "^2.0.1", 1531 | "is-weakset": "^2.0.1" 1532 | } 1533 | }, 1534 | "which-module": { 1535 | "version": "2.0.0", 1536 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 1537 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 1538 | "dev": true 1539 | }, 1540 | "which-typed-array": { 1541 | "version": "1.1.2", 1542 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz", 1543 | "integrity": "sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==", 1544 | "dev": true, 1545 | "requires": { 1546 | "available-typed-arrays": "^1.0.2", 1547 | "es-abstract": "^1.17.5", 1548 | "foreach": "^2.0.5", 1549 | "function-bind": "^1.1.1", 1550 | "has-symbols": "^1.0.1", 1551 | "is-typed-array": "^1.1.3" 1552 | } 1553 | }, 1554 | "wrap-ansi": { 1555 | "version": "6.2.0", 1556 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", 1557 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 1558 | "dev": true, 1559 | "requires": { 1560 | "ansi-styles": "^4.0.0", 1561 | "string-width": "^4.1.0", 1562 | "strip-ansi": "^6.0.0" 1563 | }, 1564 | "dependencies": { 1565 | "ansi-styles": { 1566 | "version": "4.2.1", 1567 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 1568 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 1569 | "dev": true, 1570 | "requires": { 1571 | "@types/color-name": "^1.1.1", 1572 | "color-convert": "^2.0.1" 1573 | } 1574 | }, 1575 | "color-convert": { 1576 | "version": "2.0.1", 1577 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1578 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1579 | "dev": true, 1580 | "requires": { 1581 | "color-name": "~1.1.4" 1582 | } 1583 | }, 1584 | "color-name": { 1585 | "version": "1.1.4", 1586 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1587 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1588 | "dev": true 1589 | } 1590 | } 1591 | }, 1592 | "xmlbuilder": { 1593 | "version": "15.1.1", 1594 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", 1595 | "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", 1596 | "dev": true 1597 | }, 1598 | "xmldom": { 1599 | "version": "0.3.0", 1600 | "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.3.0.tgz", 1601 | "integrity": "sha512-z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==", 1602 | "dev": true 1603 | }, 1604 | "y18n": { 1605 | "version": "4.0.0", 1606 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 1607 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", 1608 | "dev": true 1609 | }, 1610 | "yargs": { 1611 | "version": "15.3.1", 1612 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", 1613 | "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", 1614 | "dev": true, 1615 | "requires": { 1616 | "cliui": "^6.0.0", 1617 | "decamelize": "^1.2.0", 1618 | "find-up": "^4.1.0", 1619 | "get-caller-file": "^2.0.1", 1620 | "require-directory": "^2.1.1", 1621 | "require-main-filename": "^2.0.0", 1622 | "set-blocking": "^2.0.0", 1623 | "string-width": "^4.2.0", 1624 | "which-module": "^2.0.0", 1625 | "y18n": "^4.0.0", 1626 | "yargs-parser": "^18.1.1" 1627 | } 1628 | }, 1629 | "yargs-parser": { 1630 | "version": "18.1.3", 1631 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", 1632 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", 1633 | "dev": true, 1634 | "requires": { 1635 | "camelcase": "^5.0.0", 1636 | "decamelize": "^1.2.0" 1637 | } 1638 | } 1639 | } 1640 | } 1641 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aws-lambda-golang", 3 | "version": "0.1.1", 4 | "description": "CDK Construct for AWS Lambda in Golang", 5 | "main": "lib/index.js", 6 | "types": "lib/index.d.ts", 7 | "scripts": { 8 | "build": "jsii", 9 | "build:watch": "jsii -w", 10 | "package": "jsii-pacmak", 11 | "clean": "find ./lib -name \"*.d.ts\" -type f -delete && find ./lib -name \"*.js\" -type f -delete && rm -fr ./dist && find ./example -name \"*.d.ts\" -type f -delete && find ./example -name \"*.js\" -type f -delete && rm -fr example/cdk.out" 12 | }, 13 | "keywords": [ 14 | "aws", 15 | "cdk", 16 | "constructs", 17 | "lambda", 18 | "golang" 19 | ], 20 | "author": { 21 | "name": "Rafal Wilinski", 22 | "email": "raf.wilinski@gmail.com", 23 | "url": "https://rwilinski.me" 24 | }, 25 | "jest": { 26 | "moduleFileExtensions": [ 27 | "js" 28 | ], 29 | "coverageThreshold": { 30 | "global": { 31 | "branches": 60, 32 | "statements": 80 33 | } 34 | }, 35 | "collectCoverage": true, 36 | "coverageReporters": [ 37 | "lcov", 38 | "html", 39 | "text-summary" 40 | ] 41 | }, 42 | "license": "Apache-2.0", 43 | "devDependencies": { 44 | "@aws-cdk/assert": "^1.43.0", 45 | "@types/node": "^14.0.10", 46 | "fs-extra": "^8.1.0", 47 | "jsii": "^1.6.0", 48 | "jsii-pacmak": "^1.6.0" 49 | }, 50 | "dependencies": { 51 | "@aws-cdk/aws-lambda": "^1.43.0", 52 | "@aws-cdk/core": "^1.43.0", 53 | "constructs": "^3.0.3" 54 | }, 55 | "homepage": "https://github.com/RafalWilinski/aws-lambda-golang-cdk", 56 | "repository": { 57 | "url": "https://github.com/RafalWilinski/aws-lambda-golang-cdk.git", 58 | "type": "git" 59 | }, 60 | "jsii": { 61 | "outdir": "dist", 62 | "targets": { 63 | "python": { 64 | "distName": "rwilinski.aws-lambda-golang", 65 | "module": "rwilinski.aws-lambda-golang" 66 | }, 67 | "java": { 68 | "package": "com.rwilinski.awslambdagolang", 69 | "maven": { 70 | "groupId": "com.rwilinski", 71 | "artifactId": "aws-lambda-golang" 72 | } 73 | }, 74 | "dotnet": { 75 | "namespace": "rwilinski.AwsLambdaGolang", 76 | "packageId": "rwilinski.GolangFunction" 77 | } 78 | } 79 | }, 80 | "peerDependencies": { 81 | "@aws-cdk/aws-lambda": "^1.43.0", 82 | "@aws-cdk/core": "^1.43.0", 83 | "constructs": "^3.0.3" 84 | }, 85 | "engines": { 86 | "node": ">= 10.3.0" 87 | }, 88 | "stability": "experimental", 89 | "awscdkio": { 90 | "announce": true, 91 | "twitter": "@RafalWilinski" 92 | } 93 | } --------------------------------------------------------------------------------