@aws-lambda-powertools/parser
Version:
The parser package for the Powertools for AWS Lambda (TypeScript) library.
232 lines (231 loc) • 9.45 kB
JavaScript
"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;