@channel.io/app-sdk-server 0.17.1 → 0.17.2

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.
@@ -19,6 +19,22 @@ describe("parseFunctionInputParams", () => {
19
19
  ]),
20
20
  }));
21
21
  });
22
+ it("converts Zod errors created by another module instance", () => {
23
+ const crossModuleError = Object.assign(new Error("Invalid input"), {
24
+ name: "ZodError",
25
+ issues: [{ code: "invalid_type", path: ["quantity"] }],
26
+ });
27
+ const schema = {
28
+ parse: () => {
29
+ throw crossModuleError;
30
+ },
31
+ };
32
+ expect(() => parseFunctionInputParams("extension.cafe.addCartItem", schema, {})).toThrowError(expect.objectContaining({
33
+ name: "ValidationError",
34
+ code: "VALIDATION_ERROR",
35
+ details: crossModuleError.issues,
36
+ }));
37
+ });
22
38
  it("keeps messaging input key normalization", () => {
23
39
  const schema = z.object({ userId: z.string() });
24
40
  expect(parseFunctionInputParams("extension.messaging.send", schema, { user_id: "user-1" })).toEqual({ userId: "user-1" });
@@ -1 +1 @@
1
- {"version":3,"file":"function-input-validator.test.js","sourceRoot":"","sources":["../../src/__tests__/function-input-validator.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAElD,MAAM,CAAC,wBAAwB,CAAC,4BAA4B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAC7F;YACE,QAAQ,EAAE,CAAC;SACZ,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAElD,MAAM,CAAC,GAAG,EAAE,CACV,wBAAwB,CAAC,4BAA4B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAClF,CAAC,YAAY,CACZ,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,uDAAuD;YAChE,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC;gBAC9B,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;aACtE,CAAC;SACH,CAAoB,CACtB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEhD,MAAM,CACJ,wBAAwB,CAAC,0BAA0B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CACpF,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;YAC/B,MAAM,UAAU,CAAC;QACnB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAEf,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CACtF,UAAU,CACX,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"function-input-validator.test.js","sourceRoot":"","sources":["../../src/__tests__/function-input-validator.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { type z } from "zod";
1
+ import type { z } from "zod";
2
2
  export declare function parseFunctionInputParams<T>(functionName: string, inputSchema: z.ZodSchema<T>, params: unknown): T;
3
3
  //# sourceMappingURL=function-input-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"function-input-validator.d.ts","sourceRoot":"","sources":["../../src/utils/function-input-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;AAMvC,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,OAAO,GACd,CAAC,CAYH"}
1
+ {"version":3,"file":"function-input-validator.d.ts","sourceRoot":"","sources":["../../src/utils/function-input-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsB7B,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,OAAO,GACd,CAAC,CAYH"}
@@ -1,6 +1,13 @@
1
1
  import { ValidationError } from "@channel.io/app-sdk-core";
2
- import { ZodError } from "zod";
3
2
  import { isMessagingExtensionMethod, parseMessagingExtensionInputParams, } from "./messaging-input-normalizer.js";
3
+ function isZodErrorLike(error) {
4
+ return (typeof error === "object" &&
5
+ error !== null &&
6
+ "name" in error &&
7
+ error.name === "ZodError" &&
8
+ "issues" in error &&
9
+ Array.isArray(error.issues));
10
+ }
4
11
  export function parseFunctionInputParams(functionName, inputSchema, params) {
5
12
  try {
6
13
  return isMessagingExtensionMethod(functionName)
@@ -8,7 +15,7 @@ export function parseFunctionInputParams(functionName, inputSchema, params) {
8
15
  : inputSchema.parse(params);
9
16
  }
10
17
  catch (error) {
11
- if (error instanceof ZodError) {
18
+ if (isZodErrorLike(error)) {
12
19
  throw new ValidationError(`Invalid input for function ${functionName}`, error.issues);
13
20
  }
14
21
  throw error;
@@ -1 +1 @@
1
- {"version":3,"file":"function-input-validator.js","sourceRoot":"","sources":["../../src/utils/function-input-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAU,MAAM,KAAK,CAAC;AACvC,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,iCAAiC,CAAC;AAEzC,MAAM,UAAU,wBAAwB,CACtC,YAAoB,EACpB,WAA2B,EAC3B,MAAe;IAEf,IAAI,CAAC;QACH,OAAO,0BAA0B,CAAC,YAAY,CAAC;YAC7C,CAAC,CAAC,kCAAkC,CAAC,WAAW,EAAE,MAAM,CAAC;YACzD,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,eAAe,CAAC,8BAA8B,YAAY,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"function-input-validator.js","sourceRoot":"","sources":["../../src/utils/function-input-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,iCAAiC,CAAC;AAOzC,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,KAAK,CAAC,IAAI,KAAK,UAAU;QACzB,QAAQ,IAAI,KAAK;QACjB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,YAAoB,EACpB,WAA2B,EAC3B,MAAe;IAEf,IAAI,CAAC;QACH,OAAO,0BAA0B,CAAC,YAAY,CAAC;YAC7C,CAAC,CAAC,kCAAkC,CAAC,WAAW,EAAE,MAAM,CAAC;YACzD,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,eAAe,CAAC,8BAA8B,YAAY,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@channel.io/app-sdk-server",
3
- "version": "0.17.1",
3
+ "version": "0.17.2",
4
4
  "description": "NestJS server SDK for Channel.io apps",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "protobufjs": "^8.7.1",
26
26
  "zod": "^3.24.1",
27
27
  "zod-to-json-schema": "^3.25.2",
28
- "@channel.io/app-sdk-core": "0.17.1"
28
+ "@channel.io/app-sdk-core": "0.17.2"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "@google-cloud/bigquery": "^8.3.1",