UNPKG

@aws-lambda-powertools/parser

Version:
232 lines (231 loc) 9.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AppSyncLambdaIdentity = exports.AppSyncOidcIdentity = exports.AppSyncIamIdentity = exports.AppSyncCognitoIdentity = exports.AppSyncBatchResolverSchema = exports.AppSyncResolverSchema = void 0; const zod_1 = require("zod"); const appsync_shared_js_1 = require("./appsync-shared.js"); Object.defineProperty(exports, "AppSyncCognitoIdentity", { enumerable: true, get: function () { return appsync_shared_js_1.AppSyncCognitoIdentity; } }); Object.defineProperty(exports, "AppSyncIamIdentity", { enumerable: true, get: function () { return appsync_shared_js_1.AppSyncIamIdentity; } }); Object.defineProperty(exports, "AppSyncOidcIdentity", { enumerable: true, get: function () { return appsync_shared_js_1.AppSyncOidcIdentity; } }); const AppSyncLambdaIdentity = zod_1.z.object({ resolverContext: zod_1.z.any(), }); exports.AppSyncLambdaIdentity = AppSyncLambdaIdentity; const AppSyncIdentity = zod_1.z.union([ appsync_shared_js_1.AppSyncCognitoIdentity, appsync_shared_js_1.AppSyncIamIdentity, appsync_shared_js_1.AppSyncOidcIdentity, AppSyncLambdaIdentity, ]); /** * A zod schema for an AppSync resolver event * * @example * ```json * { * "arguments": { * "id": "1973493" * }, * "source": null, * "identity": { * "accountId": "012345678901", * "cognitoIdentityAuthProvider": null, * "cognitoIdentityAuthType": null, * "cognitoIdentityId": null, * "cognitoIdentityPoolId": null, * "sourceIp": ["10.10.10.10"], * "userArn": "arn:aws:sts::012345678901:assumed-role/role", * "username": "AROAXYKJUOW6FHGUSK5FA:username" * }, * "request": { * "headers": { * "x-forwarded-for": "1.1.1.1, 2.2.2.2", * "cloudfront-viewer-country": "US", * "cloudfront-is-tablet-viewer": "false", * "via": "2.0 xxxxxxxxxxxxxxxx.cloudfront.net (CloudFront)", * "cloudfront-forwarded-proto": "https", * "origin": "https://us-west-1.console.aws.amazon.com", * "content-length": "217", * "accept-language": "en-US,en;q=0.9", * "host": "xxxxxxxxxxxxxxxx.appsync-api.us-west-1.amazonaws.com", * "x-forwarded-proto": "https", * "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", * "accept": "*!/!*", * "cloudfront-is-mobile-viewer": "false", * "cloudfront-is-smarttv-viewer": "false", * "accept-encoding": "gzip, deflate, br", * "referer": "https://us-west-1.console.aws.amazon.com/appsync/home?region=us-west-1", * "content-type": "application/json", * "sec-fetch-mode": "cors", * "x-amz-cf-id": "3aykhqlUwQeANU-HGY7E_guV5EkNeMMtwyOgiA==", * "x-amzn-trace-id": "Root=1-5f512f51-fac632066c5e848ae714", * "authorization": "eyJraWQiOiJScWFCSlJqYVJlM0hrSnBTUFpIcVRXazNOW...", * "sec-fetch-dest": "empty", * "x-amz-user-agent": "AWS-Console-AppSync/", * "cloudfront-is-desktop-viewer": "true", * "sec-fetch-site": "cross-site", * "x-forwarded-port": "443" * } * }, * "prev": { * "result": {} * }, * "info": { * "selectionSetList": ["id", "field1", "field2"], * "selectionSetGraphQL": "{\n id\n field1\n field2\n}", * "parentTypeName": "Mutation", * "fieldName": "createSomething", * "variables": {} * }, * "stash": {} * } * ``` * * @see {@link AppSyncResolverEvent | `AppSyncResolverEvent`} * @see {@link https://docs.aws.amazon.com/appsync/latest/devguide/resolver-context-reference-js.html} */ const AppSyncResolverSchema = zod_1.z.object({ arguments: zod_1.z.record(zod_1.z.string(), zod_1.z.any()), identity: zod_1.z.optional(AppSyncIdentity), source: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).nullable(), request: zod_1.z.object({ domainName: zod_1.z.string().nullable(), headers: zod_1.z.record(zod_1.z.string(), zod_1.z.string()), }), info: zod_1.z.object({ selectionSetList: zod_1.z.array(zod_1.z.string()), selectionSetGraphQL: zod_1.z.string(), parentTypeName: zod_1.z.string(), fieldName: zod_1.z.string(), variables: zod_1.z.record(zod_1.z.string(), zod_1.z.any()), }), prev: zod_1.z .object({ result: zod_1.z.record(zod_1.z.string(), zod_1.z.any()), }) .nullable(), stash: zod_1.z.record(zod_1.z.string(), zod_1.z.any()), }); exports.AppSyncResolverSchema = AppSyncResolverSchema; /** * A zod schema for a batch AppSync resolver event * * @example * ```json * [{ * "arguments": { * "id": "1973493" * }, * "source": null, * "identity": { * "accountId": "012345678901", * "cognitoIdentityAuthProvider": "cognitoIdentityAuthProvider", * "cognitoIdentityAuthType": "cognitoIdentityAuthType", * "cognitoIdentityId": "cognitoIdentityId", * "cognitoIdentityPoolId": "cognitoIdentityPoolId", * "sourceIp": ["10.10.10.10"], * "userArn": "arn:aws:sts::012345678901:assumed-role/role", * "username": "AROAXYKJUOW6FHGUSK5FA:username" * }, * "request": { * "headers": { * "x-forwarded-for": "1.1.1.1, 2.2.2.2", * "cloudfront-viewer-country": "US", * "cloudfront-is-tablet-viewer": "false", * "via": "2.0 xxxxxxxxxxxxxxxx.cloudfront.net (CloudFront)", * "cloudfront-forwarded-proto": "https", * "origin": "https://us-west-1.console.aws.amazon.com", * "content-length": "217", * "accept-language": "en-US,en;q=0.9", * "host": "xxxxxxxxxxxxxxxx.appsync-api.us-west-1.amazonaws.com", * "x-forwarded-proto": "https", * "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", * "accept": "*!/!*", * "cloudfront-is-mobile-viewer": "false", * "cloudfront-is-smarttv-viewer": "false", * "accept-encoding": "gzip, deflate, br", * "referer": "https://us-west-1.console.aws.amazon.com/appsync/home?region=us-west-1", * "content-type": "application/json", * "sec-fetch-mode": "cors", * "x-amz-cf-id": "3aykhqlUwQeANU-HGY7E_guV5EkNeMMtwyOgiA==", * "x-amzn-trace-id": "Root=1-5f512f51-fac632066c5e848ae714", * "authorization": "eyJraWQiOiJScWFCSlJqYVJlM0hrSnBTUFpIcVRXazNOW...", * "sec-fetch-dest": "empty", * "x-amz-user-agent": "AWS-Console-AppSync/", * "cloudfront-is-desktop-viewer": "true", * "sec-fetch-site": "cross-site", * "x-forwarded-port": "443" * } * }, * "prev": { * "result": {} * }, * "info": { * "selectionSetList": ["id", "field1", "field2"], * "selectionSetGraphQL": "{\n id\n field1\n field2\n}", * "parentTypeName": "Mutation", * "fieldName": "createSomething", * "variables": {} * }, * "stash": {} * }, * { * "arguments": { * "id": "1987311" * }, * "source": null, * "identity": { * "claims": { * "sub": "sub" * }, * "issuer": "issuer", * "sub": "sub * }, * "request": { * "headers": { * "x-forwarded-for": "1.1.1.1, 2.2.2.2", * "cloudfront-viewer-country": "US", * "cloudfront-is-tablet-viewer": "false", * "via": "2.0 xxxxxxxxxxxxxxxx.cloudfront.net (CloudFront)", * "cloudfront-forwarded-proto": "https", * "origin": "https://us-west-1.console.aws.amazon.com", * "content-length": "217", * "accept-language": "en-US,en;q=0.9", * "host": "xxxxxxxxxxxxxxxx.appsync-api.us-west-1.amazonaws.com", * "x-forwarded-proto": "https", * "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", * "accept": "*!/!*", * "cloudfront-is-mobile-viewer": "false", * "cloudfront-is-smarttv-viewer": "false", * "accept-encoding": "gzip, deflate, br", * "referer": "https://us-west-1.console.aws.amazon.com/appsync/home?region=us-west-1", * "content-type": "application/json", * "sec-fetch-mode": "cors", * "x-amz-cf-id": "3aykhqlUwQeANU-HGY7E_guV5EkNeMMtwyOgiA==", * "x-amzn-trace-id": "Root=1-5f512f51-fac632066c5e848ae714", * "authorization": "eyJraWQiOiJScWFCSlJqYVJlM0hrSnBTUFpIcVRXazNOW...", * "sec-fetch-dest": "empty", * "x-amz-user-agent": "AWS-Console-AppSync/", * "cloudfront-is-desktop-viewer": "true", * "sec-fetch-site": "cross-site", * "x-forwarded-port": "443" * } * }, * "prev": { * "result": {} * }, * "info": { * "selectionSetList": ["id", "field1", "field2"], * "selectionSetGraphQL": "{\n id\n field1\n field2\n}", * "parentTypeName": "Mutation", * "fieldName": "createSomething", * "variables": {} * }, * "stash": {} * }] * ``` * * @see {@link AppSyncBatchResolverEvent | `AppSyncBatchResolverEvent`} * @see {@link https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-lambda-resolvers.html#advanced-use-case-batching} */ const AppSyncBatchResolverSchema = zod_1.z.array(AppSyncResolverSchema); exports.AppSyncBatchResolverSchema = AppSyncBatchResolverSchema;