@webiny/sdk 6.4.0-beta.3 → 6.4.0-beta.5

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.
@@ -5,6 +5,7 @@ import { executeGraphQL } from "../executeGraphQL.js";
5
5
  import { ApiError } from "../../errors.js";
6
6
  import { getPresignedPostPayload } from "./getPresignedPostPayload.js";
7
7
  import { uploadToS3 } from "./utils/uploadToS3.js";
8
+ import { getImageMetadata } from "./utils/getImageMetadata.js";
8
9
  import { uploadLargeFile } from "./utils/uploadLargeFile.js";
9
10
  async function createFile(config, fetchFn, params) {
10
11
  const { file, data, fields, onProgress, multiPartThreshold = 100, signal } = params;
@@ -32,11 +33,15 @@ async function uploadSmallFile(config, fetchFn, file, data, fields, onProgress,
32
33
  onProgress,
33
34
  signal
34
35
  });
36
+ const imageMetadata = data.type?.startsWith("image/") ? await getImageMetadata(file) : void 0;
35
37
  const fileMetadata = {
36
38
  ...data,
37
39
  id: presignedResult.value.file.id,
38
40
  key: presignedResult.value.file.key,
39
- size: presignedResult.value.file.size
41
+ size: presignedResult.value.file.size,
42
+ ...imageMetadata ? {
43
+ metadata: imageMetadata
44
+ } : {}
40
45
  };
41
46
  return createFileRecord(config, fetchFn, fileMetadata, fields);
42
47
  }
@@ -54,11 +59,15 @@ async function uploadLargeFileWrapper(config, fetchFn, file, data, fields, onPro
54
59
  chunkSize: 50,
55
60
  parallelUploads: 5
56
61
  });
62
+ const imageMetadata = data.type?.startsWith("image/") ? await getImageMetadata(file) : void 0;
57
63
  const fileMetadata = {
58
64
  ...data,
59
65
  id: uploadedFile.id,
60
66
  key: uploadedFile.key,
61
- size: uploadedFile.size
67
+ size: uploadedFile.size,
68
+ ...imageMetadata ? {
69
+ metadata: imageMetadata
70
+ } : {}
62
71
  };
63
72
  return createFileRecord(config, fetchFn, fileMetadata, fields);
