@channel.io/app-sdk-server 0.31.0 → 0.32.0

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.
Files changed (77) hide show
  1. package/dist/decorators/extension.decorator.d.ts +6 -0
  2. package/dist/decorators/extension.decorator.d.ts.map +1 -1
  3. package/dist/decorators/extension.decorator.js +14 -0
  4. package/dist/decorators/extension.decorator.js.map +1 -1
  5. package/dist/decorators/index.d.ts +1 -1
  6. package/dist/decorators/index.d.ts.map +1 -1
  7. package/dist/decorators/index.js +1 -1
  8. package/dist/decorators/index.js.map +1 -1
  9. package/dist/native/client.d.ts +7 -22
  10. package/dist/native/client.d.ts.map +1 -1
  11. package/dist/native/client.js +13 -31
  12. package/dist/native/client.js.map +1 -1
  13. package/dist/native/proxy-api.d.ts +3 -15
  14. package/dist/native/proxy-api.d.ts.map +1 -1
  15. package/dist/native/proxy-api.js +2 -20
  16. package/dist/native/proxy-api.js.map +1 -1
  17. package/dist/native/proxy-api.types.d.ts +1 -1
  18. package/dist/native/proxy-api.types.d.ts.map +1 -1
  19. package/dist/native/types.d.ts +6 -0
  20. package/dist/native/types.d.ts.map +1 -1
  21. package/package.json +4 -4
  22. package/dist/__tests__/datasource-runners.test.d.ts +0 -2
  23. package/dist/__tests__/datasource-runners.test.d.ts.map +0 -1
  24. package/dist/__tests__/datasource-runners.test.js +0 -354
  25. package/dist/__tests__/datasource-runners.test.js.map +0 -1
  26. package/dist/__tests__/datasource.test.d.ts +0 -2
  27. package/dist/__tests__/datasource.test.d.ts.map +0 -1
  28. package/dist/__tests__/datasource.test.js +0 -374
  29. package/dist/__tests__/datasource.test.js.map +0 -1
  30. package/dist/__tests__/decorators.test.d.ts +0 -2
  31. package/dist/__tests__/decorators.test.d.ts.map +0 -1
  32. package/dist/__tests__/decorators.test.js +0 -441
  33. package/dist/__tests__/decorators.test.js.map +0 -1
  34. package/dist/__tests__/extension-result-normalizer.test.d.ts +0 -2
  35. package/dist/__tests__/extension-result-normalizer.test.d.ts.map +0 -1
  36. package/dist/__tests__/extension-result-normalizer.test.js +0 -184
  37. package/dist/__tests__/extension-result-normalizer.test.js.map +0 -1
  38. package/dist/__tests__/function-input-validator.test.d.ts +0 -2
  39. package/dist/__tests__/function-input-validator.test.d.ts.map +0 -1
  40. package/dist/__tests__/function-input-validator.test.js +0 -56
  41. package/dist/__tests__/function-input-validator.test.js.map +0 -1
  42. package/dist/__tests__/native-client.test.d.ts +0 -2
  43. package/dist/__tests__/native-client.test.d.ts.map +0 -1
  44. package/dist/__tests__/native-client.test.js +0 -504
  45. package/dist/__tests__/native-client.test.js.map +0 -1
  46. package/dist/__tests__/proxy-api.test.d.ts +0 -2
  47. package/dist/__tests__/proxy-api.test.d.ts.map +0 -1
  48. package/dist/__tests__/proxy-api.test.js +0 -310
  49. package/dist/__tests__/proxy-api.test.js.map +0 -1
  50. package/dist/__tests__/sanitize-for-logging.test.d.ts +0 -2
  51. package/dist/__tests__/sanitize-for-logging.test.d.ts.map +0 -1
  52. package/dist/__tests__/sanitize-for-logging.test.js +0 -97
  53. package/dist/__tests__/sanitize-for-logging.test.js.map +0 -1
  54. package/dist/__tests__/signature.test.d.ts +0 -2
  55. package/dist/__tests__/signature.test.d.ts.map +0 -1
  56. package/dist/__tests__/signature.test.js +0 -172
  57. package/dist/__tests__/signature.test.js.map +0 -1
  58. package/dist/__tests__/testing-utils.test.d.ts +0 -2
  59. package/dist/__tests__/testing-utils.test.d.ts.map +0 -1
  60. package/dist/__tests__/testing-utils.test.js +0 -244
  61. package/dist/__tests__/testing-utils.test.js.map +0 -1
  62. package/dist/__tests__/token-manager.test.d.ts +0 -2
  63. package/dist/__tests__/token-manager.test.d.ts.map +0 -1
  64. package/dist/__tests__/token-manager.test.js +0 -528
  65. package/dist/__tests__/token-manager.test.js.map +0 -1
  66. package/dist/discovery/extension-discovery.service.test.d.ts +0 -2
  67. package/dist/discovery/extension-discovery.service.test.d.ts.map +0 -1
  68. package/dist/discovery/extension-discovery.service.test.js +0 -116
  69. package/dist/discovery/extension-discovery.service.test.js.map +0 -1
  70. package/dist/nestjs/channel-app.controller.test.d.ts +0 -2
  71. package/dist/nestjs/channel-app.controller.test.d.ts.map +0 -1
  72. package/dist/nestjs/channel-app.controller.test.js +0 -37
  73. package/dist/nestjs/channel-app.controller.test.js.map +0 -1
  74. package/dist/nestjs/channel-app.service.test.d.ts +0 -2
  75. package/dist/nestjs/channel-app.service.test.d.ts.map +0 -1
  76. package/dist/nestjs/channel-app.service.test.js +0 -583
  77. package/dist/nestjs/channel-app.service.test.js.map +0 -1
