next-sanity 5.4.2 → 5.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,10 @@ Object.defineProperty(exports, '__esModule', {
6
6
  var webhook = require('@sanity/webhook');
7
7
  var readBody = require('./readBody.cjs');
8
8
  async function parseBody(req, secret) {
9
+ let waitForContentLakeEventualConsistency = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
10
+ return "text" in req ? parseAppBody(req, secret, waitForContentLakeEventualConsistency) : parsePageBody(req, secret, waitForContentLakeEventualConsistency);
11
+ }
12
+ async function parsePageBody(req, secret) {
9
13
  let waitForContentLakeEventualConsistency = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
10
14
  let signature = req.headers[webhook.SIGNATURE_HEADER_NAME];
11
15
  if (Array.isArray(signature)) {
@@ -1 +1 @@
1
- {"version":3,"file":"parseBody.cjs","sources":["../../src/webhook/parseBody.ts"],"sourcesContent":["import type {SanityDocument} from '@sanity/types'\nimport {isValidSignature, SIGNATURE_HEADER_NAME} from '@sanity/webhook'\nimport type {NextApiRequest} from 'next'\nimport type {NextRequest} from 'next/server'\n\nimport {_readBody as readBody} from './readBody'\n\n/** @public */\nexport type ParsedBody<T> = {\n /**\n * If a secret is given then it returns a boolean. If no secret is provided then no validation is done on the signature, and it'll return `null`\n */\n isValidSignature: boolean | null\n body: T\n}\n\n/** @public */\nexport type ParseBody<Body = SanityDocument> = ParsedBody<Body>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @public\n */\nexport async function parseBody<Body = SanityDocument>(\n req: NextApiRequest,\n secret?: string,\n waitForContentLakeEventualConsistency: boolean = true,\n): Promise<ParseBody<Body>> {\n let signature = req.headers[SIGNATURE_HEADER_NAME]!\n if (Array.isArray(signature)) {\n signature = signature[0]\n }\n\n const body = await readBody(req)\n const validSignature = secret ? isValidSignature(body, signature, secret.trim()) : null\n\n if (validSignature !== false && waitForContentLakeEventualConsistency) {\n await new Promise((resolve) => setTimeout(resolve, 1000))\n }\n\n return {\n body: body.trim() && JSON.parse(body),\n isValidSignature: validSignature,\n }\n}\n\n/** @public */\nexport type ParseAppBody<Body = SanityDocument> = ParsedBody<Body>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @public\n */\nexport async function parseAppBody<Body = SanityDocument>(\n req: NextRequest,\n secret?: string,\n waitForContentLakeEventualConsistency: boolean = true,\n): Promise<ParseAppBody<Body>> {\n const signature = req.headers.get(SIGNATURE_HEADER_NAME)!\n\n const body = await req.text()\n const validSignature = secret ? isValidSignature(body, signature, secret.trim()) : null\n\n if (validSignature !== false && waitForContentLakeEventualConsistency) {\n await new Promise((resolve) => setTimeout(resolve, 1000))\n }\n\n return {\n body: body.trim() && JSON.parse(body),\n isValidSignature: validSignature,\n }\n}\n"],"names":["parseBody","req","secret","waitForContentLakeEventualConsistency","arguments","length","undefined","signature","headers","SIGNATURE_HEADER_NAME","Array","isArray","body","readBody","validSignature","isValidSignature","trim","Promise","resolve","setTimeout","JSON","parse","parseAppBody","get","text"],"mappings":";;;;;;;AAuBA,eAAsBA,SACpBA,CAAAC,GAAA,EACAC,MACA,EAC0B;EAAA,IAD1BC,qCAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAiD,IACvB;EACtB,IAAAG,SAAA,GAAYN,GAAI,CAAAO,OAAA,CAAQC,OAAqB,CAAAA,qBAAA,CAAA;EAC7C,IAAAC,KAAA,CAAMC,OAAQ,CAAAJ,SAAS,CAAG,EAAA;IAC5BA,SAAA,GAAYA,UAAU,CAAC,CAAA;EACzB;EAEM,MAAAK,IAAA,GAAO,MAAMC,kBAAA,CAASZ,GAAG,CAAA;EACzB,MAAAa,cAAA,GAAiBZ,SAASa,OAAAA,CAAAA,gBAAiB,CAAAH,IAAA,EAAML,WAAWL,MAAO,CAAAc,IAAA,EAAM,CAAI,GAAA,IAAA;EAE/E,IAAAF,cAAA,KAAmB,SAASX,qCAAuC,EAAA;IACrE,MAAM,IAAIc,OAAQ,CAACC,WAAYC,UAAW,CAAAD,OAAA,EAAS,GAAI,CAAC,CAAA;EAC1D;EAEO,OAAA;IACLN,MAAMA,IAAK,CAAAI,IAAA,CAAA,CAAU,IAAAI,IAAA,CAAKC,MAAMT,IAAI,CAAA;IACpCG,gBAAkB,EAAAD;EAAA,CACpB;AACF;AASA,eAAsBQ,YACpBA,CAAArB,GAAA,EACAC,MACA,EAC6B;EAAA,IAD7BC,qCAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAiD,IACpB;EAC7B,MAAMG,SAAY,GAAAN,GAAA,CAAIO,OAAQ,CAAAe,GAAA,CAAId,OAAqB,CAAAA,qBAAA,CAAA;EAEjD,MAAAG,IAAA,GAAO,MAAMX,GAAA,CAAIuB,IAAK,EAAA;EACtB,MAAAV,cAAA,GAAiBZ,SAASa,OAAAA,CAAAA,gBAAiB,CAAAH,IAAA,EAAML,WAAWL,MAAO,CAAAc,IAAA,EAAM,CAAI,GAAA,IAAA;EAE/E,IAAAF,cAAA,KAAmB,SAASX,qCAAuC,EAAA;IACrE,MAAM,IAAIc,OAAQ,CAACC,WAAYC,UAAW,CAAAD,OAAA,EAAS,GAAI,CAAC,CAAA;EAC1D;EAEO,OAAA;IACLN,MAAMA,IAAK,CAAAI,IAAA,CAAA,CAAU,IAAAI,IAAA,CAAKC,MAAMT,IAAI,CAAA;IACpCG,gBAAkB,EAAAD;EAAA,CACpB;AACF;;"}
1
+ {"version":3,"file":"parseBody.cjs","sources":["../../src/webhook/parseBody.ts"],"sourcesContent":["import type {SanityDocument} from '@sanity/types'\nimport {isValidSignature, SIGNATURE_HEADER_NAME} from '@sanity/webhook'\nimport type {NextApiRequest} from 'next'\nimport type {NextRequest} from 'next/server'\n\nimport {_readBody as readBody} from './readBody'\n\n/** @public */\nexport type ParsedBody<T> = {\n /**\n * If a secret is given then it returns a boolean. If no secret is provided then no validation is done on the signature, and it'll return `null`\n */\n isValidSignature: boolean | null\n body: T\n}\n\n/**\n * @deprecated Use `ParsedBody` instead\n * @public\n */\nexport type ParseBody<Body = SanityDocument> = ParsedBody<Body>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @public\n */\nexport async function parseBody<Body = SanityDocument>(\n req: NextApiRequest,\n secret?: string,\n waitForContentLakeEventualConsistency?: boolean,\n): Promise<ParsedBody<Body>>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @public\n */\nexport async function parseBody<Body = SanityDocument>(\n req: NextRequest,\n secret?: string,\n waitForContentLakeEventualConsistency?: boolean,\n): Promise<ParsedBody<Body>>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @public\n */\n// eslint-disable-next-line require-await\nexport async function parseBody<Body = SanityDocument>(\n req: NextApiRequest | NextRequest,\n secret?: string,\n waitForContentLakeEventualConsistency: boolean = true,\n): Promise<ParsedBody<Body>> {\n return 'text' in req\n ? parseAppBody(req, secret, waitForContentLakeEventualConsistency)\n : parsePageBody(req, secret, waitForContentLakeEventualConsistency)\n}\n\nasync function parsePageBody<Body = SanityDocument>(\n req: NextApiRequest,\n secret?: string,\n waitForContentLakeEventualConsistency: boolean = true,\n): Promise<ParsedBody<Body>> {\n let signature = req.headers[SIGNATURE_HEADER_NAME]!\n if (Array.isArray(signature)) {\n signature = signature[0]\n }\n\n const body = await readBody(req)\n const validSignature = secret ? isValidSignature(body, signature, secret.trim()) : null\n\n if (validSignature !== false && waitForContentLakeEventualConsistency) {\n await new Promise((resolve) => setTimeout(resolve, 1000))\n }\n\n return {\n body: body.trim() && JSON.parse(body),\n isValidSignature: validSignature,\n }\n}\n\n/**\n * @deprecated Use `ParsedBody` instead\n * @public\n */\nexport type ParseAppBody<Body = SanityDocument> = ParsedBody<Body>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @deprecated Use `parseBody` instead\n * @public\n */\nexport async function parseAppBody<Body = SanityDocument>(\n req: NextRequest,\n secret?: string,\n waitForContentLakeEventualConsistency: boolean = true,\n): Promise<ParsedBody<Body>> {\n const signature = req.headers.get(SIGNATURE_HEADER_NAME)!\n\n const body = await req.text()\n const validSignature = secret ? isValidSignature(body, signature, secret.trim()) : null\n\n if (validSignature !== false && waitForContentLakeEventualConsistency) {\n await new Promise((resolve) => setTimeout(resolve, 1000))\n }\n\n return {\n body: body.trim() && JSON.parse(body),\n isValidSignature: validSignature,\n }\n}\n"],"names":["parseBody","req","secret","waitForContentLakeEventualConsistency","arguments","length","undefined","parseAppBody","parsePageBody","signature","headers","SIGNATURE_HEADER_NAME","Array","isArray","body","readBody","validSignature","isValidSignature","trim","Promise","resolve","setTimeout","JSON","parse","get","text"],"mappings":";;;;;;;AA+CA,eAAsBA,SACpBA,CAAAC,GAAA,EACAC,MACA,EAC2B;EAAA,IAD3BC,qCAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAiD,IACtB;EACpB,OAAA,MAAA,IAAUH,GACb,GAAAM,YAAA,CAAaN,GAAK,EAAAC,MAAA,EAAQC,qCAAqC,CAC/D,GAAAK,aAAA,CAAcP,GAAK,EAAAC,MAAA,EAAQC,qCAAqC,CAAA;AACtE;AAEA,eAAeK,aACbA,CAAAP,GAAA,EACAC,MACA,EAC2B;EAAA,IAD3BC,qCAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAiD,IACtB;EACvB,IAAAK,SAAA,GAAYR,GAAI,CAAAS,OAAA,CAAQC,OAAqB,CAAAA,qBAAA,CAAA;EAC7C,IAAAC,KAAA,CAAMC,OAAQ,CAAAJ,SAAS,CAAG,EAAA;IAC5BA,SAAA,GAAYA,UAAU,CAAC,CAAA;EACzB;EAEM,MAAAK,IAAA,GAAO,MAAMC,kBAAA,CAASd,GAAG,CAAA;EACzB,MAAAe,cAAA,GAAiBd,SAASe,OAAAA,CAAAA,gBAAiB,CAAAH,IAAA,EAAML,WAAWP,MAAO,CAAAgB,IAAA,EAAM,CAAI,GAAA,IAAA;EAE/E,IAAAF,cAAA,KAAmB,SAASb,qCAAuC,EAAA;IACrE,MAAM,IAAIgB,OAAQ,CAACC,WAAYC,UAAW,CAAAD,OAAA,EAAS,GAAI,CAAC,CAAA;EAC1D;EAEO,OAAA;IACLN,MAAMA,IAAK,CAAAI,IAAA,CAAA,CAAU,IAAAI,IAAA,CAAKC,MAAMT,IAAI,CAAA;IACpCG,gBAAkB,EAAAD;EAAA,CACpB;AACF;AAaA,eAAsBT,YACpBA,CAAAN,GAAA,EACAC,MACA,EAC2B;EAAA,IAD3BC,qCAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAiD,IACtB;EAC3B,MAAMK,SAAY,GAAAR,GAAA,CAAIS,OAAQ,CAAAc,GAAA,CAAIb,OAAqB,CAAAA,qBAAA,CAAA;EAEjD,MAAAG,IAAA,GAAO,MAAMb,GAAA,CAAIwB,IAAK,EAAA;EACtB,MAAAT,cAAA,GAAiBd,SAASe,OAAAA,CAAAA,gBAAiB,CAAAH,IAAA,EAAML,WAAWP,MAAO,CAAAgB,IAAA,EAAM,CAAI,GAAA,IAAA;EAE/E,IAAAF,cAAA,KAAmB,SAASb,qCAAuC,EAAA;IACrE,MAAM,IAAIgB,OAAQ,CAACC,WAAYC,UAAW,CAAAD,OAAA,EAAS,GAAI,CAAC,CAAA;EAC1D;EAEO,OAAA;IACLN,MAAMA,IAAK,CAAAI,IAAA,CAAA,CAAU,IAAAI,IAAA,CAAKC,MAAMT,IAAI,CAAA;IACpCG,gBAAkB,EAAAD;EAAA,CACpB;AACF;;"}
@@ -1,6 +1,10 @@
1
1
  import { isValidSignature, SIGNATURE_HEADER_NAME } from '@sanity/webhook';
2
2
  import { _readBody } from './readBody.js';
3
3
  async function parseBody(req, secret) {
4
+ let waitForContentLakeEventualConsistency = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
5
+ return "text" in req ? parseAppBody(req, secret, waitForContentLakeEventualConsistency) : parsePageBody(req, secret, waitForContentLakeEventualConsistency);
6
+ }
7
+ async function parsePageBody(req, secret) {
4
8
  let waitForContentLakeEventualConsistency = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
5
9
  let signature = req.headers[SIGNATURE_HEADER_NAME];
6
10
  if (Array.isArray(signature)) {
@@ -1 +1 @@
1
- {"version":3,"file":"parseBody.js","sources":["../../src/webhook/parseBody.ts"],"sourcesContent":["import type {SanityDocument} from '@sanity/types'\nimport {isValidSignature, SIGNATURE_HEADER_NAME} from '@sanity/webhook'\nimport type {NextApiRequest} from 'next'\nimport type {NextRequest} from 'next/server'\n\nimport {_readBody as readBody} from './readBody'\n\n/** @public */\nexport type ParsedBody<T> = {\n /**\n * If a secret is given then it returns a boolean. If no secret is provided then no validation is done on the signature, and it'll return `null`\n */\n isValidSignature: boolean | null\n body: T\n}\n\n/** @public */\nexport type ParseBody<Body = SanityDocument> = ParsedBody<Body>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @public\n */\nexport async function parseBody<Body = SanityDocument>(\n req: NextApiRequest,\n secret?: string,\n waitForContentLakeEventualConsistency: boolean = true,\n): Promise<ParseBody<Body>> {\n let signature = req.headers[SIGNATURE_HEADER_NAME]!\n if (Array.isArray(signature)) {\n signature = signature[0]\n }\n\n const body = await readBody(req)\n const validSignature = secret ? isValidSignature(body, signature, secret.trim()) : null\n\n if (validSignature !== false && waitForContentLakeEventualConsistency) {\n await new Promise((resolve) => setTimeout(resolve, 1000))\n }\n\n return {\n body: body.trim() && JSON.parse(body),\n isValidSignature: validSignature,\n }\n}\n\n/** @public */\nexport type ParseAppBody<Body = SanityDocument> = ParsedBody<Body>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @public\n */\nexport async function parseAppBody<Body = SanityDocument>(\n req: NextRequest,\n secret?: string,\n waitForContentLakeEventualConsistency: boolean = true,\n): Promise<ParseAppBody<Body>> {\n const signature = req.headers.get(SIGNATURE_HEADER_NAME)!\n\n const body = await req.text()\n const validSignature = secret ? isValidSignature(body, signature, secret.trim()) : null\n\n if (validSignature !== false && waitForContentLakeEventualConsistency) {\n await new Promise((resolve) => setTimeout(resolve, 1000))\n }\n\n return {\n body: body.trim() && JSON.parse(body),\n isValidSignature: validSignature,\n }\n}\n"],"names":["parseBody","req","secret","waitForContentLakeEventualConsistency","arguments","length","undefined","signature","headers","SIGNATURE_HEADER_NAME","Array","isArray","body","readBody","validSignature","isValidSignature","trim","Promise","resolve","setTimeout","JSON","parse","parseAppBody","get","text"],"mappings":";;AAuBA,eAAsBA,SACpBA,CAAAC,GAAA,EACAC,MACA,EAC0B;EAAA,IAD1BC,qCAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAiD,IACvB;EACtB,IAAAG,SAAA,GAAYN,GAAI,CAAAO,OAAA,CAAQC,qBAAqB,CAAA;EAC7C,IAAAC,KAAA,CAAMC,OAAQ,CAAAJ,SAAS,CAAG,EAAA;IAC5BA,SAAA,GAAYA,UAAU,CAAC,CAAA;EACzB;EAEM,MAAAK,IAAA,GAAO,MAAMC,SAAA,CAASZ,GAAG,CAAA;EACzB,MAAAa,cAAA,GAAiBZ,SAASa,gBAAiB,CAAAH,IAAA,EAAML,WAAWL,MAAO,CAAAc,IAAA,EAAM,CAAI,GAAA,IAAA;EAE/E,IAAAF,cAAA,KAAmB,SAASX,qCAAuC,EAAA;IACrE,MAAM,IAAIc,OAAQ,CAACC,WAAYC,UAAW,CAAAD,OAAA,EAAS,GAAI,CAAC,CAAA;EAC1D;EAEO,OAAA;IACLN,MAAMA,IAAK,CAAAI,IAAA,CAAA,CAAU,IAAAI,IAAA,CAAKC,MAAMT,IAAI,CAAA;IACpCG,gBAAkB,EAAAD;EAAA,CACpB;AACF;AASA,eAAsBQ,YACpBA,CAAArB,GAAA,EACAC,MACA,EAC6B;EAAA,IAD7BC,qCAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAiD,IACpB;EAC7B,MAAMG,SAAY,GAAAN,GAAA,CAAIO,OAAQ,CAAAe,GAAA,CAAId,qBAAqB,CAAA;EAEjD,MAAAG,IAAA,GAAO,MAAMX,GAAA,CAAIuB,IAAK,EAAA;EACtB,MAAAV,cAAA,GAAiBZ,SAASa,gBAAiB,CAAAH,IAAA,EAAML,WAAWL,MAAO,CAAAc,IAAA,EAAM,CAAI,GAAA,IAAA;EAE/E,IAAAF,cAAA,KAAmB,SAASX,qCAAuC,EAAA;IACrE,MAAM,IAAIc,OAAQ,CAACC,WAAYC,UAAW,CAAAD,OAAA,EAAS,GAAI,CAAC,CAAA;EAC1D;EAEO,OAAA;IACLN,MAAMA,IAAK,CAAAI,IAAA,CAAA,CAAU,IAAAI,IAAA,CAAKC,MAAMT,IAAI,CAAA;IACpCG,gBAAkB,EAAAD;EAAA,CACpB;AACF;"}
1
+ {"version":3,"file":"parseBody.js","sources":["../../src/webhook/parseBody.ts"],"sourcesContent":["import type {SanityDocument} from '@sanity/types'\nimport {isValidSignature, SIGNATURE_HEADER_NAME} from '@sanity/webhook'\nimport type {NextApiRequest} from 'next'\nimport type {NextRequest} from 'next/server'\n\nimport {_readBody as readBody} from './readBody'\n\n/** @public */\nexport type ParsedBody<T> = {\n /**\n * If a secret is given then it returns a boolean. If no secret is provided then no validation is done on the signature, and it'll return `null`\n */\n isValidSignature: boolean | null\n body: T\n}\n\n/**\n * @deprecated Use `ParsedBody` instead\n * @public\n */\nexport type ParseBody<Body = SanityDocument> = ParsedBody<Body>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @public\n */\nexport async function parseBody<Body = SanityDocument>(\n req: NextApiRequest,\n secret?: string,\n waitForContentLakeEventualConsistency?: boolean,\n): Promise<ParsedBody<Body>>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @public\n */\nexport async function parseBody<Body = SanityDocument>(\n req: NextRequest,\n secret?: string,\n waitForContentLakeEventualConsistency?: boolean,\n): Promise<ParsedBody<Body>>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @public\n */\n// eslint-disable-next-line require-await\nexport async function parseBody<Body = SanityDocument>(\n req: NextApiRequest | NextRequest,\n secret?: string,\n waitForContentLakeEventualConsistency: boolean = true,\n): Promise<ParsedBody<Body>> {\n return 'text' in req\n ? parseAppBody(req, secret, waitForContentLakeEventualConsistency)\n : parsePageBody(req, secret, waitForContentLakeEventualConsistency)\n}\n\nasync function parsePageBody<Body = SanityDocument>(\n req: NextApiRequest,\n secret?: string,\n waitForContentLakeEventualConsistency: boolean = true,\n): Promise<ParsedBody<Body>> {\n let signature = req.headers[SIGNATURE_HEADER_NAME]!\n if (Array.isArray(signature)) {\n signature = signature[0]\n }\n\n const body = await readBody(req)\n const validSignature = secret ? isValidSignature(body, signature, secret.trim()) : null\n\n if (validSignature !== false && waitForContentLakeEventualConsistency) {\n await new Promise((resolve) => setTimeout(resolve, 1000))\n }\n\n return {\n body: body.trim() && JSON.parse(body),\n isValidSignature: validSignature,\n }\n}\n\n/**\n * @deprecated Use `ParsedBody` instead\n * @public\n */\nexport type ParseAppBody<Body = SanityDocument> = ParsedBody<Body>\n/**\n * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries\n * without worrying about getting stale data.\n * @deprecated Use `parseBody` instead\n * @public\n */\nexport async function parseAppBody<Body = SanityDocument>(\n req: NextRequest,\n secret?: string,\n waitForContentLakeEventualConsistency: boolean = true,\n): Promise<ParsedBody<Body>> {\n const signature = req.headers.get(SIGNATURE_HEADER_NAME)!\n\n const body = await req.text()\n const validSignature = secret ? isValidSignature(body, signature, secret.trim()) : null\n\n if (validSignature !== false && waitForContentLakeEventualConsistency) {\n await new Promise((resolve) => setTimeout(resolve, 1000))\n }\n\n return {\n body: body.trim() && JSON.parse(body),\n isValidSignature: validSignature,\n }\n}\n"],"names":["parseBody","req","secret","waitForContentLakeEventualConsistency","arguments","length","undefined","parseAppBody","parsePageBody","signature","headers","SIGNATURE_HEADER_NAME","Array","isArray","body","readBody","validSignature","isValidSignature","trim","Promise","resolve","setTimeout","JSON","parse","get","text"],"mappings":";;AA+CA,eAAsBA,SACpBA,CAAAC,GAAA,EACAC,MACA,EAC2B;EAAA,IAD3BC,qCAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAiD,IACtB;EACpB,OAAA,MAAA,IAAUH,GACb,GAAAM,YAAA,CAAaN,GAAK,EAAAC,MAAA,EAAQC,qCAAqC,CAC/D,GAAAK,aAAA,CAAcP,GAAK,EAAAC,MAAA,EAAQC,qCAAqC,CAAA;AACtE;AAEA,eAAeK,aACbA,CAAAP,GAAA,EACAC,MACA,EAC2B;EAAA,IAD3BC,qCAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAiD,IACtB;EACvB,IAAAK,SAAA,GAAYR,GAAI,CAAAS,OAAA,CAAQC,qBAAqB,CAAA;EAC7C,IAAAC,KAAA,CAAMC,OAAQ,CAAAJ,SAAS,CAAG,EAAA;IAC5BA,SAAA,GAAYA,UAAU,CAAC,CAAA;EACzB;EAEM,MAAAK,IAAA,GAAO,MAAMC,SAAA,CAASd,GAAG,CAAA;EACzB,MAAAe,cAAA,GAAiBd,SAASe,gBAAiB,CAAAH,IAAA,EAAML,WAAWP,MAAO,CAAAgB,IAAA,EAAM,CAAI,GAAA,IAAA;EAE/E,IAAAF,cAAA,KAAmB,SAASb,qCAAuC,EAAA;IACrE,MAAM,IAAIgB,OAAQ,CAACC,WAAYC,UAAW,CAAAD,OAAA,EAAS,GAAI,CAAC,CAAA;EAC1D;EAEO,OAAA;IACLN,MAAMA,IAAK,CAAAI,IAAA,CAAA,CAAU,IAAAI,IAAA,CAAKC,MAAMT,IAAI,CAAA;IACpCG,gBAAkB,EAAAD;EAAA,CACpB;AACF;AAaA,eAAsBT,YACpBA,CAAAN,GAAA,EACAC,MACA,EAC2B;EAAA,IAD3BC,qCAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAiD,IACtB;EAC3B,MAAMK,SAAY,GAAAR,GAAA,CAAIS,OAAQ,CAAAc,GAAA,CAAIb,qBAAqB,CAAA;EAEjD,MAAAG,IAAA,GAAO,MAAMb,GAAA,CAAIwB,IAAK,EAAA;EACtB,MAAAT,cAAA,GAAiBd,SAASe,gBAAiB,CAAAH,IAAA,EAAML,WAAWP,MAAO,CAAAgB,IAAA,EAAM,CAAI,GAAA,IAAA;EAE/E,IAAAF,cAAA,KAAmB,SAASb,qCAAuC,EAAA;IACrE,MAAM,IAAIgB,OAAQ,CAACC,WAAYC,UAAW,CAAAD,OAAA,EAAS,GAAI,CAAC,CAAA;EAC1D;EAEO,OAAA;IACLN,MAAMA,IAAK,CAAAI,IAAA,CAAA,CAAU,IAAAI,IAAA,CAAKC,MAAMT,IAAI,CAAA;IACpCG,gBAAkB,EAAAD;EAAA,CACpB;AACF;"}
package/dist/webhook.d.ts CHANGED
@@ -9,21 +9,28 @@ import type {SanityDocument} from '@sanity/types'
9
9
  */
10
10
  export declare const config: PageConfig
11
11
 
12
- /** @public */
12
+ /**
13
+ * @deprecated Use `ParsedBody` instead
14
+ * @public
15
+ */
13
16
  export declare type ParseAppBody<Body = SanityDocument> = ParsedBody<Body>
14
17
 
15
18
  /**
16
19
  * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries
17
20
  * without worrying about getting stale data.
21
+ * @deprecated Use `parseBody` instead
18
22
  * @public
19
23
  */
20
24
  export declare function parseAppBody<Body = SanityDocument>(
21
25
  req: NextRequest,
22
26
  secret?: string,
23
27
  waitForContentLakeEventualConsistency?: boolean,
24
- ): Promise<ParseAppBody<Body>>
28
+ ): Promise<ParsedBody<Body>>
25
29
 
26
- /** @public */
30
+ /**
31
+ * @deprecated Use `ParsedBody` instead
32
+ * @public
33
+ */
27
34
  export declare type ParseBody<Body = SanityDocument> = ParsedBody<Body>
28
35
 
29
36
  /**
@@ -35,7 +42,18 @@ export declare function parseBody<Body = SanityDocument>(
35
42
  req: NextApiRequest,
36
43
  secret?: string,
37
44
  waitForContentLakeEventualConsistency?: boolean,
38
- ): Promise<ParseBody<Body>>
45
+ ): Promise<ParsedBody<Body>>
46
+
47
+ /**
48
+ * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries
49
+ * without worrying about getting stale data.
50
+ * @public
51
+ */
52
+ export declare function parseBody<Body = SanityDocument>(
53
+ req: NextRequest,
54
+ secret?: string,
55
+ waitForContentLakeEventualConsistency?: boolean,
56
+ ): Promise<ParsedBody<Body>>
39
57
 
40
58
  /** @public */
41
59
  export declare type ParsedBody<T> = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-sanity",
3
- "version": "5.4.2",
3
+ "version": "5.4.3",
4
4
  "description": "Sanity.io toolkit for Next.js",
5
5
  "keywords": [
6
6
  "sanity",
@@ -175,7 +175,7 @@
175
175
  },
176
176
  "dependencies": {
177
177
  "@sanity/preview-kit": "3.1.3",
178
- "@sanity/webhook": "2.0.0",
178
+ "@sanity/webhook": "3.0.0",
179
179
  "groq": "^3.0.0"
180
180
  },
181
181
  "devDependencies": {
@@ -14,7 +14,10 @@ export type ParsedBody<T> = {
14
14
  body: T
15
15
  }
16
16
 
17
- /** @public */
17
+ /**
18
+ * @deprecated Use `ParsedBody` instead
19
+ * @public
20
+ */
18
21
  export type ParseBody<Body = SanityDocument> = ParsedBody<Body>
19
22
  /**
20
23
  * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries
@@ -22,10 +25,41 @@ export type ParseBody<Body = SanityDocument> = ParsedBody<Body>
22
25
  * @public
23
26
  */
24
27
  export async function parseBody<Body = SanityDocument>(
28
+ req: NextApiRequest,
29
+ secret?: string,
30
+ waitForContentLakeEventualConsistency?: boolean,
31
+ ): Promise<ParsedBody<Body>>
32
+ /**
33
+ * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries
34
+ * without worrying about getting stale data.
35
+ * @public
36
+ */
37
+ export async function parseBody<Body = SanityDocument>(
38
+ req: NextRequest,
39
+ secret?: string,
40
+ waitForContentLakeEventualConsistency?: boolean,
41
+ ): Promise<ParsedBody<Body>>
42
+ /**
43
+ * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries
44
+ * without worrying about getting stale data.
45
+ * @public
46
+ */
47
+ // eslint-disable-next-line require-await
48
+ export async function parseBody<Body = SanityDocument>(
49
+ req: NextApiRequest | NextRequest,
50
+ secret?: string,
51
+ waitForContentLakeEventualConsistency: boolean = true,
52
+ ): Promise<ParsedBody<Body>> {
53
+ return 'text' in req
54
+ ? parseAppBody(req, secret, waitForContentLakeEventualConsistency)
55
+ : parsePageBody(req, secret, waitForContentLakeEventualConsistency)
56
+ }
57
+
58
+ async function parsePageBody<Body = SanityDocument>(
25
59
  req: NextApiRequest,
26
60
  secret?: string,
27
61
  waitForContentLakeEventualConsistency: boolean = true,
28
- ): Promise<ParseBody<Body>> {
62
+ ): Promise<ParsedBody<Body>> {
29
63
  let signature = req.headers[SIGNATURE_HEADER_NAME]!
30
64
  if (Array.isArray(signature)) {
31
65
  signature = signature[0]
@@ -44,18 +78,22 @@ export async function parseBody<Body = SanityDocument>(
44
78
  }
45
79
  }
46
80
 
47
- /** @public */
81
+ /**
82
+ * @deprecated Use `ParsedBody` instead
83
+ * @public
84
+ */
48
85
  export type ParseAppBody<Body = SanityDocument> = ParsedBody<Body>
49
86
  /**
50
87
  * Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries
51
88
  * without worrying about getting stale data.
89
+ * @deprecated Use `parseBody` instead
52
90
  * @public
53
91
  */
54
92
  export async function parseAppBody<Body = SanityDocument>(
55
93
  req: NextRequest,
56
94
  secret?: string,
57
95
  waitForContentLakeEventualConsistency: boolean = true,
58
- ): Promise<ParseAppBody<Body>> {
96
+ ): Promise<ParsedBody<Body>> {
59
97
  const signature = req.headers.get(SIGNATURE_HEADER_NAME)!
60
98
 
61
99
  const body = await req.text()