64
73
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"methods/fileManager/createFile.js","sources":["../../../src/methods/fileManager/createFile.ts"],"sourcesContent":["import type { WebinyConfig } from \"../../types.js\";\nimport { Result } from \"../../Result.js\";\nimport type { HttpError, NetworkError } from \"../../errors.js\";\nimport type { FmFile, FmIdentity, FmLocationInput, UploadProgress } from \"./fileManagerTypes.js\";\nimport { getFileSize } from \"./utils/fileTypeDetection.js\";\nimport { buildFieldsSelection } from \"./buildFieldsSelection.js\";\nimport { executeGraphQL } from \"../executeGraphQL.js\";\nimport { ApiError } from \"../../errors.js\";\nimport { getPresignedPostPayload } from \"./getPresignedPostPayload.js\";\nimport { uploadToS3 } from \"./utils/uploadToS3.js\";\nimport { uploadLargeFile } from \"./utils/uploadLargeFile.js\";\n\nexport interface CreateFileData {\n id?: string;\n createdOn?: Date | string;\n modifiedOn?: Date | string;\n savedOn?: Date | string;\n createdBy?: FmIdentity;\n modifiedBy?: FmIdentity;\n savedBy?: FmIdentity;\n location?: FmLocationInput;\n name?: string;\n key?: string;\n keyPrefix?: string;\n type?: string;\n size?: number;\n tags?: string[];\n [key: string]: any;\n}\n\nexport interface CreateFileParams {\n file?: Buffer | Blob | File;\n data: CreateFileData;\n fields: string[];\n onProgress?: (progress: UploadProgress) => void;\n multiPartThreshold?: number;\n signal?: AbortSignal;\n}\n\n/**\n * Creates a new file in the file manager.\n * If a file is provided, it will be uploaded to S3 first, then the record is created.\n * If no file is provided, only the metadata record is created.\n *\n * @param config - SDK configuration\n * @param fetchFn - Fetch function to use for HTTP requests\n * @param params - Parameters for creating the file\n * @param params.file - Optional: The actual file content to upload\n * @param params.data - The file metadata\n * @param params.onProgress - Optional: Progress callback\n * @param params.multiPartThreshold - Optional: Threshold in MB for multi-part upload (default: 100)\n * @param params.signal - Optional: AbortSignal for cancellation\n * @returns Result containing the created file data or an error\n */\n// Not using createMethod: params include File/Buffer/Blob, onProgress callback, and AbortSignal — types Zod cannot validate.\nexport async function createFile(\n config: WebinyConfig,\n fetchFn: typeof fetch,\n params: CreateFileParams\n): Promise<Result<FmFile, HttpError | ApiError | NetworkError>> {\n const { file, data, fields, onProgress, multiPartThreshold = 100, signal } = params;\n\n // If no file provided, just create metadata record (existing behavior).\n if (!file) {\n return createFileRecord(config, fetchFn, data, fields);\n }\n\n // File upload flow.\n try {\n const fileSize = getFileSize(file);\n const thresholdBytes = multiPartThreshold * 1024 * 1024;\n\n // Ensure we have required metadata for upload.\n if (!data.name || !data.type) {\n return Result.fail(new Error(\"File name and type are required for upload\") as any);\n }\n\n // Decide upload strategy based on file size.\n if (fileSize < thresholdBytes) {\n // Simple upload.\n return await uploadSmallFile(config, fetchFn, file, data, fields, onProgress, signal);\n } else {\n // Multi-part upload.\n return await uploadLargeFileWrapper(\n config,\n fetchFn,\n file,\n data,\n fields,\n onProgress,\n signal\n );\n }\n } catch (error) {\n return Result.fail(error as any);\n }\n}\n\n/**\n * Uploads a small file using simple presigned POST.\n */\nasync function uploadSmallFile(\n config: WebinyConfig,\n fetchFn: typeof fetch,\n file: Buffer | Blob | File,\n data: CreateFileData,\n fields: string[],\n onProgress?: (progress: UploadProgress) => void,\n signal?: AbortSignal\n): Promise<Result<FmFile, HttpError | ApiError | NetworkError>> {\n // 1. Get presigned POST payload.\n const presignedResult = await getPresignedPostPayload(config, fetchFn, {\n name: data.name!,\n type: data.type!,\n size: getFileSize(file),\n key: data.key,\n keyPrefix: data.keyPrefix\n });\n\n if (presignedResult.isFail()) {\n return Result.fail(presignedResult.error);\n }\n\n // 2. Upload to S3.\n await uploadToS3(file, presignedResult.value.data, { onProgress, signal });\n\n // 3. Create file record with S3 key from presigned response.\n const fileMetadata: CreateFileData = {\n ...data,\n id: presignedResult.value.file.id,\n key: presignedResult.value.file.key,\n size: presignedResult.value.file.size\n };\n\n return createFileRecord(config, fetchFn, fileMetadata, fields);\n}\n\n/**\n * Uploads a large file using multi-part upload.\n */\nasync function uploadLargeFileWrapper(\n config: WebinyConfig,\n fetchFn: typeof fetch,\n file: Buffer | Blob | File,\n data: CreateFileData,\n fields: string[],\n onProgress?: (progress: UploadProgress) => void,\n signal?: AbortSignal\n): Promise<Result<FmFile, HttpError | ApiError | NetworkError>> {\n try {\n const uploadedFile = await uploadLargeFile(\n file,\n {\n name: data.name!,\n type: data.type!,\n size: getFileSize(file),\n key: data.key,\n keyPrefix: data.keyPrefix\n },\n config,\n fetchFn,\n { onProgress, signal, chunkSize: 50, parallelUploads: 5 }\n );\n\n // Create file record with uploaded metadata.\n const fileMetadata: CreateFileData = {\n ...data,\n id: uploadedFile.id,\n key: uploadedFile.key,\n size: uploadedFile.size\n };\n\n return createFileRecord(config, fetchFn, fileMetadata, fields);\n } catch (error) {\n return Result.fail(error as any);\n }\n}\n\n/**\n * Creates a file record via GraphQL (metadata only).\n */\nasync function createFileRecord(\n config: WebinyConfig,\n fetchFn: typeof fetch,\n data: CreateFileData,\n fields: string[]\n): Promise<Result<FmFile, HttpError | ApiError | NetworkError>> {\n const fieldsSelection = buildFieldsSelection(fields);\n\n const query = `\n mutation CreateFile($data: FmFileCreateInput!) {\n fileManager {\n createFile(data: $data) {\n data {\n${fieldsSelection}\n }\n error {\n message\n code\n }\n }\n }\n }\n `;\n\n const result = await executeGraphQL(config, fetchFn, query, { data });\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const responseData = result.value;\n\n if (responseData.fileManager.createFile.error) {\n return Result.fail(\n new ApiError(\n responseData.fileManager.createFile.error.message,\n responseData.fileManager.createFile.error.code\n )\n );\n }\n\n return Result.ok(responseData.fileManager.createFile.data);\n}\n"],"names":["createFile","config","fetchFn","params","file","data","fields","onProgress","multiPartThreshold","signal","createFileRecord","fileSize","getFileSize","thresholdBytes","Result","Error","uploadSmallFile","uploadLargeFileWrapper","error","presignedResult","getPresignedPostPayload","uploadToS3","fileMetadata","uploadedFile","uploadLargeFile","fieldsSelection","buildFieldsSelection","query","result","executeGraphQL","responseData","ApiError"],"mappings":"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"}
1
+ {"version":3,"file":"methods/fileManager/createFile.js","sources":["../../../src/methods/fileManager/createFile.ts"],"sourcesContent":["import type { WebinyConfig } from \"../../types.js\";\nimport { Result } from \"../../Result.js\";\nimport type { HttpError, NetworkError } from \"../../errors.js\";\nimport type { FmFile, FmIdentity, FmLocationInput, UploadProgress } from \"./fileManagerTypes.js\";\nimport { getFileSize } from \"./utils/fileTypeDetection.js\";\nimport { buildFieldsSelection } from \"./buildFieldsSelection.js\";\nimport { executeGraphQL } from \"../executeGraphQL.js\";\nimport { ApiError } from \"../../errors.js\";\nimport { getPresignedPostPayload } from \"./getPresignedPostPayload.js\";\nimport { uploadToS3 } from \"./utils/uploadToS3.js\";\nimport { getImageMetadata } from \"./utils/getImageMetadata.js\";\nimport { uploadLargeFile } from \"./utils/uploadLargeFile.js\";\n\nexport interface CreateFileData {\n id?: string;\n createdOn?: Date | string;\n modifiedOn?: Date | string;\n savedOn?: Date | string;\n createdBy?: FmIdentity;\n modifiedBy?: FmIdentity;\n savedBy?: FmIdentity;\n location?: FmLocationInput;\n name?: string;\n key?: string;\n keyPrefix?: string;\n type?: string;\n size?: number;\n tags?: string[];\n [key: string]: any;\n}\n\nexport interface CreateFileParams {\n file?: Buffer | Blob | File;\n data: CreateFileData;\n fields: string[];\n onProgress?: (progress: UploadProgress) => void;\n multiPartThreshold?: number;\n signal?: AbortSignal;\n}\n\n/**\n * Creates a new file in the file manager.\n * If a file is provided, it will be uploaded to S3 first, then the record is created.\n * If no file is provided, only the metadata record is created.\n *\n * @param config - SDK configuration\n * @param fetchFn - Fetch function to use for HTTP requests\n * @param params - Parameters for creating the file\n * @param params.file - Optional: The actual file content to upload\n * @param params.data - The file metadata\n * @param params.onProgress - Optional: Progress callback\n * @param params.multiPartThreshold - Optional: Threshold in MB for multi-part upload (default: 100)\n * @param params.signal - Optional: AbortSignal for cancellation\n * @returns Result containing the created file data or an error\n */\n// Not using createMethod: params include File/Buffer/Blob, onProgress callback, and AbortSignal — types Zod cannot validate.\nexport async function createFile(\n config: WebinyConfig,\n fetchFn: typeof fetch,\n params: CreateFileParams\n): Promise<Result<FmFile, HttpError | ApiError | NetworkError>> {\n const { file, data, fields, onProgress, multiPartThreshold = 100, signal } = params;\n\n // If no file provided, just create metadata record (existing behavior).\n if (!file) {\n return createFileRecord(config, fetchFn, data, fields);\n }\n\n // File upload flow.\n try {\n const fileSize = getFileSize(file);\n const thresholdBytes = multiPartThreshold * 1024 * 1024;\n\n // Ensure we have required metadata for upload.\n if (!data.name || !data.type) {\n return Result.fail(new Error(\"File name and type are required for upload\") as any);\n }\n\n // Decide upload strategy based on file size.\n if (fileSize < thresholdBytes) {\n // Simple upload.\n return await uploadSmallFile(config, fetchFn, file, data, fields, onProgress, signal);\n } else {\n // Multi-part upload.\n return await uploadLargeFileWrapper(\n config,\n fetchFn,\n file,\n data,\n fields,\n onProgress,\n signal\n );\n }\n } catch (error) {\n return Result.fail(error as any);\n }\n}\n\n/**\n * Uploads a small file using simple presigned POST.\n */\nasync function uploadSmallFile(\n config: WebinyConfig,\n fetchFn: typeof fetch,\n file: Buffer | Blob | File,\n data: CreateFileData,\n fields: string[],\n onProgress?: (progress: UploadProgress) => void,\n signal?: AbortSignal\n): Promise<Result<FmFile, HttpError | ApiError | NetworkError>> {\n // 1. Get presigned POST payload.\n const presignedResult = await getPresignedPostPayload(config, fetchFn, {\n name: data.name!,\n type: data.type!,\n size: getFileSize(file),\n key: data.key,\n keyPrefix: data.keyPrefix\n });\n\n if (presignedResult.isFail()) {\n return Result.fail(presignedResult.error);\n }\n\n // 2. Upload to S3.\n await uploadToS3(file, presignedResult.value.data, { onProgress, signal });\n\n // 3. Extract image metadata (dimensions) if applicable.\n const imageMetadata = data.type?.startsWith(\"image/\")\n ? await getImageMetadata(file)\n : undefined;\n\n // 4. Create file record with S3 key from presigned response.\n const fileMetadata: CreateFileData = {\n ...data,\n id: presignedResult.value.file.id,\n key: presignedResult.value.file.key,\n size: presignedResult.value.file.size,\n ...(imageMetadata ? { metadata: imageMetadata } : {})\n };\n\n return createFileRecord(config, fetchFn, fileMetadata, fields);\n}\n\n/**\n * Uploads a large file using multi-part upload.\n */\nasync function uploadLargeFileWrapper(\n config: WebinyConfig,\n fetchFn: typeof fetch,\n file: Buffer | Blob | File,\n data: CreateFileData,\n fields: string[],\n onProgress?: (progress: UploadProgress) => void,\n signal?: AbortSignal\n): Promise<Result<FmFile, HttpError | ApiError | NetworkError>> {\n try {\n const uploadedFile = await uploadLargeFile(\n file,\n {\n name: data.name!,\n type: data.type!,\n size: getFileSize(file),\n key: data.key,\n keyPrefix: data.keyPrefix\n },\n config,\n fetchFn,\n { onProgress, signal, chunkSize: 50, parallelUploads: 5 }\n );\n\n // Extract image metadata (dimensions) if applicable.\n const imageMetadata = data.type?.startsWith(\"image/\")\n ? await getImageMetadata(file)\n : undefined;\n\n // Create file record with uploaded metadata.\n const fileMetadata: CreateFileData = {\n ...data,\n id: uploadedFile.id,\n key: uploadedFile.key,\n size: uploadedFile.size,\n ...(imageMetadata ? { metadata: imageMetadata } : {})\n };\n\n return createFileRecord(config, fetchFn, fileMetadata, fields);\n } catch (error) {\n return Result.fail(error as any);\n }\n}\n\n/**\n * Creates a file record via GraphQL (metadata only).\n */\nasync function createFileRecord(\n config: WebinyConfig,\n fetchFn: typeof fetch,\n data: CreateFileData,\n fields: string[]\n): Promise<Result<FmFile, HttpError | ApiError | NetworkError>> {\n const fieldsSelection = buildFieldsSelection(fields);\n\n const query = `\n mutation CreateFile($data: FmFileCreateInput!) {\n fileManager {\n createFile(data: $data) {\n data {\n${fieldsSelection}\n }\n error {\n message\n code\n }\n }\n }\n }\n `;\n\n const result = await executeGraphQL(config, fetchFn, query, { data });\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const responseData = result.value;\n\n if (responseData.fileManager.createFile.error) {\n return Result.fail(\n new ApiError(\n responseData.fileManager.createFile.error.message,\n responseData.fileManager.createFile.error.code\n )\n );\n }\n\n return Result.ok(responseData.fileManager.createFile.data);\n}\n"],"names":["createFile","config","fetchFn","params","file","data","fields","onProgress","multiPartThreshold","signal","createFileRecord","fileSize","getFileSize","thresholdBytes","Result","Error","uploadSmallFile","uploadLargeFileWrapper","error","presignedResult","getPresignedPostPayload","uploadToS3","imageMetadata","getImageMetadata","undefined","fileMetadata","uploadedFile","uploadLargeFile","fieldsSelection","buildFieldsSelection","query","result","executeGraphQL","responseData","ApiError"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ interface ImageMetadata {
2
+ image: {
3
+ width: number;
4
+ height: number;
5
+ };
6
+ }
7
+ export declare function getImageMetadata(file: Buffer | Blob | File): Promise<ImageMetadata | undefined>;
8
+ export {};
@@ -0,0 +1,22 @@
1
+ import { isBrowser } from "../../../utils/platform.js";
2
+ import { isBlob, isFile } from "./fileTypeDetection.js";
3
+ async function getImageMetadata(file) {
4
+ if (!isBrowser) return;
5
+ if (!isFile(file) && !isBlob(file)) return;
6
+ try {
7
+ const bitmap = await createImageBitmap(file);
8
+ const metadata = {
9
+ image: {
10
+ width: bitmap.width,
11
+ height: bitmap.height
12
+ }
13
+ };
14
+ bitmap.close();
15
+ return metadata;
16
+ } catch {
17
+ return;
18
+ }
19
+ }
20
+ export { getImageMetadata };
21
+
22
+ //# sourceMappingURL=getImageMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods/fileManager/utils/getImageMetadata.js","sources":["../../../../src/methods/fileManager/utils/getImageMetadata.ts"],"sourcesContent":["import { isBrowser } from \"../../../utils/platform.js\";\nimport { isFile, isBlob } from \"./fileTypeDetection.js\";\n\ninterface ImageMetadata {\n image: {\n width: number;\n height: number;\n };\n}\n\nexport async function getImageMetadata(\n file: Buffer | Blob | File\n): Promise<ImageMetadata | undefined> {\n if (!isBrowser) {\n return undefined;\n }\n\n if (!isFile(file) && !isBlob(file)) {\n return undefined;\n }\n\n try {\n const bitmap = await createImageBitmap(file);\n const metadata: ImageMetadata = {\n image: {\n width: bitmap.width,\n height: bitmap.height\n }\n };\n bitmap.close();\n return metadata;\n } catch {\n return undefined;\n }\n}\n"],"names":["getImageMetadata","file","isBrowser","isFile","isBlob","bitmap","createImageBitmap","metadata"],"mappings":";;AAUO,eAAeA,iBAClBC,IAA0B;IAE1B,IAAI,CAACC,WACD;IAGJ,IAAI,CAACC,OAAOF,SAAS,CAACG,OAAOH,OACzB;IAGJ,IAAI;QACA,MAAMI,SAAS,MAAMC,kBAAkBL;QACvC,MAAMM,WAA0B;YAC5B,OAAO;gBACH,OAAOF,OAAO,KAAK;gBACnB,QAAQA,OAAO,MAAM;YACzB;QACJ;QACAA,OAAO,KAAK;QACZ,OAAOE;IACX,EAAE,OAAM;QACJ;IACJ;AACJ"}
@@ -16,10 +16,10 @@ const getWebhookDelivery = createMethod(getWebhookDeliverySchema, async (config,
16
16
  status
17
17
  payload
18
18
  requestHeaders
19
+ responseHeaders
19
20
  responseTime
20
21
  responseStatus
21
22
  responseBody
22
- expiresAt
23
23
  createdOn
24
24
  }
25
25
  error {
@@ -1 +1 @@
1
- {"version":3,"file":"methods/webhooks/getWebhookDelivery.js","sources":["../../../src/methods/webhooks/getWebhookDelivery.ts"],"sourcesContent":["import { Result } from \"../../Result.js\";\nimport type { WebhookDelivery } from \"./webhooksTypes.js\";\nimport { createMethod } from \"../../utils/createMethod.js\";\nimport { getWebhookDeliverySchema } from \"./schemas.js\";\nimport { executeGraphQL } from \"../executeGraphQL.js\";\nimport { ApiError } from \"../../errors.js\";\n\nexport interface GetWebhookDeliveryParams {\n id: string;\n}\n\nexport const getWebhookDelivery = createMethod(\n getWebhookDeliverySchema,\n async (config, fetchFn, { id }) => {\n const query = `\n query GetWebhookDelivery($id: ID!) {\n webhooks {\n getWebhookDelivery(id: $id) {\n data {\n id\n webhookId\n backgroundTaskId\n eventType\n status\n payload\n requestHeaders\n responseTime\n responseStatus\n responseBody\n expiresAt\n createdOn\n }\n error {\n message\n code\n }\n }\n }\n }\n `;\n\n const result = await executeGraphQL(config, fetchFn, query, { id });\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const responseData = result.value;\n\n if (responseData.webhooks.getWebhookDelivery.error) {\n return Result.fail(\n new ApiError(\n responseData.webhooks.getWebhookDelivery.error.message,\n responseData.webhooks.getWebhookDelivery.error.code\n )\n );\n }\n\n return Result.ok(responseData.webhooks.getWebhookDelivery.data as WebhookDelivery);\n }\n);\n"],"names":["getWebhookDelivery","createMethod","getWebhookDeliverySchema","config","fetchFn","id","query","result","executeGraphQL","Result","responseData","ApiError"],"mappings":";;;;;AAWO,MAAMA,qBAAqBC,aAC9BC,0BACA,OAAOC,QAAQC,SAAS,EAAEC,EAAE,EAAE;IAC1B,MAAMC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;IAyBnB,CAAC;IAEG,MAAMC,SAAS,MAAMC,eAAeL,QAAQC,SAASE,OAAO;QAAED;IAAG;IAEjE,IAAIE,OAAO,MAAM,IACb,OAAOE,OAAO,IAAI,CAACF,OAAO,KAAK;IAGnC,MAAMG,eAAeH,OAAO,KAAK;IAEjC,IAAIG,aAAa,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAC9C,OAAOD,OAAO,IAAI,CACd,IAAIE,SACAD,aAAa,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EACtDA,aAAa,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI;IAK/D,OAAOD,OAAO,EAAE,CAACC,aAAa,QAAQ,CAAC,kBAAkB,CAAC,IAAI;AAClE"}
1
+ {"version":3,"file":"methods/webhooks/getWebhookDelivery.js","sources":["../../../src/methods/webhooks/getWebhookDelivery.ts"],"sourcesContent":["import { Result } from \"../../Result.js\";\nimport type { WebhookDelivery } from \"./webhooksTypes.js\";\nimport { createMethod } from \"../../utils/createMethod.js\";\nimport { getWebhookDeliverySchema } from \"./schemas.js\";\nimport { executeGraphQL } from \"../executeGraphQL.js\";\nimport { ApiError } from \"../../errors.js\";\n\nexport interface GetWebhookDeliveryParams {\n id: string;\n}\n\nexport const getWebhookDelivery = createMethod(\n getWebhookDeliverySchema,\n async (config, fetchFn, { id }) => {\n const query = `\n query GetWebhookDelivery($id: ID!) {\n webhooks {\n getWebhookDelivery(id: $id) {\n data {\n id\n webhookId\n backgroundTaskId\n eventType\n status\n payload\n requestHeaders\n responseHeaders\n responseTime\n responseStatus\n responseBody\n createdOn\n }\n error {\n message\n code\n }\n }\n }\n }\n `;\n\n const result = await executeGraphQL(config, fetchFn, query, { id });\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const responseData = result.value;\n\n if (responseData.webhooks.getWebhookDelivery.error) {\n return Result.fail(\n new ApiError(\n responseData.webhooks.getWebhookDelivery.error.message,\n responseData.webhooks.getWebhookDelivery.error.code\n )\n );\n }\n\n return Result.ok(responseData.webhooks.getWebhookDelivery.data as WebhookDelivery);\n }\n);\n"],"names":["getWebhookDelivery","createMethod","getWebhookDeliverySchema","config","fetchFn","id","query","result","executeGraphQL","Result","responseData","ApiError"],"mappings":";;;;;AAWO,MAAMA,qBAAqBC,aAC9BC,0BACA,OAAOC,QAAQC,SAAS,EAAEC,EAAE,EAAE;IAC1B,MAAMC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;IAyBnB,CAAC;IAEG,MAAMC,SAAS,MAAMC,eAAeL,QAAQC,SAASE,OAAO;QAAED;IAAG;IAEjE,IAAIE,OAAO,MAAM,IACb,OAAOE,OAAO,IAAI,CAACF,OAAO,KAAK;IAGnC,MAAMG,eAAeH,OAAO,KAAK;IAEjC,IAAIG,aAAa,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAC9C,OAAOD,OAAO,IAAI,CACd,IAAIE,SACAD,aAAa,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EACtDA,aAAa,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI;IAK/D,OAAOD,OAAO,EAAE,CAACC,aAAa,QAAQ,CAAC,kBAAkB,CAAC,IAAI;AAClE"}
@@ -10,6 +10,7 @@ async function listAvailableWebhookEvents(config, fetchFn) {
10
10
  app
11
11
  appLabel
12
12
  entity
13
+ entityLabel
13
14
  eventName
14
15
  label
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"methods/webhooks/listAvailableWebhookEvents.js","sources":["../../../src/methods/webhooks/listAvailableWebhookEvents.ts"],"sourcesContent":["import type { WebinyConfig } from \"../../types.js\";\nimport { Result } from \"../../Result.js\";\nimport type { HttpError } from \"../../errors.js\";\nimport type { NetworkError } from \"../../errors.js\";\nimport type { WebhookEvent } from \"./webhooksTypes.js\";\nimport { executeGraphQL } from \"../executeGraphQL.js\";\nimport { ApiError } from \"../../errors.js\";\n\nexport async function listAvailableWebhookEvents(\n config: WebinyConfig,\n fetchFn: typeof fetch\n): Promise<Result<WebhookEvent[], HttpError | ApiError | NetworkError>> {\n const query = `\n query ListAvailableWebhookEvents {\n webhooks {\n listAvailableWebhookEvents {\n data {\n app\n appLabel\n entity\n eventName\n label\n }\n error {\n message\n code\n }\n }\n }\n }\n `;\n\n const result = await executeGraphQL(config, fetchFn, query, {});\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const responseData = result.value;\n\n if (responseData.webhooks.listAvailableWebhookEvents.error) {\n return Result.fail(\n new ApiError(\n responseData.webhooks.listAvailableWebhookEvents.error.message,\n responseData.webhooks.listAvailableWebhookEvents.error.code\n )\n );\n }\n\n return Result.ok(responseData.webhooks.listAvailableWebhookEvents.data as WebhookEvent[]);\n}\n"],"names":["listAvailableWebhookEvents","config","fetchFn","query","result","executeGraphQL","Result","responseData","ApiError"],"mappings":";;;AAQO,eAAeA,2BAClBC,MAAoB,EACpBC,OAAqB;IAErB,MAAMC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;IAkBf,CAAC;IAED,MAAMC,SAAS,MAAMC,eAAeJ,QAAQC,SAASC,OAAO,CAAC;IAE7D,IAAIC,OAAO,MAAM,IACb,OAAOE,OAAO,IAAI,CAACF,OAAO,KAAK;IAGnC,MAAMG,eAAeH,OAAO,KAAK;IAEjC,IAAIG,aAAa,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EACtD,OAAOD,OAAO,IAAI,CACd,IAAIE,SACAD,aAAa,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,EAC9DA,aAAa,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI;IAKvE,OAAOD,OAAO,EAAE,CAACC,aAAa,QAAQ,CAAC,0BAA0B,CAAC,IAAI;AAC1E"}
1
+ {"version":3,"file":"methods/webhooks/listAvailableWebhookEvents.js","sources":["../../../src/methods/webhooks/listAvailableWebhookEvents.ts"],"sourcesContent":["import type { WebinyConfig } from \"../../types.js\";\nimport { Result } from \"../../Result.js\";\nimport type { HttpError } from \"../../errors.js\";\nimport type { NetworkError } from \"../../errors.js\";\nimport type { WebhookEvent } from \"./webhooksTypes.js\";\nimport { executeGraphQL } from \"../executeGraphQL.js\";\nimport { ApiError } from \"../../errors.js\";\n\nexport async function listAvailableWebhookEvents(\n config: WebinyConfig,\n fetchFn: typeof fetch\n): Promise<Result<WebhookEvent[], HttpError | ApiError | NetworkError>> {\n const query = `\n query ListAvailableWebhookEvents {\n webhooks {\n listAvailableWebhookEvents {\n data {\n app\n appLabel\n entity\n entityLabel\n eventName\n label\n }\n error {\n message\n code\n }\n }\n }\n }\n `;\n\n const result = await executeGraphQL(config, fetchFn, query, {});\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const responseData = result.value;\n\n if (responseData.webhooks.listAvailableWebhookEvents.error) {\n return Result.fail(\n new ApiError(\n responseData.webhooks.listAvailableWebhookEvents.error.message,\n responseData.webhooks.listAvailableWebhookEvents.error.code\n )\n );\n }\n\n return Result.ok(responseData.webhooks.listAvailableWebhookEvents.data as WebhookEvent[]);\n}\n"],"names":["listAvailableWebhookEvents","config","fetchFn","query","result","executeGraphQL","Result","responseData","ApiError"],"mappings":";;;AAQO,eAAeA,2BAClBC,MAAoB,EACpBC,OAAqB;IAErB,MAAMC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;IAmBf,CAAC;IAED,MAAMC,SAAS,MAAMC,eAAeJ,QAAQC,SAASC,OAAO,CAAC;IAE7D,IAAIC,OAAO,MAAM,IACb,OAAOE,OAAO,IAAI,CAACF,OAAO,KAAK;IAGnC,MAAMG,eAAeH,OAAO,KAAK;IAEjC,IAAIG,aAAa,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EACtD,OAAOD,OAAO,IAAI,CACd,IAAIE,SACAD,aAAa,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,EAC9DA,aAAa,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI;IAKvE,OAAOD,OAAO,EAAE,CAACC,aAAa,QAAQ,CAAC,0BAA0B,CAAC,IAAI;AAC1E"}
@@ -1,8 +1,13 @@
1
1
  import { Result } from "../../Result.js";
2
2
  import type { WebhookDelivery } from "./webhooksTypes.js";
3
3
  import { ApiError } from "../../errors.js";
4
+ export interface ListWebhookDeliveriesWhere {
5
+ webhookId_eq?: string;
6
+ eventType_in?: string[];
7
+ status_in?: string[];
8
+ }
4
9
  export interface ListWebhookDeliveriesParams {
5
- webhookId: string;
10
+ where?: ListWebhookDeliveriesWhere;
6
11
  limit?: number;
7
12
  after?: string;
8
13
  }
@@ -3,11 +3,11 @@ import { createMethod } from "../../utils/createMethod.js";
3
3
  import { listWebhookDeliveriesSchema } from "./schemas.js";
4
4
  import { executeGraphQL } from "../executeGraphQL.js";
5
5
  import { ApiError } from "../../errors.js";
6
- const listWebhookDeliveries = createMethod(listWebhookDeliveriesSchema, async (config, fetchFn, { webhookId, limit, after })=>{
6
+ const listWebhookDeliveries = createMethod(listWebhookDeliveriesSchema, async (config, fetchFn, { where, limit, after })=>{
7
7
  const query = `
8
- query ListWebhookDeliveries($webhookId: ID!, $limit: Int, $after: String) {
8
+ query ListWebhookDeliveries($where: WebhookDeliveryListWhereInput, $limit: Int, $after: String) {
9
9
  webhooks {
10
- listWebhookDeliveries(webhookId: $webhookId, limit: $limit, after: $after) {
10
+ listWebhookDeliveries(where: $where, limit: $limit, after: $after) {
11
11
  data {
12
12
  id
13
13
  webhookId
@@ -16,10 +16,10 @@ const listWebhookDeliveries = createMethod(listWebhookDeliveriesSchema, async (c
16
16
  status
17
17
  payload
18
18
  requestHeaders
19
+ responseHeaders
19
20
  responseTime
20
21
  responseStatus
21
22
  responseBody
22
- expiresAt
23
23
  createdOn
24
24
  }
25
25
  meta {
@@ -36,7 +36,7 @@ const listWebhookDeliveries = createMethod(listWebhookDeliveriesSchema, async (c
36
36
  }
37
37
  `;
38
38
  const result = await executeGraphQL(config, fetchFn, query, {
39
- webhookId,
39
+ where,
40
40
  limit,
41
41
  after
42
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"methods/webhooks/listWebhookDeliveries.js","sources":["../../../src/methods/webhooks/listWebhookDeliveries.ts"],"sourcesContent":["import { Result } from \"../../Result.js\";\nimport type { WebhookDelivery } from \"./webhooksTypes.js\";\nimport { createMethod } from \"../../utils/createMethod.js\";\nimport { listWebhookDeliveriesSchema } from \"./schemas.js\";\nimport { executeGraphQL } from \"../executeGraphQL.js\";\nimport { ApiError } from \"../../errors.js\";\n\nexport interface ListWebhookDeliveriesParams {\n webhookId: string;\n limit?: number;\n after?: string;\n}\n\nexport interface ListWebhookDeliveriesResult {\n data: WebhookDelivery[];\n meta: {\n cursor: string | null;\n hasMoreItems: boolean;\n totalCount: number;\n };\n}\n\nexport const listWebhookDeliveries = createMethod(\n listWebhookDeliveriesSchema,\n async (config, fetchFn, { webhookId, limit, after }) => {\n const query = `\n query ListWebhookDeliveries($webhookId: ID!, $limit: Int, $after: String) {\n webhooks {\n listWebhookDeliveries(webhookId: $webhookId, limit: $limit, after: $after) {\n data {\n id\n webhookId\n backgroundTaskId\n eventType\n status\n payload\n requestHeaders\n responseTime\n responseStatus\n responseBody\n expiresAt\n createdOn\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error {\n message\n code\n }\n }\n }\n }\n `;\n\n const result = await executeGraphQL(config, fetchFn, query, {\n webhookId,\n limit,\n after\n });\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const responseData = result.value;\n\n if (responseData.webhooks.listWebhookDeliveries.error) {\n return Result.fail(\n new ApiError(\n responseData.webhooks.listWebhookDeliveries.error.message,\n responseData.webhooks.listWebhookDeliveries.error.code\n )\n );\n }\n\n return Result.ok({\n data: responseData.webhooks.listWebhookDeliveries.data,\n meta: responseData.webhooks.listWebhookDeliveries.meta\n } as ListWebhookDeliveriesResult);\n }\n);\n"],"names":["listWebhookDeliveries","createMethod","listWebhookDeliveriesSchema","config","fetchFn","webhookId","limit","after","query","result","executeGraphQL","Result","responseData","ApiError"],"mappings":";;;;;AAsBO,MAAMA,wBAAwBC,aACjCC,6BACA,OAAOC,QAAQC,SAAS,EAAEC,SAAS,EAAEC,KAAK,EAAEC,KAAK,EAAE;IAC/C,MAAMC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BnB,CAAC;IAEG,MAAMC,SAAS,MAAMC,eAAeP,QAAQC,SAASI,OAAO;QACxDH;QACAC;QACAC;IACJ;IAEA,IAAIE,OAAO,MAAM,IACb,OAAOE,OAAO,IAAI,CAACF,OAAO,KAAK;IAGnC,MAAMG,eAAeH,OAAO,KAAK;IAEjC,IAAIG,aAAa,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EACjD,OAAOD,OAAO,IAAI,CACd,IAAIE,SACAD,aAAa,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,EACzDA,aAAa,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI;IAKlE,OAAOD,OAAO,EAAE,CAAC;QACb,MAAMC,aAAa,QAAQ,CAAC,qBAAqB,CAAC,IAAI;QACtD,MAAMA,aAAa,QAAQ,CAAC,qBAAqB,CAAC,IAAI;IAC1D;AACJ"}
1
+ {"version":3,"file":"methods/webhooks/listWebhookDeliveries.js","sources":["../../../src/methods/webhooks/listWebhookDeliveries.ts"],"sourcesContent":["import { Result } from \"../../Result.js\";\nimport type { WebhookDelivery } from \"./webhooksTypes.js\";\nimport { createMethod } from \"../../utils/createMethod.js\";\nimport { listWebhookDeliveriesSchema } from \"./schemas.js\";\nimport { executeGraphQL } from \"../executeGraphQL.js\";\nimport { ApiError } from \"../../errors.js\";\n\nexport interface ListWebhookDeliveriesWhere {\n webhookId_eq?: string;\n eventType_in?: string[];\n status_in?: string[];\n}\n\nexport interface ListWebhookDeliveriesParams {\n where?: ListWebhookDeliveriesWhere;\n limit?: number;\n after?: string;\n}\n\nexport interface ListWebhookDeliveriesResult {\n data: WebhookDelivery[];\n meta: {\n cursor: string | null;\n hasMoreItems: boolean;\n totalCount: number;\n };\n}\n\nexport const listWebhookDeliveries = createMethod(\n listWebhookDeliveriesSchema,\n async (config, fetchFn, { where, limit, after }) => {\n const query = `\n query ListWebhookDeliveries($where: WebhookDeliveryListWhereInput, $limit: Int, $after: String) {\n webhooks {\n listWebhookDeliveries(where: $where, limit: $limit, after: $after) {\n data {\n id\n webhookId\n backgroundTaskId\n eventType\n status\n payload\n requestHeaders\n responseHeaders\n responseTime\n responseStatus\n responseBody\n createdOn\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error {\n message\n code\n }\n }\n }\n }\n `;\n\n const result = await executeGraphQL(config, fetchFn, query, {\n where,\n limit,\n after\n });\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const responseData = result.value;\n\n if (responseData.webhooks.listWebhookDeliveries.error) {\n return Result.fail(\n new ApiError(\n responseData.webhooks.listWebhookDeliveries.error.message,\n responseData.webhooks.listWebhookDeliveries.error.code\n )\n );\n }\n\n return Result.ok({\n data: responseData.webhooks.listWebhookDeliveries.data,\n meta: responseData.webhooks.listWebhookDeliveries.meta\n } as ListWebhookDeliveriesResult);\n }\n);\n"],"names":["listWebhookDeliveries","createMethod","listWebhookDeliveriesSchema","config","fetchFn","where","limit","after","query","result","executeGraphQL","Result","responseData","ApiError"],"mappings":";;;;;AA4BO,MAAMA,wBAAwBC,aACjCC,6BACA,OAAOC,QAAQC,SAAS,EAAEC,KAAK,EAAEC,KAAK,EAAEC,KAAK,EAAE;IAC3C,MAAMC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BnB,CAAC;IAEG,MAAMC,SAAS,MAAMC,eAAeP,QAAQC,SAASI,OAAO;QACxDH;QACAC;QACAC;IACJ;IAEA,IAAIE,OAAO,MAAM,IACb,OAAOE,OAAO,IAAI,CAACF,OAAO,KAAK;IAGnC,MAAMG,eAAeH,OAAO,KAAK;IAEjC,IAAIG,aAAa,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EACjD,OAAOD,OAAO,IAAI,CACd,IAAIE,SACAD,aAAa,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,EACzDA,aAAa,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI;IAKlE,OAAOD,OAAO,EAAE,CAAC;QACb,MAAMC,aAAa,QAAQ,CAAC,qBAAqB,CAAC,IAAI;QACtD,MAAMA,aAAa,QAAQ,CAAC,qBAAqB,CAAC,IAAI;IAC1D;AACJ"}
@@ -32,7 +32,11 @@ export declare const getWebhookDeliverySchema: z.ZodObject<{
32
32
  id: z.ZodString;
33
33
  }, z.core.$strip>;
34
34
  export declare const listWebhookDeliveriesSchema: z.ZodObject<{
35
- webhookId: z.ZodString;
35
+ where: z.ZodOptional<z.ZodObject<{
36
+ webhookId_eq: z.ZodOptional<z.ZodString>;
37
+ eventType_in: z.ZodOptional<z.ZodArray<z.ZodString>>;
38
+ status_in: z.ZodOptional<z.ZodArray<z.ZodString>>;
39
+ }, z.core.$strip>>;
36
40
  limit: z.ZodOptional<z.ZodNumber>;
37
41
  after: z.ZodOptional<z.ZodString>;
38
42
  }, z.core.$strip>;
@@ -33,7 +33,11 @@ const getWebhookDeliverySchema = z.object({
33
33
  id: id
34
34
  });
35
35
  const listWebhookDeliveriesSchema = z.object({
36
- webhookId: z.string().min(1, "webhookId is required"),
36
+ where: z.object({
37
+ webhookId_eq: z.string().optional(),
38
+ eventType_in: z.array(z.string()).optional(),
39
+ status_in: z.array(z.string()).optional()
40
+ }).optional(),
37
41
  limit: z.number().int().positive().optional(),
38
42
  after: z.string().optional()
39
43
  });
@@ -1 +1 @@
1
- {"version":3,"file":"methods/webhooks/schemas.js","sources":["../../../src/methods/webhooks/schemas.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst id = z.string().min(1, \"id is required\");\n\nexport const getWebhookSchema = z.object({\n id\n});\n\nexport const listWebhooksSchema = z.object({\n where: z\n .object({\n enabled: z.boolean().optional()\n })\n .optional(),\n limit: z.number().int().positive().optional(),\n after: z.string().optional()\n});\n\nexport const createWebhookSchema = z.object({\n name: z.string().min(1, \"name is required\"),\n endpointUrl: z.string().url(\"endpointUrl must be a valid URL\"),\n events: z.array(z.string().min(1)).min(1, \"events must contain at least one entry\"),\n slug: z.string().optional(),\n description: z.string().optional(),\n enabled: z.boolean().optional()\n});\n\nexport const updateWebhookSchema = z.object({\n id,\n name: z.string().min(1).optional(),\n endpointUrl: z.string().url(\"endpointUrl must be a valid URL\").optional(),\n description: z.string().optional(),\n enabled: z.boolean().optional(),\n events: z.array(z.string().min(1)).optional()\n});\n\nexport const deleteWebhookSchema = z.object({\n id\n});\n\nexport const getWebhookDeliverySchema = z.object({\n id\n});\n\nexport const listWebhookDeliveriesSchema = z.object({\n webhookId: z.string().min(1, \"webhookId is required\"),\n limit: z.number().int().positive().optional(),\n after: z.string().optional()\n});\n\nexport const resendWebhookDeliverySchema = z.object({\n id\n});\n\nexport const triggerWebhookSchema = z.object({\n id,\n payload: z.record(z.string(), z.unknown())\n});\n"],"names":["id","z","getWebhookSchema","listWebhooksSchema","createWebhookSchema","updateWebhookSchema","deleteWebhookSchema","getWebhookDeliverySchema","listWebhookDeliveriesSchema","resendWebhookDeliverySchema","triggerWebhookSchema"],"mappings":";AAEA,MAAMA,KAAKC,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG;AAEtB,MAAMC,mBAAmBD,EAAE,MAAM,CAAC;IACrCD,IAAAA;AACJ;AAEO,MAAMG,qBAAqBF,EAAE,MAAM,CAAC;IACvC,OAAOA,EAAAA,MACI,CAAC;QACJ,SAASA,EAAE,OAAO,GAAG,QAAQ;IACjC,GACC,QAAQ;IACb,OAAOA,EAAE,MAAM,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ;IAC3C,OAAOA,EAAE,MAAM,GAAG,QAAQ;AAC9B;AAEO,MAAMG,sBAAsBH,EAAE,MAAM,CAAC;IACxC,MAAMA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG;IACxB,aAAaA,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,QAAQA,EAAE,KAAK,CAACA,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG;IAC1C,MAAMA,EAAE,MAAM,GAAG,QAAQ;IACzB,aAAaA,EAAE,MAAM,GAAG,QAAQ;IAChC,SAASA,EAAE,OAAO,GAAG,QAAQ;AACjC;AAEO,MAAMI,sBAAsBJ,EAAE,MAAM,CAAC;IACxCD,IAAAA;IACA,MAAMC,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ;IAChC,aAAaA,EAAE,MAAM,GAAG,GAAG,CAAC,mCAAmC,QAAQ;IACvE,aAAaA,EAAE,MAAM,GAAG,QAAQ;IAChC,SAASA,EAAE,OAAO,GAAG,QAAQ;IAC7B,QAAQA,EAAE,KAAK,CAACA,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,QAAQ;AAC/C;AAEO,MAAMK,sBAAsBL,EAAE,MAAM,CAAC;IACxCD,IAAAA;AACJ;AAEO,MAAMO,2BAA2BN,EAAE,MAAM,CAAC;IAC7CD,IAAAA;AACJ;AAEO,MAAMQ,8BAA8BP,EAAE,MAAM,CAAC;IAChD,WAAWA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG;IAC7B,OAAOA,EAAE,MAAM,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ;IAC3C,OAAOA,EAAE,MAAM,GAAG,QAAQ;AAC9B;AAEO,MAAMQ,8BAA8BR,EAAE,MAAM,CAAC;IAChDD,IAAAA;AACJ;AAEO,MAAMU,uBAAuBT,EAAE,MAAM,CAAC;IACzCD,IAAAA;IACA,SAASC,EAAE,MAAM,CAACA,EAAE,MAAM,IAAIA,EAAE,OAAO;AAC3C"}
1
+ {"version":3,"file":"methods/webhooks/schemas.js","sources":["../../../src/methods/webhooks/schemas.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst id = z.string().min(1, \"id is required\");\n\nexport const getWebhookSchema = z.object({\n id\n});\n\nexport const listWebhooksSchema = z.object({\n where: z\n .object({\n enabled: z.boolean().optional()\n })\n .optional(),\n limit: z.number().int().positive().optional(),\n after: z.string().optional()\n});\n\nexport const createWebhookSchema = z.object({\n name: z.string().min(1, \"name is required\"),\n endpointUrl: z.string().url(\"endpointUrl must be a valid URL\"),\n events: z.array(z.string().min(1)).min(1, \"events must contain at least one entry\"),\n slug: z.string().optional(),\n description: z.string().optional(),\n enabled: z.boolean().optional()\n});\n\nexport const updateWebhookSchema = z.object({\n id,\n name: z.string().min(1).optional(),\n endpointUrl: z.string().url(\"endpointUrl must be a valid URL\").optional(),\n description: z.string().optional(),\n enabled: z.boolean().optional(),\n events: z.array(z.string().min(1)).optional()\n});\n\nexport const deleteWebhookSchema = z.object({\n id\n});\n\nexport const getWebhookDeliverySchema = z.object({\n id\n});\n\nexport const listWebhookDeliveriesSchema = z.object({\n where: z\n .object({\n webhookId_eq: z.string().optional(),\n eventType_in: z.array(z.string()).optional(),\n status_in: z.array(z.string()).optional()\n })\n .optional(),\n limit: z.number().int().positive().optional(),\n after: z.string().optional()\n});\n\nexport const resendWebhookDeliverySchema = z.object({\n id\n});\n\nexport const triggerWebhookSchema = z.object({\n id,\n payload: z.record(z.string(), z.unknown())\n});\n"],"names":["id","z","getWebhookSchema","listWebhooksSchema","createWebhookSchema","updateWebhookSchema","deleteWebhookSchema","getWebhookDeliverySchema","listWebhookDeliveriesSchema","resendWebhookDeliverySchema","triggerWebhookSchema"],"mappings":";AAEA,MAAMA,KAAKC,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG;AAEtB,MAAMC,mBAAmBD,EAAE,MAAM,CAAC;IACrCD,IAAAA;AACJ;AAEO,MAAMG,qBAAqBF,EAAE,MAAM,CAAC;IACvC,OAAOA,EAAAA,MACI,CAAC;QACJ,SAASA,EAAE,OAAO,GAAG,QAAQ;IACjC,GACC,QAAQ;IACb,OAAOA,EAAE,MAAM,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ;IAC3C,OAAOA,EAAE,MAAM,GAAG,QAAQ;AAC9B;AAEO,MAAMG,sBAAsBH,EAAE,MAAM,CAAC;IACxC,MAAMA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG;IACxB,aAAaA,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,QAAQA,EAAE,KAAK,CAACA,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG;IAC1C,MAAMA,EAAE,MAAM,GAAG,QAAQ;IACzB,aAAaA,EAAE,MAAM,GAAG,QAAQ;IAChC,SAASA,EAAE,OAAO,GAAG,QAAQ;AACjC;AAEO,MAAMI,sBAAsBJ,EAAE,MAAM,CAAC;IACxCD,IAAAA;IACA,MAAMC,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ;IAChC,aAAaA,EAAE,MAAM,GAAG,GAAG,CAAC,mCAAmC,QAAQ;IACvE,aAAaA,EAAE,MAAM,GAAG,QAAQ;IAChC,SAASA,EAAE,OAAO,GAAG,QAAQ;IAC7B,QAAQA,EAAE,KAAK,CAACA,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,QAAQ;AAC/C;AAEO,MAAMK,sBAAsBL,EAAE,MAAM,CAAC;IACxCD,IAAAA;AACJ;AAEO,MAAMO,2BAA2BN,EAAE,MAAM,CAAC;IAC7CD,IAAAA;AACJ;AAEO,MAAMQ,8BAA8BP,EAAE,MAAM,CAAC;IAChD,OAAOA,EAAAA,MACI,CAAC;QACJ,cAAcA,EAAE,MAAM,GAAG,QAAQ;QACjC,cAAcA,EAAE,KAAK,CAACA,EAAE,MAAM,IAAI,QAAQ;QAC1C,WAAWA,EAAE,KAAK,CAACA,EAAE,MAAM,IAAI,QAAQ;IAC3C,GACC,QAAQ;IACb,OAAOA,EAAE,MAAM,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ;IAC3C,OAAOA,EAAE,MAAM,GAAG,QAAQ;AAC9B;AAEO,MAAMQ,8BAA8BR,EAAE,MAAM,CAAC;IAChDD,IAAAA;AACJ;AAEO,MAAMU,uBAAuBT,EAAE,MAAM,CAAC;IACzCD,IAAAA;IACA,SAASC,EAAE,MAAM,CAACA,EAAE,MAAM,IAAIA,EAAE,OAAO;AAC3C"}
@@ -19,7 +19,6 @@ const triggerWebhook = createMethod(triggerWebhookSchema, async (config, fetchFn
19
19
  responseTime
20
20
  responseStatus
21
21
  responseBody
22
- expiresAt
23
22
  createdOn
24
23
  }
25
24
  error {
@@ -1 +1 @@
1
- {"version":3,"file":"methods/webhooks/triggerWebhook.js","sources":["../../../src/methods/webhooks/triggerWebhook.ts"],"sourcesContent":["import { Result } from \"../../Result.js\";\nimport type { WebhookDelivery } from \"./webhooksTypes.js\";\nimport { createMethod } from \"../../utils/createMethod.js\";\nimport { triggerWebhookSchema } from \"./schemas.js\";\nimport { executeGraphQL } from \"../executeGraphQL.js\";\nimport { ApiError } from \"../../errors.js\";\n\nexport interface TriggerWebhookParams {\n id: string;\n payload: Record<string, unknown>;\n}\n\nexport const triggerWebhook = createMethod(\n triggerWebhookSchema,\n async (config, fetchFn, { id, payload }) => {\n const query = `\n mutation TriggerWebhook($id: ID!, $payload: JSON!) {\n webhooks {\n triggerWebhook(id: $id, payload: $payload) {\n data {\n id\n webhookId\n backgroundTaskId\n eventType\n status\n payload\n requestHeaders\n responseTime\n responseStatus\n responseBody\n expiresAt\n createdOn\n }\n error {\n message\n code\n }\n }\n }\n }\n `;\n\n const result = await executeGraphQL(config, fetchFn, query, { id, payload });\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const responseData = result.value;\n\n if (responseData.webhooks.triggerWebhook.error) {\n return Result.fail(\n new ApiError(\n responseData.webhooks.triggerWebhook.error.message,\n responseData.webhooks.triggerWebhook.error.code\n )\n );\n }\n\n return Result.ok(responseData.webhooks.triggerWebhook.data as WebhookDelivery);\n }\n);\n"],"names":["triggerWebhook","createMethod","triggerWebhookSchema","config","fetchFn","id","payload","query","result","executeGraphQL","Result","responseData","ApiError"],"mappings":";;;;;AAYO,MAAMA,iBAAiBC,aAC1BC,sBACA,OAAOC,QAAQC,SAAS,EAAEC,EAAE,EAAEC,OAAO,EAAE;IACnC,MAAMC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;IAyBnB,CAAC;IAEG,MAAMC,SAAS,MAAMC,eAAeN,QAAQC,SAASG,OAAO;QAAEF;QAAIC;IAAQ;IAE1E,IAAIE,OAAO,MAAM,IACb,OAAOE,OAAO,IAAI,CAACF,OAAO,KAAK;IAGnC,MAAMG,eAAeH,OAAO,KAAK;IAEjC,IAAIG,aAAa,QAAQ,CAAC,cAAc,CAAC,KAAK,EAC1C,OAAOD,OAAO,IAAI,CACd,IAAIE,SACAD,aAAa,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAClDA,aAAa,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;IAK3D,OAAOD,OAAO,EAAE,CAACC,aAAa,QAAQ,CAAC,cAAc,CAAC,IAAI;AAC9D"}
1
+ {"version":3,"file":"methods/webhooks/triggerWebhook.js","sources":["../../../src/methods/webhooks/triggerWebhook.ts"],"sourcesContent":["import { Result } from \"../../Result.js\";\nimport type { WebhookDelivery } from \"./webhooksTypes.js\";\nimport { createMethod } from \"../../utils/createMethod.js\";\nimport { triggerWebhookSchema } from \"./schemas.js\";\nimport { executeGraphQL } from \"../executeGraphQL.js\";\nimport { ApiError } from \"../../errors.js\";\n\nexport interface TriggerWebhookParams {\n id: string;\n payload: Record<string, unknown>;\n}\n\nexport const triggerWebhook = createMethod(\n triggerWebhookSchema,\n async (config, fetchFn, { id, payload }) => {\n const query = `\n mutation TriggerWebhook($id: ID!, $payload: JSON!) {\n webhooks {\n triggerWebhook(id: $id, payload: $payload) {\n data {\n id\n webhookId\n backgroundTaskId\n eventType\n status\n payload\n requestHeaders\n responseTime\n responseStatus\n responseBody\n createdOn\n }\n error {\n message\n code\n }\n }\n }\n }\n `;\n\n const result = await executeGraphQL(config, fetchFn, query, { id, payload });\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const responseData = result.value;\n\n if (responseData.webhooks.triggerWebhook.error) {\n return Result.fail(\n new ApiError(\n responseData.webhooks.triggerWebhook.error.message,\n responseData.webhooks.triggerWebhook.error.code\n )\n );\n }\n\n return Result.ok(responseData.webhooks.triggerWebhook.data as WebhookDelivery);\n }\n);\n"],"names":["triggerWebhook","createMethod","triggerWebhookSchema","config","fetchFn","id","payload","query","result","executeGraphQL","Result","responseData","ApiError"],"mappings":";;;;;AAYO,MAAMA,iBAAiBC,aAC1BC,sBACA,OAAOC,QAAQC,SAAS,EAAEC,EAAE,EAAEC,OAAO,EAAE;IACnC,MAAMC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;IAwBnB,CAAC;IAEG,MAAMC,SAAS,MAAMC,eAAeN,QAAQC,SAASG,OAAO;QAAEF;QAAIC;IAAQ;IAE1E,IAAIE,OAAO,MAAM,IACb,OAAOE,OAAO,IAAI,CAACF,OAAO,KAAK;IAGnC,MAAMG,eAAeH,OAAO,KAAK;IAEjC,IAAIG,aAAa,QAAQ,CAAC,cAAc,CAAC,KAAK,EAC1C,OAAOD,OAAO,IAAI,CACd,IAAIE,SACAD,aAAa,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAClDA,aAAa,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;IAK3D,OAAOD,OAAO,EAAE,CAACC,aAAa,QAAQ,CAAC,cAAc,CAAC,IAAI;AAC9D"}
@@ -18,16 +18,17 @@ export interface WebhookDelivery {
18
18
  status: string;
19
19
  payload: unknown;
20
20
  requestHeaders: unknown;
21
+ responseHeaders: unknown | null;
21
22
  responseTime: number | null;
22
23
  responseStatus: number | null;
23
24
  responseBody: string | null;
24
- expiresAt: string | null;
25
- createdOn: string | null;
25
+ createdOn: string;
26
26
  }
27
27
  export interface WebhookEvent {
28
28
  app: string;
29
29
  appLabel: string;
30
30
  entity: string;
31
+ entityLabel: string;
31
32
  eventName: string;
32
33
  label: string;
33
34
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/sdk",
3
- "version": "6.4.0-beta.3",
3
+ "version": "6.4.0-beta.5",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,13 +17,14 @@
17
17
  "author": "Webiny",
18
18
  "license": "MIT",
19
19
  "devDependencies": {
20
- "@webiny/build-tools": "6.4.0-beta.3",
20
+ "@webiny/build-tools": "6.4.0-beta.5",
21
21
  "typescript": "6.0.3",
22
- "vitest": "4.1.6"
22
+ "vitest": "4.1.7"
23
23
  },
24
24
  "publishConfig": {
25
- "access": "public",
26
- "directory": "dist"
25
+ "access": "public"
27
26
  },
28
- "gitHead": "2e58681d4344024bfb60e6180338e2f154ec87f0"
27
+ "webiny": {
28
+ "publishFrom": "dist"
29
+ }
29
30
  }