diff --git a/package-lock.json b/package-lock.json index fcc745c..6f748d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,9 +23,9 @@ "dev": true }, "@types/form-data": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.0.tgz", - "integrity": "sha512-vm5OGsKc61Sx/GTRMQ9d0H0PYCDebT78/bdIBPCoPEHdgp0etaH1RzMmkDygymUmyXTj3rdWQn0sRUpYKZzljA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", + "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { "@types/node": "8.0.51" @@ -49,7 +49,7 @@ "integrity": "sha512-hlkmO+M7Xxx13YZwqQtXGC03KxcYbqmDQg3oHMRVODfSk2u0BELK7RfTNROisvrLRGOYdGoZPpnHwaPoKrPMbA==", "dev": true, "requires": { - "@types/form-data": "2.2.0", + "@types/form-data": "2.2.1", "@types/node": "8.0.51" } }, @@ -84,15 +84,15 @@ } }, "ajv": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", - "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", + "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", "dev": true, "requires": { "co": "4.6.0", "fast-deep-equal": "1.0.0", - "json-schema-traverse": "0.3.1", - "json-stable-stringify": "1.0.1" + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ammo": { @@ -128,7 +128,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "1.9.1" } }, "argparse": { @@ -573,13 +573,13 @@ "deep-eql": "3.0.1", "get-func-name": "2.0.0", "pathval": "1.1.0", - "type-detect": "4.0.3" + "type-detect": "4.0.5" } }, "chalk": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", - "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { "ansi-styles": "3.2.0", @@ -606,9 +606,9 @@ "dev": true }, "color-convert": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { "color-name": "1.1.3" @@ -742,7 +742,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.3" + "type-detect": "4.0.5" } }, "delayed-stream": { @@ -828,6 +828,12 @@ "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", "dev": true }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -1001,7 +1007,7 @@ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, "requires": { - "ajv": "5.2.3", + "ajv": "5.3.0", "har-schema": "2.0.0" } }, @@ -1029,7 +1035,7 @@ "boom": "4.3.1", "cryptiles": "3.1.2", "hoek": "4.2.0", - "sntp": "2.0.2" + "sntp": "2.1.0" } }, "he": { @@ -1266,15 +1272,6 @@ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "0.0.0" - } - }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -1296,12 +1293,6 @@ "graceful-fs": "4.1.11" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, "jsonpath-plus": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.16.0.tgz", @@ -3346,9 +3337,9 @@ } }, "resolve": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", - "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -3391,13 +3382,13 @@ } }, "serverless-domain-manager": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/serverless-domain-manager/-/serverless-domain-manager-1.1.17.tgz", - "integrity": "sha1-sKHye7tO3aruNPOFtPN2HBsv4Eg=", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/serverless-domain-manager/-/serverless-domain-manager-1.1.18.tgz", + "integrity": "sha1-GjhCdDcr5Ojh5QxlCUM4EfTbbQw=", "dev": true, "requires": { "aws-sdk": "2.149.0", - "chalk": "2.2.0" + "chalk": "2.3.0" } }, "serverless-offline": { @@ -3427,7 +3418,7 @@ "fs-extra": "4.0.2", "globby": "6.1.0", "lodash": "4.17.4", - "typescript": "2.5.3" + "typescript": "2.6.1" } }, "serverless-stack-output": { @@ -3471,9 +3462,9 @@ "dev": true }, "sntp": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", - "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "dev": true, "requires": { "hoek": "4.2.0" @@ -3685,7 +3676,7 @@ "dev": true, "requires": { "arrify": "1.0.1", - "chalk": "2.2.0", + "chalk": "2.3.0", "diff": "3.3.1", "make-error": "1.3.0", "minimist": "1.2.0", @@ -3731,21 +3722,21 @@ "requires": { "babel-code-frame": "6.26.0", "builtin-modules": "1.1.1", - "chalk": "2.2.0", + "chalk": "2.3.0", "commander": "2.11.0", "diff": "3.3.1", "glob": "7.1.2", "minimatch": "3.0.4", - "resolve": "1.4.0", + "resolve": "1.5.0", "semver": "5.4.1", "tslib": "1.8.0", - "tsutils": "2.12.1" + "tsutils": "2.12.2" } }, "tsutils": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.12.1.tgz", - "integrity": "sha1-9Nlc4zkciXHkblTEzw7bCiHdWyQ=", + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.12.2.tgz", + "integrity": "sha1-rVikhl0X7D3bZjG2ylO+FKVlb/M=", "dev": true, "requires": { "tslib": "1.8.0" @@ -3768,15 +3759,15 @@ "optional": true }, "type-detect": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz", - "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.5.tgz", + "integrity": "sha512-N9IvkQslUGYGC24RkJk1ba99foK6TkwC2FHAEBlQFBP0RxQZS8ZpJuAZcwiY/w9ZJHFQb1aOXBI60OdxhTrwEQ==", "dev": true }, "typescript": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz", - "integrity": "sha512-ptLSQs2S4QuS6/OD1eAKG+S5G8QQtrU5RT32JULdZQtM1L3WTi34Wsu48Yndzi8xsObRAB9RPt/KhA9wlpEF6w==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.1.tgz", + "integrity": "sha1-7znN6ierrAtQAkLWcmq5DgyEZjE=", "dev": true }, "universalify": { diff --git a/package.json b/package.json index 668f6ce..d1bdede 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "request-promise-native": "1.0.5", "rimraf": "2.6.2", "serverless-aws-documentation": "1.0.0", - "serverless-domain-manager": "1.1.17", + "serverless-domain-manager": "1.1.18", "serverless-offline": "3.16.0", "serverless-plugin-typescript": "1.1.3", "serverless-stack-output": "0.2.0", diff --git a/shared/api.interfaces.ts b/shared/api.interfaces.ts index 3a9fad7..a883966 100644 --- a/shared/api.interfaces.ts +++ b/shared/api.interfaces.ts @@ -1,11 +1,11 @@ -import { APIGatewayEvent, Context, ProxyCallback, ProxyHandler, ProxyResult } from 'aws-lambda'; // tslint:disable-line no-implicit-dependencies (Using only the type information from the @types package.) +import { APIGatewayEvent, Context, ProxyCallback, ProxyResult } from 'aws-lambda'; // tslint:disable-line no-implicit-dependencies (Using only the type information from the @types package.) import { ErrorResult } from './errors'; // Type aliases to hide the 'aws-lambda' package and have consistent, short naming. export type ApiCallback = ProxyCallback; export type ApiContext = Context; export type ApiEvent = APIGatewayEvent; -export type ApiHandler = ProxyHandler; +export type ApiHandler = (event: APIGatewayEvent, context: Context, callback: ApiCallback) => void; // Same as ProxyHandler, but requires callback. export type ApiResponse = ProxyResult; export interface ErrorResponseBody { diff --git a/src/health/health.controller.spec.ts b/src/health/health.controller.spec.ts index 730f84a..8fa203c 100644 --- a/src/health/health.controller.spec.ts +++ b/src/health/health.controller.spec.ts @@ -68,7 +68,7 @@ describe('HealthController', () => { }; } - handler(event, {}, (error?: Error, result?: ApiResponse): void => { + handler(event, {}, (error?: Error | null, result?: ApiResponse): void => { if (typeof result === 'undefined') { reject('No result was returned by the handler!'); return; diff --git a/src/swagger/swagger.service.ts b/src/swagger/swagger.service.ts index 739b124..de211a3 100644 --- a/src/swagger/swagger.service.ts +++ b/src/swagger/swagger.service.ts @@ -31,7 +31,7 @@ export class SwaggerService { const version: string = this._env.API_INFO_VERSION; return this._repo.getRestApiId(stageName, restApiName) - .then((restApiId: string) => { + .then((restApiId: string | undefined) => { if (!restApiId) { throw new NotFoundResult(ErrorCode.InvalidName, 'Cannot find the API with the specified name!'); } diff --git a/test/index.ts b/test/index.ts index adc335a..b29a735 100644 --- a/test/index.ts +++ b/test/index.ts @@ -13,7 +13,7 @@ export const callSuccess: SuccessCaller = (handler: ApiHandler, pathParameter event.pathParameters = pathParameters; } - handler(event, {}, (error?: Error, result?: ApiResponse): void => { + handler(event, {}, (error?: Error | null, result?: ApiResponse): void => { if (typeof result === 'undefined') { reject('No result was returned by the handler!'); return; @@ -35,7 +35,7 @@ export const callFailure: FailureCaller = (handler: ApiHandler, pathParameters?: event.pathParameters = pathParameters; } - handler(event, {}, (error?: Error, result?: ApiResponse): void => { + handler(event, {}, (error?: Error | null, result?: ApiResponse): void => { if (typeof result === 'undefined') { reject('No result was returned by the handler!'); return;