@@ -1,116 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import "reflect-metadata";
11
- import { Reflector } from "@nestjs/core";
12
- import { describe, expect, it } from "vitest";
13
- import { Extension, Func, TestFunc } from "../decorators/index.js";
14
- import { ExtensionDiscoveryService } from "./extension-discovery.service.js";
15
- class StandaloneFunctions {
16
- async publicPing() {
17
- return { source: "public" };
18
- }
19
- async hiddenPing() {
20
- return { source: "hidden" };
21
- }
22
- async visibleTest() {
23
- return { source: "test" };
24
- }
25
- async hiddenTest() {
26
- return { source: "hidden-test" };
27
- }
28
- }
29
- __decorate([
30
- Func("public.ping"),
31
- __metadata("design:type", Function),
32
- __metadata("design:paramtypes", []),
33
- __metadata("design:returntype", Promise)
34
- ], StandaloneFunctions.prototype, "publicPing", null);
35
- __decorate([
36
- Func({ name: "admin.ping", hidden: true }),
37
- __metadata("design:type", Function),
38
- __metadata("design:paramtypes", []),
39
- __metadata("design:returntype", Promise)
40
- ], StandaloneFunctions.prototype, "hiddenPing", null);
41
- __decorate([
42
- TestFunc("test.visible"),
43
- __metadata("design:type", Function),
44
- __metadata("design:paramtypes", []),
45
- __metadata("design:returntype", Promise)
46
- ], StandaloneFunctions.prototype, "visibleTest", null);
47
- __decorate([
48
- TestFunc({ name: "test.hidden", hidden: true }),
49
- __metadata("design:type", Function),
50
- __metadata("design:paramtypes", []),
51
- __metadata("design:returntype", Promise)
52
- ], StandaloneFunctions.prototype, "hiddenTest", null);
53
- let UserAuthorizationExtension = class UserAuthorizationExtension {
54
- getConfig() {
55
- return { functions: [] };
56
- }
57
- };
58
- __decorate([
59
- Func("metadata.getConfig"),
60
- __metadata("design:type", Function),
61
- __metadata("design:paramtypes", []),
62
- __metadata("design:returntype", void 0)
63
- ], UserAuthorizationExtension.prototype, "getConfig", null);
64
- UserAuthorizationExtension = __decorate([
65
- Extension("userAuthorization")
66
- ], UserAuthorizationExtension);
67
- function createDiscoveryService(providers = [
68
- {
69
- instance: new StandaloneFunctions(),
70
- metatype: StandaloneFunctions,
71
- },
72
- ]) {
73
- const nestDiscovery = {
74
- getProviders: () => providers,
75
- };
76
- const service = new ExtensionDiscoveryService(nestDiscovery, new Reflector());
77
- service.onModuleInit();
78
- return service;
79
- }
80
- describe("ExtensionDiscoveryService hidden functions", () => {
81
- it("omits hidden functions from public and test discovery", () => {
82
- const service = createDiscoveryService();
83
- expect(service.getPublicFunctions().map((func) => func.fullName)).toEqual(["public.ping"]);
84
- expect(service.getTestFunctions().map((func) => func.fullName)).toEqual(["test.visible"]);
85
- });
86
- it("keeps hidden functions registered and directly invokable", async () => {
87
- const service = createDiscoveryService();
88
- expect(service.getAllFunctions().map((func) => func.fullName)).toEqual([
89
- "public.ping",
90
- "admin.ping",
91
- "test.visible",
92
- "test.hidden",
93
- ]);
94
- const hidden = service.getFunction("admin.ping");
95
- expect(hidden).toMatchObject({ fullName: "admin.ping", hidden: true });
96
- await expect(hidden.handler({}, {})).resolves.toEqual({
97
- source: "hidden",
98
- });
99
- });
100
- });
101
- describe("ExtensionDiscoveryService", () => {
102
- it("builds the canonical userAuthorization metadata Function name", () => {
103
- const service = createDiscoveryService([
104
- {
105
- instance: new UserAuthorizationExtension(),
106
- metatype: UserAuthorizationExtension,
107
- },
108
- ]);
109
- expect(service.getFunction("extension.userAuthorization.metadata.getConfig")).toMatchObject({
110
- name: "metadata.getConfig",
111
- fullName: "extension.userAuthorization.metadata.getConfig",
112
- methodName: "getConfig",
113
- });
114
- });
115
- });
116
- //# sourceMappingURL=extension-discovery.service.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-discovery.service.test.js","sourceRoot":"","sources":["../../src/discovery/extension-discovery.service.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=channel-app.controller.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-app.controller.test.d.ts","sourceRoot":"","sources":["../../src/nestjs/channel-app.controller.test.ts"],"names":[],"mappings":""}
@@ -1,37 +0,0 @@
1
- import { HttpException, HttpStatus } from "@nestjs/common";
2
- import { ValidationError } from "@channel.io/app-sdk-core";
3
- import { describe, expect, it, vi } from "vitest";
4
- import { ChannelAppController } from "./channel-app.controller.js";
5
- describe("ChannelAppController", () => {
6
- it("returns HTTP 400 for input validation errors", async () => {
7
- const validationError = new ValidationError("Invalid function input", [
8
- { code: "invalid_type", path: ["quantity"] },
9
- ]);
10
- const service = {
11
- handleFunctionCall: vi.fn().mockRejectedValue(validationError),
12
- };
13
- const controller = new ChannelAppController(service);
14
- try {
15
- await controller.handleVersionedFunctions("v1", {
16
- method: "extension.cafe.addCartItem",
17
- context: {
18
- caller: { type: "manager", id: "manager-1" },
19
- channel: { id: "channel-1" },
20
- },
21
- params: { quantity: "1" },
22
- });
23
- expect.fail("Expected validation to fail");
24
- }
25
- catch (error) {
26
- expect(error).toBeInstanceOf(HttpException);
27
- const httpError = error;
28
- expect(httpError.getStatus()).toBe(HttpStatus.BAD_REQUEST);
29
- expect(httpError.getResponse()).toEqual({
30
- error: "VALIDATION_ERROR",
31
- message: "Invalid function input",
32
- details: [{ code: "invalid_type", path: ["quantity"] }],
33
- });
34
- }
35
- });
36
- });
37
- //# sourceMappingURL=channel-app.controller.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-app.controller.test.js","sourceRoot":"","sources":["../../src/nestjs/channel-app.controller.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,wBAAwB,EAAE;YACpE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE;SAC7C,CAAC,CAAC;QACH,MAAM,OAAO,GAAG;YACd,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;SAC/B,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,wBAAwB,CAAC,IAAI,EAAE;gBAC9C,MAAM,EAAE,4BAA4B;gBACpC,OAAO,EAAE;oBACP,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE;oBAC5C,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE;iBAC7B;gBACD,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,KAAsB,CAAC;YACzC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC3D,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;gBACtC,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,wBAAwB;gBACjC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=channel-app.service.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-app.service.test.d.ts","sourceRoot":"","sources":["../../src/nestjs/channel-app.service.test.ts"],"names":[],"mappings":""}