Last active
November 20, 2020 05:41
-
-
Save joeduffy/ecb6946d94312f96c22153d659b5dfb4 to your computer and use it in GitHub Desktop.
AWS IAM Access Analyzer, Meet Pulumi CrossGuard
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import * as AWS from "aws-sdk" | |
import * as aws from "@pulumi/aws"; | |
import * as pulumi from "@pulumi/pulumi"; | |
import { PolicyPack, ReportViolation, StackValidationArgs } from "@pulumi/policy"; | |
import * as uuid from "uuid"; | |
new PolicyPack("aws-typescript", { | |
policies: [{ | |
name: "iam-access-analyzer", | |
description: "Resource has IAM Access Analyzer errors.", | |
enforcementLevel: "mandatory", | |
validateStack: async (args: StackValidationArgs, reportViolation: ReportViolation) => { | |
// If we're doing a dry-run, we skip this, because IAM Access Analyzer only analyzes actual resources. | |
// Ideally in the future, they will support scanning them *before* the problem is actually deployed! | |
if (pulumi.runtime.isDryRun()) { | |
// BUGBUG: https://github.com/pulumi/pulumi-policy/issues/166: the runtime is wrong here. | |
return; | |
} | |
// Create a fresh analyzer for this run. | |
const svc = new AWS.AccessAnalyzer({ region: aws.config.region || "us-west-2" }); | |
// BUGBUG: https://github.com/pulumi/pulumi-policy/issues/78 | |
// const analyzerName = `${pulumi.getProject()}-${pulumi.getStack()}-iam-analyzer`; | |
const analyzerName = `iam-analyzer-${uuid.v4().toString()}`; | |
const resp = await svc.createAnalyzer({ analyzerName, type: "ACCOUNT" }).promise(); | |
const analyzerArn = resp.arn!; | |
try { | |
// Now, find all eligible resources, create a map of them, and kick off scans for each one. | |
const analyzed: string[] = []; | |
const analyzedUrns: {[arn: string]: string} = {}; | |
for (const res of args.resources) { | |
let resourceArn: string | undefined; | |
if ([ "aws:iam/role:Role", "aws:kms/key:Key", "aws:lambda/function:Function", | |
"aws:lambda/layerFunction:LayerFunction", "aws:s3/bucket:Bucket", "aws:sqs/queue:Queue" ]. | |
indexOf(res.type) !== -1) { | |
resourceArn = res.props.arn; | |
} | |
if (resourceArn) { | |
await svc.startResourceScan({ analyzerArn, resourceArn }).promise(); | |
analyzed.push(resourceArn); | |
analyzedUrns[resourceArn] = res.urn; | |
} | |
} | |
// Wait until all resources have been analyzed. | |
for (let i = 0; i < 30; i++) { | |
const analyzed: {[arn: string]: boolean} = {}; | |
let nextToken: string | undefined; | |
do { | |
const result = await svc.listAnalyzedResources({ analyzerArn }).promise(); | |
for (const res of result.analyzedResources) { | |
analyzed[res.resourceArn] = true; | |
} | |
nextToken = result.nextToken; | |
} while (nextToken); | |
let done = true; | |
for (const arn of Object.keys(analyzedUrns)) { | |
if (!analyzed[arn]) { | |
done = false; | |
break; | |
} | |
} | |
if (done) { | |
break; | |
} | |
if (i == 30-1) { | |
reportViolation(`Timed out waiting for IAM Access Analyzer results; is the region correct?`); | |
return; | |
} else { | |
await new Promise((resolve) => setTimeout(resolve, 1000)); | |
} | |
} | |
// Now that the scan is ready, go ahead and list the findings, triggering errors as appropriate. | |
let nextToken: string | undefined; | |
do { | |
const result = await svc.listFindings({ analyzerArn, nextToken }).promise(); | |
// TODO(joe): restrict findings based on date. Unfortunately, we can't easily filter to what's "new". | |
for (let finding of result.findings) { | |
if (finding.isPublic && finding.resource) { | |
// Only report violations for resources within this stack. | |
const urn = analyzedUrns[finding.resource]; | |
if (urn) { | |
reportViolation( | |
`${JSON.stringify(finding.principal)} has ${finding.action} access to ` + | |
`${finding.resourceType} ${finding.resource} (public) ${finding.error || ""} ` + | |
`(message ID ${finding.id})`, | |
urn); | |
} | |
} | |
} | |
nextToken = result.nextToken; | |
} while (nextToken); | |
} finally { | |
// Ensure to delete the analyzer before returning. | |
await svc.deleteAnalyzer({ analyzerName }).promise(); | |
} | |
}, | |
}], | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "aws-typescript", | |
"version": "0.0.1", | |
"lockfileVersion": 1, | |
"requires": true, | |
"dependencies": { | |
"@protobufjs/aspromise": { | |
"version": "1.1.2", | |
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", | |
"integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" | |
}, | |
"@protobufjs/base64": { | |
"version": "1.1.2", | |
"resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", | |
"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" | |
}, | |
"@protobufjs/codegen": { | |
"version": "2.0.4", | |
"resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", | |
"integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" | |
}, | |
"@protobufjs/eventemitter": { | |
"version": "1.1.0", | |
"resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", | |
"integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" | |
}, | |
"@protobufjs/fetch": { | |
"version": "1.1.0", | |
"resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", | |
"integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", | |
"requires": { | |
"@protobufjs/aspromise": "^1.1.1", | |
"@protobufjs/inquire": "^1.1.0" | |
} | |
}, | |
"@protobufjs/float": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", | |
"integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" | |
}, | |
"@protobufjs/inquire": { | |
"version": "1.1.0", | |
"resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", | |
"integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" | |
}, | |
"@protobufjs/path": { | |
"version": "1.1.2", | |
"resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", | |
"integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" | |
}, | |
"@protobufjs/pool": { | |
"version": "1.1.0", | |
"resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", | |
"integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" | |
}, | |
"@protobufjs/utf8": { | |
"version": "1.1.0", | |
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", | |
"integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" | |
}, | |
"@pulumi/aws": { | |
"version": "1.13.0", | |
"resolved": "https://registry.npmjs.org/@pulumi/aws/-/aws-1.13.0.tgz", | |
"integrity": "sha512-8n0yQG7wmXW80RlbV32nguGhcjuPsmefDIzQaN0+wjyn4gLgJeqSApVc3npHDScLVkb8pGDy1onRpmTUseGrSA==", | |
"requires": { | |
"@pulumi/pulumi": "^1.0.0", | |
"aws-sdk": "^2.0.0", | |
"builtin-modules": "3.0.0", | |
"mime": "^2.0.0", | |
"read-package-tree": "^5.2.1", | |
"resolve": "^1.7.1" | |
} | |
}, | |
"@pulumi/policy": { | |
"version": "0.3.0", | |
"resolved": "https://registry.npmjs.org/@pulumi/policy/-/policy-0.3.0.tgz", | |
"integrity": "sha512-unjr5uCk4g/KjfcYH3WAvo2NNrKuaXNkeYUMN4ctq2cqnH7o3+S7nVUuKQTYrnQlLmYoXCcHEadj8Pg1kbVjhw==", | |
"requires": { | |
"@pulumi/pulumi": "^1.6.1", | |
"google-protobuf": "^3.5.0", | |
"grpc": "^1.20.2", | |
"protobufjs": "^6.8.6" | |
} | |
}, | |
"@pulumi/pulumi": { | |
"version": "1.6.1", | |
"resolved": "https://registry.npmjs.org/@pulumi/pulumi/-/pulumi-1.6.1.tgz", | |
"integrity": "sha512-KB8pz0awGaAmZz3iqtedNOq6hoCxsJtePV0jBAPnEK1T8lbrU+OsRVTHO+XTzvmCal7mgCZSkP2HnO2OtXE5hQ==", | |
"requires": { | |
"@pulumi/query": "^0.3.0", | |
"deasync": "^0.1.15", | |
"google-protobuf": "^3.5.0", | |
"grpc": "1.24.2", | |
"minimist": "^1.2.0", | |
"normalize-package-data": "^2.4.0", | |
"protobufjs": "^6.8.6", | |
"read-package-tree": "^5.3.1", | |
"require-from-string": "^2.0.1", | |
"semver": "^6.1.0", | |
"source-map-support": "^0.4.16", | |
"ts-node": "^7.0.0", | |
"typescript": "=3.6.3", | |
"upath": "^1.1.0" | |
} | |
}, | |
"@pulumi/query": { | |
"version": "0.3.0", | |
"resolved": "https://registry.npmjs.org/@pulumi/query/-/query-0.3.0.tgz", | |
"integrity": "sha512-xfo+yLRM2zVjVEA4p23IjQWzyWl1ZhWOGobsBqRpIarzLvwNH/RAGaoehdxlhx4X92302DrpdIFgTICMN4P38w==" | |
}, | |
"@types/bytebuffer": { | |
"version": "5.0.40", | |
"resolved": "https://registry.npmjs.org/@types/bytebuffer/-/bytebuffer-5.0.40.tgz", | |
"integrity": "sha512-h48dyzZrPMz25K6Q4+NCwWaxwXany2FhQg/ErOcdZS1ZpsaDnDMZg8JYLMTGz7uvXKrcKGJUZJlZObyfgdaN9g==", | |
"requires": { | |
"@types/long": "*", | |
"@types/node": "*" | |
}, | |
"dependencies": { | |
"@types/node": { | |
"version": "12.12.14", | |
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz", | |
"integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==" | |
} | |
} | |
}, | |
"@types/long": { | |
"version": "4.0.0", | |
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz", | |
"integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==" | |
}, | |
"@types/node": { | |
"version": "8.10.59", | |
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.59.tgz", | |
"integrity": "sha512-8RkBivJrDCyPpBXhVZcjh7cQxVBSmRk9QM7hOketZzp6Tg79c0N8kkpAIito9bnJ3HCVCHVYz+KHTEbfQNfeVQ==" | |
}, | |
"@types/uuid": { | |
"version": "3.4.6", | |
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.6.tgz", | |
"integrity": "sha512-cCdlC/1kGEZdEglzOieLDYBxHsvEOIg7kp/2FYyVR9Pxakq+Qf/inL3RKQ+PA8gOlI/NnL+fXmQH12nwcGzsHw==", | |
"requires": { | |
"@types/node": "*" | |
} | |
}, | |
"ansi-regex": { | |
"version": "2.1.1", | |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", | |
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" | |
}, | |
"arrify": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", | |
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" | |
}, | |
"asap": { | |
"version": "2.0.6", | |
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", | |
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" | |
}, | |
"ascli": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", | |
"integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", | |
"requires": { | |
"colour": "~0.7.1", | |
"optjs": "~3.2.2" | |
} | |
}, | |
"aws-sdk": { | |
"version": "2.582.0", | |
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.582.0.tgz", | |
"integrity": "sha512-imwZfj/QPvsSWZ3xiD3eSicPCF7X51S5q+oGtX6hUQdkglz0ZtP/j7FvX+U9VP1yu29b9vrgHTRI5Xy5VrmxWQ==", | |
"requires": { | |
"buffer": "^4.9.1", | |
"events": "^1.1.1", | |
"ieee754": "^1.1.13", | |
"jmespath": "^0.15.0", | |
"querystring": "^0.2.0", | |
"sax": "^1.2.1", | |
"url": "^0.10.3", | |
"uuid": "^3.3.2", | |
"xml2js": "^0.4.19" | |
} | |
}, | |
"balanced-match": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", | |
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" | |
}, | |
"base64-js": { | |
"version": "1.3.1", | |
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", | |
"integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" | |
}, | |
"bindings": { | |
"version": "1.5.0", | |
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", | |
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", | |
"requires": { | |
"file-uri-to-path": "1.0.0" | |
} | |
}, | |
"brace-expansion": { | |
"version": "1.1.11", | |
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | |
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | |
"requires": { | |
"balanced-match": "^1.0.0", | |
"concat-map": "0.0.1" | |
} | |
}, | |
"buffer": { | |
"version": "4.9.2", | |
"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", | |
"integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", | |
"requires": { | |
"base64-js": "^1.0.2", | |
"ieee754": "^1.1.4", | |
"isarray": "^1.0.0" | |
} | |
}, | |
"buffer-from": { | |
"version": "1.1.1", | |
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", | |
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" | |
}, | |
"builtin-modules": { | |
"version": "3.0.0", | |
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.0.0.tgz", | |
"integrity": "sha512-hMIeU4K2ilbXV6Uv93ZZ0Avg/M91RaKXucQ+4me2Do1txxBDyDZWCBa5bJSLqoNTRpXTLwEzIk1KmloenDDjhg==" | |
}, | |
"bytebuffer": { | |
"version": "5.0.1", | |
"resolved": "https://registry.npmjs.org/bytebuffer/-/bytebuffer-5.0.1.tgz", | |
"integrity": "sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0=", | |
"requires": { | |
"long": "~3" | |
} | |
}, | |
"camelcase": { | |
"version": "2.1.1", | |
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", | |
"integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" | |
}, | |
"cliui": { | |
"version": "3.2.0", | |
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", | |
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", | |
"requires": { | |
"string-width": "^1.0.1", | |
"strip-ansi": "^3.0.1", | |
"wrap-ansi": "^2.0.0" | |
} | |
}, | |
"code-point-at": { | |
"version": "1.1.0", | |
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", | |
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" | |
}, | |
"colour": { | |
"version": "0.7.1", | |
"resolved": "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz", | |
"integrity": "sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=" | |
}, | |
"concat-map": { | |
"version": "0.0.1", | |
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | |
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" | |
}, | |
"deasync": { | |
"version": "0.1.16", | |
"resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.16.tgz", | |
"integrity": "sha512-FNCjDwxGbhK+Ye8fmE3p2ahIjERhkbuwX+WVGZPtSbAh9LfE1Saa2p0l+f0t11sIlk9D8W+Bym+cDp6r5yghAQ==", | |
"requires": { | |
"bindings": "^1.5.0", | |
"node-addon-api": "^1.7.1" | |
} | |
}, | |
"debuglog": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", | |
"integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=" | |
}, | |
"decamelize": { | |
"version": "1.2.0", | |
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", | |
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" | |
}, | |
"define-properties": { | |
"version": "1.1.3", | |
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", | |
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", | |
"requires": { | |
"object-keys": "^1.0.12" | |
} | |
}, | |
"dezalgo": { | |
"version": "1.0.3", | |
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", | |
"integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", | |
"requires": { | |
"asap": "^2.0.0", | |
"wrappy": "1" | |
} | |
}, | |
"diff": { | |
"version": "3.5.0", | |
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", | |
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" | |
}, | |
"es-abstract": { | |
"version": "1.16.2", | |
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.2.tgz", | |
"integrity": "sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==", | |
"requires": { | |
"es-to-primitive": "^1.2.1", | |
"function-bind": "^1.1.1", | |
"has": "^1.0.3", | |
"has-symbols": "^1.0.1", | |
"is-callable": "^1.1.4", | |
"is-regex": "^1.0.4", | |
"object-inspect": "^1.7.0", | |
"object-keys": "^1.1.1", | |
"string.prototype.trimleft": "^2.1.0", | |
"string.prototype.trimright": "^2.1.0" | |
} | |
}, | |
"es-to-primitive": { | |
"version": "1.2.1", | |
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", | |
"integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", | |
"requires": { | |
"is-callable": "^1.1.4", | |
"is-date-object": "^1.0.1", | |
"is-symbol": "^1.0.2" | |
} | |
}, | |
"events": { | |
"version": "1.1.1", | |
"resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", | |
"integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" | |
}, | |
"file-uri-to-path": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", | |
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" | |
}, | |
"fs.realpath": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | |
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" | |
}, | |
"function-bind": { | |
"version": "1.1.1", | |
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", | |
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" | |
}, | |
"glob": { | |
"version": "7.1.6", | |
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", | |
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", | |
"requires": { | |
"fs.realpath": "^1.0.0", | |
"inflight": "^1.0.4", | |
"inherits": "2", | |
"minimatch": "^3.0.4", | |
"once": "^1.3.0", | |
"path-is-absolute": "^1.0.0" | |
} | |
}, | |
"google-protobuf": { | |
"version": "3.11.0", | |
"resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.11.0.tgz", | |
"integrity": "sha512-Pni0ZGKZc/FpaRiz2n11+FfjzeuoUpnMdtuqoBUandjsEPsLDLh5C0yacl/bgNAFaZkyUgIGcGowW34u6mVWPw==" | |
}, | |
"graceful-fs": { | |
"version": "4.2.3", | |
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", | |
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" | |
}, | |
"grpc": { | |
"version": "1.24.2", | |
"resolved": "https://registry.npmjs.org/grpc/-/grpc-1.24.2.tgz", | |
"integrity": "sha512-EG3WH6AWMVvAiV15d+lr+K77HJ/KV/3FvMpjKjulXHbTwgDZkhkcWbwhxFAoTdxTkQvy0WFcO3Nog50QBbHZWw==", | |
"requires": { | |
"@types/bytebuffer": "^5.0.40", | |
"lodash.camelcase": "^4.3.0", | |
"lodash.clone": "^4.5.0", | |
"nan": "^2.13.2", | |
"node-pre-gyp": "^0.14.0", | |
"protobufjs": "^5.0.3" | |
}, | |
"dependencies": { | |
"abbrev": { | |
"version": "1.1.1", | |
"bundled": true | |
}, | |
"ansi-regex": { | |
"version": "2.1.1", | |
"bundled": true | |
}, | |
"aproba": { | |
"version": "1.2.0", | |
"bundled": true | |
}, | |
"are-we-there-yet": { | |
"version": "1.1.5", | |
"bundled": true, | |
"requires": { | |
"delegates": "^1.0.0", | |
"readable-stream": "^2.0.6" | |
} | |
}, | |
"balanced-match": { | |
"version": "1.0.0", | |
"bundled": true | |
}, | |
"brace-expansion": { | |
"version": "1.1.11", | |
"bundled": true, | |
"requires": { | |
"balanced-match": "^1.0.0", | |
"concat-map": "0.0.1" | |
} | |
}, | |
"chownr": { | |
"version": "1.1.3", | |
"bundled": true | |
}, | |
"code-point-at": { | |
"version": "1.1.0", | |
"bundled": true | |
}, | |
"concat-map": { | |
"version": "0.0.1", | |
"bundled": true | |
}, | |
"console-control-strings": { | |
"version": "1.1.0", | |
"bundled": true | |
}, | |
"core-util-is": { | |
"version": "1.0.2", | |
"bundled": true | |
}, | |
"debug": { | |
"version": "3.2.6", | |
"bundled": true, | |
"requires": { | |
"ms": "^2.1.1" | |
} | |
}, | |
"deep-extend": { | |
"version": "0.6.0", | |
"bundled": true | |
}, | |
"delegates": { | |
"version": "1.0.0", | |
"bundled": true | |
}, | |
"detect-libc": { | |
"version": "1.0.3", | |
"bundled": true | |
}, | |
"fs-minipass": { | |
"version": "1.2.7", | |
"bundled": true, | |
"requires": { | |
"minipass": "^2.6.0" | |
} | |
}, | |
"fs.realpath": { | |
"version": "1.0.0", | |
"bundled": true | |
}, | |
"gauge": { | |
"version": "2.7.4", | |
"bundled": true, | |
"requires": { | |
"aproba": "^1.0.3", | |
"console-control-strings": "^1.0.0", | |
"has-unicode": "^2.0.0", | |
"object-assign": "^4.1.0", | |
"signal-exit": "^3.0.0", | |
"string-width": "^1.0.1", | |
"strip-ansi": "^3.0.1", | |
"wide-align": "^1.1.0" | |
} | |
}, | |
"glob": { | |
"version": "7.1.4", | |
"bundled": true, | |
"requires": { | |
"fs.realpath": "^1.0.0", | |
"inflight": "^1.0.4", | |
"inherits": "2", | |
"minimatch": "^3.0.4", | |
"once": "^1.3.0", | |
"path-is-absolute": "^1.0.0" | |
} | |
}, | |
"has-unicode": { | |
"version": "2.0.1", | |
"bundled": true | |
}, | |
"iconv-lite": { | |
"version": "0.4.24", | |
"bundled": true, | |
"requires": { | |
"safer-buffer": ">= 2.1.2 < 3" | |
} | |
}, | |
"ignore-walk": { | |
"version": "3.0.3", | |
"bundled": true, | |
"requires": { | |
"minimatch": "^3.0.4" | |
} | |
}, | |
"inflight": { | |
"version": "1.0.6", | |
"bundled": true, | |
"requires": { | |
"once": "^1.3.0", | |
"wrappy": "1" | |
} | |
}, | |
"inherits": { | |
"version": "2.0.4", | |
"bundled": true | |
}, | |
"ini": { | |
"version": "1.3.5", | |
"bundled": true | |
}, | |
"is-fullwidth-code-point": { | |
"version": "1.0.0", | |
"bundled": true, | |
"requires": { | |
"number-is-nan": "^1.0.0" | |
} | |
}, | |
"isarray": { | |
"version": "1.0.0", | |
"bundled": true | |
}, | |
"minimatch": { | |
"version": "3.0.4", | |
"bundled": true, | |
"requires": { | |
"brace-expansion": "^1.1.7" | |
} | |
}, | |
"minimist": { | |
"version": "1.2.0", | |
"bundled": true | |
}, | |
"minipass": { | |
"version": "2.9.0", | |
"bundled": true, | |
"requires": { | |
"safe-buffer": "^5.1.2", | |
"yallist": "^3.0.0" | |
} | |
}, | |
"minizlib": { | |
"version": "1.3.3", | |
"bundled": true, | |
"requires": { | |
"minipass": "^2.9.0" | |
} | |
}, | |
"mkdirp": { | |
"version": "0.5.1", | |
"bundled": true, | |
"requires": { | |
"minimist": "0.0.8" | |
}, | |
"dependencies": { | |
"minimist": { | |
"version": "0.0.8", | |
"bundled": true | |
} | |
} | |
}, | |
"ms": { | |
"version": "2.1.2", | |
"bundled": true | |
}, | |
"needle": { | |
"version": "2.4.0", | |
"bundled": true, | |
"requires": { | |
"debug": "^3.2.6", | |
"iconv-lite": "^0.4.4", | |
"sax": "^1.2.4" | |
} | |
}, | |
"node-pre-gyp": { | |
"version": "0.14.0", | |
"bundled": true, | |
"requires": { | |
"detect-libc": "^1.0.2", | |
"mkdirp": "^0.5.1", | |
"needle": "^2.2.1", | |
"nopt": "^4.0.1", | |
"npm-packlist": "^1.1.6", | |
"npmlog": "^4.0.2", | |
"rc": "^1.2.7", | |
"rimraf": "^2.6.1", | |
"semver": "^5.3.0", | |
"tar": "^4.4.2" | |
} | |
}, | |
"nopt": { | |
"version": "4.0.1", | |
"bundled": true, | |
"requires": { | |
"abbrev": "1", | |
"osenv": "^0.1.4" | |
} | |
}, | |
"npm-bundled": { | |
"version": "1.0.6", | |
"bundled": true | |
}, | |
"npm-packlist": { | |
"version": "1.4.6", | |
"bundled": true, | |
"requires": { | |
"ignore-walk": "^3.0.1", | |
"npm-bundled": "^1.0.1" | |
} | |
}, | |
"npmlog": { | |
"version": "4.1.2", | |
"bundled": true, | |
"requires": { | |
"are-we-there-yet": "~1.1.2", | |
"console-control-strings": "~1.1.0", | |
"gauge": "~2.7.3", | |
"set-blocking": "~2.0.0" | |
} | |
}, | |
"number-is-nan": { | |
"version": "1.0.1", | |
"bundled": true | |
}, | |
"object-assign": { | |
"version": "4.1.1", | |
"bundled": true | |
}, | |
"once": { | |
"version": "1.4.0", | |
"bundled": true, | |
"requires": { | |
"wrappy": "1" | |
} | |
}, | |
"os-homedir": { | |
"version": "1.0.2", | |
"bundled": true | |
}, | |
"os-tmpdir": { | |
"version": "1.0.2", | |
"bundled": true | |
}, | |
"osenv": { | |
"version": "0.1.5", | |
"bundled": true, | |
"requires": { | |
"os-homedir": "^1.0.0", | |
"os-tmpdir": "^1.0.0" | |
} | |
}, | |
"path-is-absolute": { | |
"version": "1.0.1", | |
"bundled": true | |
}, | |
"process-nextick-args": { | |
"version": "2.0.1", | |
"bundled": true | |
}, | |
"protobufjs": { | |
"version": "5.0.3", | |
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-5.0.3.tgz", | |
"integrity": "sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA==", | |
"requires": { | |
"ascli": "~1", | |
"bytebuffer": "~5", | |
"glob": "^7.0.5", | |
"yargs": "^3.10.0" | |
} | |
}, | |
"rc": { | |
"version": "1.2.8", | |
"bundled": true, | |
"requires": { | |
"deep-extend": "^0.6.0", | |
"ini": "~1.3.0", | |
"minimist": "^1.2.0", | |
"strip-json-comments": "~2.0.1" | |
} | |
}, | |
"readable-stream": { | |
"version": "2.3.6", | |
"bundled": true, | |
"requires": { | |
"core-util-is": "~1.0.0", | |
"inherits": "~2.0.3", | |
"isarray": "~1.0.0", | |
"process-nextick-args": "~2.0.0", | |
"safe-buffer": "~5.1.1", | |
"string_decoder": "~1.1.1", | |
"util-deprecate": "~1.0.1" | |
} | |
}, | |
"rimraf": { | |
"version": "2.7.1", | |
"bundled": true, | |
"requires": { | |
"glob": "^7.1.3" | |
} | |
}, | |
"safe-buffer": { | |
"version": "5.1.2", | |
"bundled": true | |
}, | |
"safer-buffer": { | |
"version": "2.1.2", | |
"bundled": true | |
}, | |
"sax": { | |
"version": "1.2.4", | |
"bundled": true | |
}, | |
"semver": { | |
"version": "5.7.1", | |
"bundled": true | |
}, | |
"set-blocking": { | |
"version": "2.0.0", | |
"bundled": true | |
}, | |
"signal-exit": { | |
"version": "3.0.2", | |
"bundled": true | |
}, | |
"string-width": { | |
"version": "1.0.2", | |
"bundled": true, | |
"requires": { | |
"code-point-at": "^1.0.0", | |
"is-fullwidth-code-point": "^1.0.0", | |
"strip-ansi": "^3.0.0" | |
} | |
}, | |
"string_decoder": { | |
"version": "1.1.1", | |
"bundled": true, | |
"requires": { | |
"safe-buffer": "~5.1.0" | |
} | |
}, | |
"strip-ansi": { | |
"version": "3.0.1", | |
"bundled": true, | |
"requires": { | |
"ansi-regex": "^2.0.0" | |
} | |
}, | |
"strip-json-comments": { | |
"version": "2.0.1", | |
"bundled": true | |
}, | |
"tar": { | |
"version": "4.4.13", | |
"bundled": true, | |
"requires": { | |
"chownr": "^1.1.1", | |
"fs-minipass": "^1.2.5", | |
"minipass": "^2.8.6", | |
"minizlib": "^1.2.1", | |
"mkdirp": "^0.5.0", | |
"safe-buffer": "^5.1.2", | |
"yallist": "^3.0.3" | |
} | |
}, | |
"util-deprecate": { | |
"version": "1.0.2", | |
"bundled": true | |
}, | |
"wide-align": { | |
"version": "1.1.3", | |
"bundled": true, | |
"requires": { | |
"string-width": "^1.0.2 || 2" | |
} | |
}, | |
"wrappy": { | |
"version": "1.0.2", | |
"bundled": true | |
}, | |
"yallist": { | |
"version": "3.1.1", | |
"bundled": true | |
} | |
} | |
}, | |
"has": { | |
"version": "1.0.3", | |
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", | |
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", | |
"requires": { | |
"function-bind": "^1.1.1" | |
} | |
}, | |
"has-symbols": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", | |
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" | |
}, | |
"hosted-git-info": { | |
"version": "2.8.5", | |
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", | |
"integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" | |
}, | |
"ieee754": { | |
"version": "1.1.13", | |
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", | |
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" | |
}, | |
"inflight": { | |
"version": "1.0.6", | |
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | |
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | |
"requires": { | |
"once": "^1.3.0", | |
"wrappy": "1" | |
} | |
}, | |
"inherits": { | |
"version": "2.0.4", | |
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | |
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" | |
}, | |
"invert-kv": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", | |
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" | |
}, | |
"is-callable": { | |
"version": "1.1.4", | |
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", | |
"integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" | |
}, | |
"is-date-object": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", | |
"integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" | |
}, | |
"is-fullwidth-code-point": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", | |
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", | |
"requires": { | |
"number-is-nan": "^1.0.0" | |
} | |
}, | |
"is-regex": { | |
"version": "1.0.4", | |
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", | |
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", | |
"requires": { | |
"has": "^1.0.1" | |
} | |
}, | |
"is-symbol": { | |
"version": "1.0.3", | |
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", | |
"integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", | |
"requires": { | |
"has-symbols": "^1.0.1" | |
} | |
}, | |
"isarray": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | |
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" | |
}, | |
"jmespath": { | |
"version": "0.15.0", | |
"resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", | |
"integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" | |
}, | |
"json-parse-better-errors": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", | |
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" | |
}, | |
"lcid": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", | |
"integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", | |
"requires": { | |
"invert-kv": "^1.0.0" | |
} | |
}, | |
"lodash.camelcase": { | |
"version": "4.3.0", | |
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", | |
"integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" | |
}, | |
"lodash.clone": { | |
"version": "4.5.0", | |
"resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", | |
"integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=" | |
}, | |
"long": { | |
"version": "3.2.0", | |
"resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", | |
"integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=" | |
}, | |
"make-error": { | |
"version": "1.3.5", | |
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", | |
"integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==" | |
}, | |
"mime": { | |
"version": "2.4.4", | |
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", | |
"integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" | |
}, | |
"minimatch": { | |
"version": "3.0.4", | |
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | |
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | |
"requires": { | |
"brace-expansion": "^1.1.7" | |
} | |
}, | |
"minimist": { | |
"version": "1.2.0", | |
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", | |
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" | |
}, | |
"mkdirp": { | |
"version": "0.5.1", | |
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", | |
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", | |
"requires": { | |
"minimist": "0.0.8" | |
}, | |
"dependencies": { | |
"minimist": { | |
"version": "0.0.8", | |
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", | |
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" | |
} | |
} | |
}, | |
"nan": { | |
"version": "2.14.0", | |
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", | |
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" | |
}, | |
"node-addon-api": { | |
"version": "1.7.1", | |
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.1.tgz", | |
"integrity": "sha512-2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ==" | |
}, | |
"normalize-package-data": { | |
"version": "2.5.0", | |
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", | |
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", | |
"requires": { | |
"hosted-git-info": "^2.1.4", | |
"resolve": "^1.10.0", | |
"semver": "2 || 3 || 4 || 5", | |
"validate-npm-package-license": "^3.0.1" | |
}, | |
"dependencies": { | |
"semver": { | |
"version": "5.7.1", | |
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | |
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" | |
} | |
} | |
}, | |
"number-is-nan": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", | |
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" | |
}, | |
"object-inspect": { | |
"version": "1.7.0", | |
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", | |
"integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" | |
}, | |
"object-keys": { | |
"version": "1.1.1", | |
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", | |
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" | |
}, | |
"object.getownpropertydescriptors": { | |
"version": "2.0.3", | |
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", | |
"integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", | |
"requires": { | |
"define-properties": "^1.1.2", | |
"es-abstract": "^1.5.1" | |
} | |
}, | |
"once": { | |
"version": "1.4.0", | |
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | |
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | |
"requires": { | |
"wrappy": "1" | |
} | |
}, | |
"optjs": { | |
"version": "3.2.2", | |
"resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz", | |
"integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" | |
}, | |
"os-locale": { | |
"version": "1.4.0", | |
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", | |
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", | |
"requires": { | |
"lcid": "^1.0.0" | |
} | |
}, | |
"path-is-absolute": { | |
"version": "1.0.1", | |
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | |
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" | |
}, | |
"path-parse": { | |
"version": "1.0.6", | |
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", | |
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" | |
}, | |
"protobufjs": { | |
"version": "6.8.8", | |
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz", | |
"integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==", | |
"requires": { | |
"@protobufjs/aspromise": "^1.1.2", | |
"@protobufjs/base64": "^1.1.2", | |
"@protobufjs/codegen": "^2.0.4", | |
"@protobufjs/eventemitter": "^1.1.0", | |
"@protobufjs/fetch": "^1.1.0", | |
"@protobufjs/float": "^1.0.2", | |
"@protobufjs/inquire": "^1.1.0", | |
"@protobufjs/path": "^1.1.2", | |
"@protobufjs/pool": "^1.1.0", | |
"@protobufjs/utf8": "^1.1.0", | |
"@types/long": "^4.0.0", | |
"@types/node": "^10.1.0", | |
"long": "^4.0.0" | |
}, | |
"dependencies": { | |
"@types/node": { | |
"version": "10.17.6", | |
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.6.tgz", | |
"integrity": "sha512-0a2X6cgN3RdPBL2MIlR6Lt0KlM7fOFsutuXcdglcOq6WvLnYXgPQSh0Mx6tO1KCAE8MxbHSOSTWDoUxRq+l3DA==" | |
}, | |
"long": { | |
"version": "4.0.0", | |
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", | |
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" | |
} | |
} | |
}, | |
"punycode": { | |
"version": "1.3.2", | |
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", | |
"integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" | |
}, | |
"querystring": { | |
"version": "0.2.0", | |
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", | |
"integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" | |
}, | |
"read-package-json": { | |
"version": "2.1.0", | |
"resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.0.tgz", | |
"integrity": "sha512-KLhu8M1ZZNkMcrq1+0UJbR8Dii8KZUqB0Sha4mOx/bknfKI/fyrQVrG/YIt2UOtG667sD8+ee4EXMM91W9dC+A==", | |
"requires": { | |
"glob": "^7.1.1", | |
"graceful-fs": "^4.1.2", | |
"json-parse-better-errors": "^1.0.1", | |
"normalize-package-data": "^2.0.0", | |
"slash": "^1.0.0" | |
} | |
}, | |
"read-package-tree": { | |
"version": "5.3.1", | |
"resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", | |
"integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", | |
"requires": { | |
"read-package-json": "^2.0.0", | |
"readdir-scoped-modules": "^1.0.0", | |
"util-promisify": "^2.1.0" | |
} | |
}, | |
"readdir-scoped-modules": { | |
"version": "1.1.0", | |
"resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", | |
"integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", | |
"requires": { | |
"debuglog": "^1.0.1", | |
"dezalgo": "^1.0.0", | |
"graceful-fs": "^4.1.2", | |
"once": "^1.3.0" | |
} | |
}, | |
"require-from-string": { | |
"version": "2.0.2", | |
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", | |
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" | |
}, | |
"resolve": { | |
"version": "1.13.1", | |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", | |
"integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", | |
"requires": { | |
"path-parse": "^1.0.6" | |
} | |
}, | |
"sax": { | |
"version": "1.2.4", | |
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", | |
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" | |
}, | |
"semver": { | |
"version": "6.3.0", | |
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | |
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" | |
}, | |
"slash": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", | |
"integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" | |
}, | |
"source-map": { | |
"version": "0.5.7", | |
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | |
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" | |
}, | |
"source-map-support": { | |
"version": "0.4.18", | |
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", | |
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", | |
"requires": { | |
"source-map": "^0.5.6" | |
} | |
}, | |
"spdx-correct": { | |
"version": "3.1.0", | |
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", | |
"integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", | |
"requires": { | |
"spdx-expression-parse": "^3.0.0", | |
"spdx-license-ids": "^3.0.0" | |
} | |
}, | |
"spdx-exceptions": { | |
"version": "2.2.0", | |
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", | |
"integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" | |
}, | |
"spdx-expression-parse": { | |
"version": "3.0.0", | |
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", | |
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", | |
"requires": { | |
"spdx-exceptions": "^2.1.0", | |
"spdx-license-ids": "^3.0.0" | |
} | |
}, | |
"spdx-license-ids": { | |
"version": "3.0.5", | |
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", | |
"integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" | |
}, | |
"string-width": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", | |
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", | |
"requires": { | |
"code-point-at": "^1.0.0", | |
"is-fullwidth-code-point": "^1.0.0", | |
"strip-ansi": "^3.0.0" | |
} | |
}, | |
"string.prototype.trimleft": { | |
"version": "2.1.0", | |
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", | |
"integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", | |
"requires": { | |
"define-properties": "^1.1.3", | |
"function-bind": "^1.1.1" | |
} | |
}, | |
"string.prototype.trimright": { | |
"version": "2.1.0", | |
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", | |
"integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", | |
"requires": { | |
"define-properties": "^1.1.3", | |
"function-bind": "^1.1.1" | |
} | |
}, | |
"strip-ansi": { | |
"version": "3.0.1", | |
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", | |
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", | |
"requires": { | |
"ansi-regex": "^2.0.0" | |
} | |
}, | |
"ts-node": { | |
"version": "7.0.1", | |
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", | |
"integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", | |
"requires": { | |
"arrify": "^1.0.0", | |
"buffer-from": "^1.1.0", | |
"diff": "^3.1.0", | |
"make-error": "^1.1.1", | |
"minimist": "^1.2.0", | |
"mkdirp": "^0.5.1", | |
"source-map-support": "^0.5.6", | |
"yn": "^2.0.0" | |
}, | |
"dependencies": { | |
"source-map": { | |
"version": "0.6.1", | |
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | |
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" | |
}, | |
"source-map-support": { | |
"version": "0.5.16", | |
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", | |
"integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", | |
"requires": { | |
"buffer-from": "^1.0.0", | |
"source-map": "^0.6.0" | |
} | |
} | |
} | |
}, | |
"typescript": { | |
"version": "3.6.3", | |
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz", | |
"integrity": "sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==" | |
}, | |
"upath": { | |
"version": "1.2.0", | |
"resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", | |
"integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" | |
}, | |
"url": { | |
"version": "0.10.3", | |
"resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", | |
"integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", | |
"requires": { | |
"punycode": "1.3.2", | |
"querystring": "0.2.0" | |
} | |
}, | |
"util-promisify": { | |
"version": "2.1.0", | |
"resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", | |
"integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", | |
"requires": { | |
"object.getownpropertydescriptors": "^2.0.3" | |
} | |
}, | |
"util.promisify": { | |
"version": "1.0.0", | |
"resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", | |
"integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", | |
"requires": { | |
"define-properties": "^1.1.2", | |
"object.getownpropertydescriptors": "^2.0.3" | |
} | |
}, | |
"uuid": { | |
"version": "3.3.3", | |
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", | |
"integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" | |
}, | |
"validate-npm-package-license": { | |
"version": "3.0.4", | |
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", | |
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", | |
"requires": { | |
"spdx-correct": "^3.0.0", | |
"spdx-expression-parse": "^3.0.0" | |
} | |
}, | |
"window-size": { | |
"version": "0.1.4", | |
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", | |
"integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" | |
}, | |
"wrap-ansi": { | |
"version": "2.1.0", | |
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", | |
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", | |
"requires": { | |
"string-width": "^1.0.1", | |
"strip-ansi": "^3.0.1" | |
} | |
}, | |
"wrappy": { | |
"version": "1.0.2", | |
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | |
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" | |
}, | |
"xml2js": { | |
"version": "0.4.22", | |
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz", | |
"integrity": "sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==", | |
"requires": { | |
"sax": ">=0.6.0", | |
"util.promisify": "~1.0.0", | |
"xmlbuilder": "~11.0.0" | |
} | |
}, | |
"xmlbuilder": { | |
"version": "11.0.1", | |
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", | |
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" | |
}, | |
"y18n": { | |
"version": "3.2.1", | |
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", | |
"integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" | |
}, | |
"yargs": { | |
"version": "3.32.0", | |
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", | |
"integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", | |
"requires": { | |
"camelcase": "^2.0.1", | |
"cliui": "^3.0.3", | |
"decamelize": "^1.1.1", | |
"os-locale": "^1.4.0", | |
"string-width": "^1.0.1", | |
"window-size": "^0.1.4", | |
"y18n": "^3.2.0" | |
} | |
}, | |
"yn": { | |
"version": "2.0.0", | |
"resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", | |
"integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "aws-typescript", | |
"version": "0.0.1", | |
"dependencies": { | |
"@pulumi/aws": "^1.0.0", | |
"@pulumi/policy": "^0.3.0", | |
"@pulumi/pulumi": "^1.0.0", | |
"@types/uuid": "^3.4.6", | |
"aws-sdk": "^2.582.0", | |
"uuid": "^3.3.3" | |
}, | |
"devDependencies": { | |
"@types/node": "^8.0.0" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
description: A policy pack that runs AWS IAM Access Analyzer during your deployments. | |
runtime: nodejs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Show hidden characters
{ | |
"compilerOptions": { | |
"outDir": "bin", | |
"target": "es6", | |
"module": "commonjs", | |
"moduleResolution": "node", | |
"declaration": true, | |
"sourceMap": false, | |
"stripInternal": true, | |
"experimentalDecorators": true, | |
"pretty": true, | |
"noFallthroughCasesInSwitch": true, | |
"noImplicitAny": true, | |
"noImplicitReturns": true, | |
"forceConsistentCasingInFileNames": true, | |
"strictNullChecks": true, | |
}, | |
"files": [ | |
"index.ts" | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment