@channel.io/app-sdk-server 0.31.1 → 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,441 +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
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- import { describe, it, expect } from "vitest";
14
- import "reflect-metadata";
15
- import { z } from "zod";
16
- import { Extension, EXTENSION_METADATA, Func, TestFunc, FUNCTION_METADATA, FUNCTIONS_METADATA, SDK_EXTENSION_NAMES, Ctx, Input, Body, PARAM_METADATA, FunctionParamType, InputSchema, OutputSchema, Description, INPUT_SCHEMA_METADATA, OUTPUT_SCHEMA_METADATA, DESCRIPTION_METADATA, Messaging, } from "../decorators/index.js";
17
- describe("Decorators", () => {
18
- describe("@Extension", () => {
19
- it("should set metadata with string name", () => {
20
- let TestExtension = class TestExtension {
21
- };
22
- TestExtension = __decorate([
23
- Extension("calendar")
24
- ], TestExtension);
25
- const metadata = Reflect.getMetadata(EXTENSION_METADATA, TestExtension);
26
- expect(metadata).toEqual({
27
- name: "calendar",
28
- systemVersion: "v1",
29
- exclusive: false,
30
- description: undefined,
31
- });
32
- });
33
- it("should set metadata with options object", () => {
34
- let AdvancedExtension = class AdvancedExtension {
35
- };
36
- AdvancedExtension = __decorate([
37
- Extension({
38
- name: "command",
39
- systemVersion: "v2",
40
- exclusive: true,
41
- description: "Test description",
42
- })
43
- ], AdvancedExtension);
44
- const metadata = Reflect.getMetadata(EXTENSION_METADATA, AdvancedExtension);
45
- expect(metadata).toEqual({
46
- name: "command",
47
- systemVersion: "v2",
48
- exclusive: true,
49
- description: "Test description",
50
- });
51
- });
52
- it("should throw for invalid extension name", () => {
53
- expect(() => {
54
- let InvalidExtension = class InvalidExtension {
55
- };
56
- InvalidExtension = __decorate([
57
- Extension("kospi")
58
- ], InvalidExtension);
59
- void InvalidExtension;
60
- }).toThrow(/@Extension name "kospi" is not a valid SDK extension name/);
61
- });
62
- it("should accept all valid SDK extension names", () => {
63
- for (const name of SDK_EXTENSION_NAMES) {
64
- expect(() => {
65
- let ValidExtension = class ValidExtension {
66
- };
67
- ValidExtension = __decorate([
68
- Extension(name)
69
- ], ValidExtension);
70
- void ValidExtension;
71
- }).not.toThrow();
72
- }
73
- });
74
- it("should accept wms extension metadata", () => {
75
- expect(() => {
76
- let WmsExtension = class WmsExtension {
77
- };
78
- WmsExtension = __decorate([
79
- Extension({ name: "wms", systemVersion: "v1" })
80
- ], WmsExtension);
81
- void WmsExtension;
82
- }).not.toThrow();
83
- });
84
- it("should accept userAuthorization extension metadata", () => {
85
- let UserAuthorizationExtension = class UserAuthorizationExtension {
86
- };
87
- UserAuthorizationExtension = __decorate([
88
- Extension("userAuthorization")
89
- ], UserAuthorizationExtension);
90
- expect(Reflect.getMetadata(EXTENSION_METADATA, UserAuthorizationExtension)).toEqual({
91
- name: "userAuthorization",
92
- systemVersion: "v1",
93
- exclusive: false,
94
- description: undefined,
95
- });
96
- });
97
- });
98
- describe("@Func", () => {
99
- it("should set function metadata with method name as default", () => {
100
- class TestClass {
101
- testMethod() { }
102
- }
103
- __decorate([
104
- Func(),
105
- __metadata("design:type", Function),
106
- __metadata("design:paramtypes", []),
107
- __metadata("design:returntype", void 0)
108
- ], TestClass.prototype, "testMethod", null);
109
- const metadata = Reflect.getMetadata(FUNCTION_METADATA, TestClass, "testMethod");
110
- expect(metadata).toMatchObject({
111
- name: "testMethod",
112
- methodName: "testMethod",
113
- });
114
- const functions = Reflect.getMetadata(FUNCTIONS_METADATA, TestClass);
115
- expect(functions).toContain("testMethod");
116
- });
117
- it("should set function metadata with custom name", () => {
118
- class TestClass {
119
- myMethod() { }
120
- }
121
- __decorate([
122
- Func("custom.functionName"),
123
- __metadata("design:type", Function),
124
- __metadata("design:paramtypes", []),
125
- __metadata("design:returntype", void 0)
126
- ], TestClass.prototype, "myMethod", null);
127
- const metadata = Reflect.getMetadata(FUNCTION_METADATA, TestClass, "myMethod");
128
- expect(metadata).toMatchObject({
129
- name: "custom.functionName",
130
- methodName: "myMethod",
131
- });
132
- });
133
- it("should set function metadata with options", () => {
134
- class TestClass {
135
- anotherMethod() { }
136
- }
137
- __decorate([
138
- Func({ name: "options.function", description: "Test function" }),
139
- __metadata("design:type", Function),
140
- __metadata("design:paramtypes", []),
141
- __metadata("design:returntype", void 0)
142
- ], TestClass.prototype, "anotherMethod", null);
143
- const metadata = Reflect.getMetadata(FUNCTION_METADATA, TestClass, "anotherMethod");
144
- expect(metadata).toMatchObject({
145
- name: "options.function",
146
- methodName: "anotherMethod",
147
- description: "Test function",
148
- });
149
- });
150
- it("should preserve hidden function metadata from options", () => {
151
- class TestClass {
152
- ping() { }
153
- }
154
- __decorate([
155
- Func({ name: "admin.list", hidden: true }),
156
- __metadata("design:type", Function),
157
- __metadata("design:paramtypes", []),
158
- __metadata("design:returntype", void 0)
159
- ], TestClass.prototype, "ping", null);
160
- const metadata = Reflect.getMetadata(FUNCTION_METADATA, TestClass, "ping");
161
- expect(metadata).toMatchObject({
162
- name: "admin.list",
163
- methodName: "ping",
164
- hidden: true,
165
- });
166
- });
167
- it("should default test function names to the test namespace", () => {
168
- class TestClass {
169
- createOrder() { }
170
- }
171
- __decorate([
172
- TestFunc({ description: "Create a test order" }),
173
- __metadata("design:type", Function),
174
- __metadata("design:paramtypes", []),
175
- __metadata("design:returntype", void 0)
176
- ], TestClass.prototype, "createOrder", null);
177
- const metadata = Reflect.getMetadata(FUNCTION_METADATA, TestClass, "createOrder");
178
- expect(metadata).toMatchObject({
179
- name: "test.createOrder",
180
- methodName: "createOrder",
181
- description: "Create a test order",
182
- test: true,
183
- });
184
- const functions = Reflect.getMetadata(FUNCTIONS_METADATA, TestClass);
185
- expect(functions).toContain("createOrder");
186
- });
187
- it("should preserve explicit test function names", () => {
188
- class TestClass {
189
- seed() { }
190
- }
191
- __decorate([
192
- TestFunc("custom.seed"),
193
- __metadata("design:type", Function),
194
- __metadata("design:paramtypes", []),
195
- __metadata("design:returntype", void 0)
196
- ], TestClass.prototype, "seed", null);
197
- const metadata = Reflect.getMetadata(FUNCTION_METADATA, TestClass, "seed");
198
- expect(metadata).toMatchObject({
199
- name: "custom.seed",
200
- methodName: "seed",
201
- test: true,
202
- });
203
- });
204
- it("should auto-apply @Injectable() to the class", () => {
205
- class StandaloneClass {
206
- testMethod() { }
207
- }
208
- __decorate([
209
- Func("standalone.test"),
210
- __metadata("design:type", Function),
211
- __metadata("design:paramtypes", []),
212
- __metadata("design:returntype", void 0)
213
- ], StandaloneClass.prototype, "testMethod", null);
214
- // NestJS @Injectable() sets __injectable__ metadata on the class
215
- const injectableMetadata = Reflect.getMetadata("__injectable__", StandaloneClass);
216
- expect(injectableMetadata).toBe(true);
217
- });
218
- it("should set FUNCTIONS_METADATA on standalone class (no @Extension)", () => {
219
- class StandaloneFunctions {
220
- getIndex() { }
221
- getChart() { }
222
- }
223
- __decorate([
224
- Func("kospi.getIndex"),
225
- __metadata("design:type", Function),
226
- __metadata("design:paramtypes", []),
227
- __metadata("design:returntype", void 0)
228
- ], StandaloneFunctions.prototype, "getIndex", null);
229
- __decorate([
230
- Func("kospi.getChart"),
231
- __metadata("design:type", Function),
232
- __metadata("design:paramtypes", []),
233
- __metadata("design:returntype", void 0)
234
- ], StandaloneFunctions.prototype, "getChart", null);
235
- const functions = Reflect.getMetadata(FUNCTIONS_METADATA, StandaloneFunctions);
236
- expect(functions).toHaveLength(2);
237
- expect(functions).toContain("getIndex");
238
- expect(functions).toContain("getChart");
239
- // No extension metadata
240
- const extMeta = Reflect.getMetadata(EXTENSION_METADATA, StandaloneFunctions);
241
- expect(extMeta).toBeUndefined();
242
- });
243
- it("should keep function metadata arrays independent across inheritance", () => {
244
- class ParentFunctions {
245
- getParent() { }
246
- }
247
- __decorate([
248
- Func("parent.get"),
249
- __metadata("design:type", Function),
250
- __metadata("design:paramtypes", []),
251
- __metadata("design:returntype", void 0)
252
- ], ParentFunctions.prototype, "getParent", null);
253
- class ChildFunctions extends ParentFunctions {
254
- getChild() { }
255
- }
256
- __decorate([
257
- Func("child.get"),
258
- __metadata("design:type", Function),
259
- __metadata("design:paramtypes", []),
260
- __metadata("design:returntype", void 0)
261
- ], ChildFunctions.prototype, "getChild", null);
262
- expect(Reflect.getOwnMetadata(FUNCTIONS_METADATA, ParentFunctions)).toEqual(["getParent"]);
263
- expect(Reflect.getOwnMetadata(FUNCTIONS_METADATA, ChildFunctions)).toEqual(["getChild"]);
264
- });
265
- });
266
- describe("Parameter Decorators", () => {
267
- it("@Ctx should set parameter metadata", () => {
268
- class TestClass {
269
- testMethod(_ctx) { }
270
- }
271
- __decorate([
272
- __param(0, Ctx()),
273
- __metadata("design:type", Function),
274
- __metadata("design:paramtypes", [Object]),
275
- __metadata("design:returntype", void 0)
276
- ], TestClass.prototype, "testMethod", null);
277
- const params = Reflect.getMetadata(PARAM_METADATA, TestClass, "testMethod");
278
- expect(params).toContainEqual({
279
- index: 0,
280
- type: FunctionParamType.CTX,
281
- });
282
- });
283
- it("@Input should set parameter metadata", () => {
284
- class TestClass {
285
- testMethod(_input) { }
286
- }
287
- __decorate([
288
- __param(0, Input()),
289
- __metadata("design:type", Function),
290
- __metadata("design:paramtypes", [Object]),
291
- __metadata("design:returntype", void 0)
292
- ], TestClass.prototype, "testMethod", null);
293
- const params = Reflect.getMetadata(PARAM_METADATA, TestClass, "testMethod");
294
- expect(params).toContainEqual({
295
- index: 0,
296
- type: FunctionParamType.INPUT,
297
- });
298
- });
299
- it("@Body should set parameter metadata", () => {
300
- class TestClass {
301
- testMethod(_body) { }
302
- }
303
- __decorate([
304
- __param(0, Body()),
305
- __metadata("design:type", Function),
306
- __metadata("design:paramtypes", [Object]),
307
- __metadata("design:returntype", void 0)
308
- ], TestClass.prototype, "testMethod", null);
309
- const params = Reflect.getMetadata(PARAM_METADATA, TestClass, "testMethod");
310
- expect(params).toContainEqual({
311
- index: 0,
312
- type: FunctionParamType.BODY,
313
- });
314
- });
315
- it("should handle multiple parameter decorators", () => {
316
- class TestClass {
317
- testMethod(_ctx, _input) { }
318
- }
319
- __decorate([
320
- __param(0, Ctx()),
321
- __param(1, Input()),
322
- __metadata("design:type", Function),
323
- __metadata("design:paramtypes", [Object, Object]),
324
- __metadata("design:returntype", void 0)
325
- ], TestClass.prototype, "testMethod", null);
326
- const params = Reflect.getMetadata(PARAM_METADATA, TestClass, "testMethod");
327
- expect(params).toHaveLength(2);
328
- expect(params).toContainEqual({ index: 0, type: FunctionParamType.CTX });
329
- expect(params).toContainEqual({ index: 1, type: FunctionParamType.INPUT });
330
- });
331
- });
332
- describe("Schema Decorators", () => {
333
- const testInputSchema = z.object({
334
- name: z.string(),
335
- age: z.number(),
336
- });
337
- const testOutputSchema = z.object({
338
- success: z.boolean(),
339
- });
340
- it("@InputSchema should set schema metadata", () => {
341
- class TestClass {
342
- testMethod() { }
343
- }
344
- __decorate([
345
- InputSchema(testInputSchema),
346
- __metadata("design:type", Function),
347
- __metadata("design:paramtypes", []),
348
- __metadata("design:returntype", void 0)
349
- ], TestClass.prototype, "testMethod", null);
350
- const schema = Reflect.getMetadata(INPUT_SCHEMA_METADATA, TestClass, "testMethod");
351
- expect(schema).toBe(testInputSchema);
352
- });
353
- it("@OutputSchema should set schema metadata", () => {
354
- class TestClass {
355
- testMethod() { }
356
- }
357
- __decorate([
358
- OutputSchema(testOutputSchema),
359
- __metadata("design:type", Function),
360
- __metadata("design:paramtypes", []),
361
- __metadata("design:returntype", void 0)
362
- ], TestClass.prototype, "testMethod", null);
363
- const schema = Reflect.getMetadata(OUTPUT_SCHEMA_METADATA, TestClass, "testMethod");
364
- expect(schema).toBe(testOutputSchema);
365
- });
366
- it("@Description should set description metadata", () => {
367
- class TestClass {
368
- testMethod() { }
369
- }
370
- __decorate([
371
- Description("This is a test function"),
372
- __metadata("design:type", Function),
373
- __metadata("design:paramtypes", []),
374
- __metadata("design:returntype", void 0)
375
- ], TestClass.prototype, "testMethod", null);
376
- const description = Reflect.getMetadata(DESCRIPTION_METADATA, TestClass, "testMethod");
377
- expect(description).toBe("This is a test function");
378
- });
379
- it("should combine all decorators", () => {
380
- let CombinedExtension = class CombinedExtension {
381
- async testFunction(_ctx, _params) {
382
- return { success: true };
383
- }
384
- };
385
- __decorate([
386
- Func("combined.function"),
387
- Description("Combined function test"),
388
- InputSchema(testInputSchema),
389
- OutputSchema(testOutputSchema),
390
- __param(0, Ctx()),
391
- __param(1, Input()),
392
- __metadata("design:type", Function),
393
- __metadata("design:paramtypes", [Object, Object]),
394
- __metadata("design:returntype", Promise)
395
- ], CombinedExtension.prototype, "testFunction", null);
396
- CombinedExtension = __decorate([
397
- Extension("widget")
398
- ], CombinedExtension);
399
- // Extension metadata
400
- const extMeta = Reflect.getMetadata(EXTENSION_METADATA, CombinedExtension);
401
- expect(extMeta.name).toBe("widget");
402
- // Function metadata
403
- const funcMeta = Reflect.getMetadata(FUNCTION_METADATA, CombinedExtension, "testFunction");
404
- expect(funcMeta.name).toBe("combined.function");
405
- // Schema metadata
406
- const inputSchema = Reflect.getMetadata(INPUT_SCHEMA_METADATA, CombinedExtension, "testFunction");
407
- const outputSchema = Reflect.getMetadata(OUTPUT_SCHEMA_METADATA, CombinedExtension, "testFunction");
408
- expect(inputSchema).toBe(testInputSchema);
409
- expect(outputSchema).toBe(testOutputSchema);
410
- // Description
411
- const desc = Reflect.getMetadata(DESCRIPTION_METADATA, CombinedExtension, "testFunction");
412
- expect(desc).toBe("Combined function test");
413
- // Parameter metadata
414
- const params = Reflect.getMetadata(PARAM_METADATA, CombinedExtension, "testFunction");
415
- expect(params).toHaveLength(2);
416
- });
417
- });
418
- describe("Messaging decorators", () => {
419
- it("sets the relative Function name and matching schemas together", () => {
420
- class MessagingExtension {
421
- handle() { }
422
- }
423
- __decorate([
424
- Messaging.inbox.onMediumMessageCreated(),
425
- __metadata("design:type", Function),
426
- __metadata("design:paramtypes", []),
427
- __metadata("design:returntype", void 0)
428
- ], MessagingExtension.prototype, "handle", null);
429
- expect(Reflect.getMetadata(FUNCTION_METADATA, MessagingExtension, "handle")).toMatchObject({
430
- name: "inbox.onMediumMessageCreated",
431
- });
432
- expect(Reflect.getMetadata(INPUT_SCHEMA_METADATA, MessagingExtension, "handle")).toBeDefined();
433
- expect(Reflect.getMetadata(OUTPUT_SCHEMA_METADATA, MessagingExtension, "handle")).toBeDefined();
434
- expect(Reflect.getMetadata(PARAM_METADATA, MessagingExtension, "handle")).toEqual([
435
- { index: 0, type: FunctionParamType.CTX },
436
- { index: 1, type: FunctionParamType.INPUT },
437
- ]);
438
- });
439
- });
440
- });
441
- //# sourceMappingURL=decorators.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorators.test.js","sourceRoot":"","sources":["../../src/__tests__/decorators.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=extension-result-normalizer.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-result-normalizer.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/extension-result-normalizer.test.ts"],"names":[],"mappings":""}
@@ -1,184 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { normalizeExtensionResult } from "../utils/extension-result-normalizer.js";
3
- describe("normalizeExtensionResult", () => {
4
- it("should default command config systemVersion to v1", () => {
5
- const result = normalizeExtensionResult("extension.command.metadata.getCommands", {
6
- commands: [
7
- {
8
- name: "hello",
9
- scope: "desk",
10
- actionFunctionName: "commands.hello.execute",
11
- alfMode: "disable",
12
- },
13
- ],
14
- });
15
- expect(result).toEqual({
16
- commands: [
17
- {
18
- name: "hello",
19
- scope: "desk",
20
- actionFunctionName: "commands.hello.execute",
21
- systemVersion: "v1",
22
- alfMode: "disable",
23
- },
24
- ],
25
- });
26
- });
27
- it("should preserve explicit command config systemVersion", () => {
28
- const result = normalizeExtensionResult("metadata.getCommands", {
29
- commands: [
30
- {
31
- name: "hello",
32
- scope: "desk",
33
- actionFunctionName: "commands.hello.execute",
34
- systemVersion: "v2",
35
- alfMode: "disable",
36
- },
37
- ],
38
- });
39
- expect(result).toEqual({
40
- commands: [
41
- {
42
- name: "hello",
43
- scope: "desk",
44
- actionFunctionName: "commands.hello.execute",
45
- systemVersion: "v2",
46
- alfMode: "disable",
47
- },
48
- ],
49
- });
50
- });
51
- it("should default widget config systemVersion to v1", () => {
52
- const result = normalizeExtensionResult("extension.widget.metadata.getWidgets", {
53
- widgets: [
54
- {
55
- name: "quick_actions",
56
- scope: "desk",
57
- widgetType: "wam",
58
- actionFunctionName: "widgets.quickActions.action",
59
- },
60
- ],
61
- });
62
- expect(result).toEqual({
63
- widgets: [
64
- {
65
- name: "quick_actions",
66
- scope: "desk",
67
- widgetType: "wam",
68
- actionFunctionName: "widgets.quickActions.action",
69
- systemVersion: "v1",
70
- },
71
- ],
72
- });
73
- });
74
- it("should preserve explicit widget config systemVersion", () => {
75
- const result = normalizeExtensionResult("metadata.getWidgets", {
76
- widgets: [
77
- {
78
- name: "quick_actions",
79
- scope: "desk",
80
- widgetType: "wam",
81
- actionFunctionName: "widgets.quickActions.action",
82
- systemVersion: "v2",
83
- },
84
- ],
85
- });
86
- expect(result).toEqual({
87
- widgets: [
88
- {
89
- name: "quick_actions",
90
- scope: "desk",
91
- widgetType: "wam",
92
- actionFunctionName: "widgets.quickActions.action",
93
- systemVersion: "v2",
94
- },
95
- ],
96
- });
97
- });
98
- it("should default custom tab config systemVersion to v1", () => {
99
- const result = normalizeExtensionResult("extension.customtab.metadata.getCustomTabs", {
100
- customTabs: [
101
- {
102
- name: "analytics",
103
- actionFunctionName: "customtabs.analytics.action",
104
- },
105
- ],
106
- });
107
- expect(result).toEqual({
108
- customTabs: [
109
- {
110
- name: "analytics",
111
- actionFunctionName: "customtabs.analytics.action",
112
- systemVersion: "v1",
113
- },
114
- ],
115
- });
116
- });
117
- it("should keep legacy customtab getConfig normalization for backwards compatibility", () => {
118
- const result = normalizeExtensionResult("extension.customtab.customtab.getConfig", {
119
- tabs: [
120
- {
121
- name: "analytics",
122
- },
123
- ],
124
- });
125
- expect(result).toEqual({
126
- tabs: [
127
- {
128
- name: "analytics",
129
- systemVersion: "v1",
130
- },
131
- ],
132
- });
133
- });
134
- it("should default hook config systemVersion to v1", () => {
135
- const result = normalizeExtensionResult("extension.hook.metadata.getHooks", {
136
- hooks: [
137
- {
138
- type: "app.installed",
139
- actionFunctionName: "hooks.lifecycle.onAppInstalled",
140
- },
141
- ],
142
- });
143
- expect(result).toEqual({
144
- hooks: [
145
- {
146
- type: "app.installed",
147
- actionFunctionName: "hooks.lifecycle.onAppInstalled",
148
- systemVersion: "v1",
149
- },
150
- ],
151
- });
152
- });
153
- it("should preserve explicit hook config systemVersion", () => {
154
- const result = normalizeExtensionResult("metadata.getHooks", {
155
- hooks: [
156
- {
157
- type: "widget.installed",
158
- targetId: "quick_actions",
159
- actionFunctionName: "hooks.widgets.onQuickActionsInstalled",
160
- systemVersion: "v2",
161
- },
162
- ],
163
- });
164
- expect(result).toEqual({
165
- hooks: [
166
- {
167
- type: "widget.installed",
168
- targetId: "quick_actions",
169
- actionFunctionName: "hooks.widgets.onQuickActionsInstalled",
170
- systemVersion: "v2",
171
- },
172
- ],
173
- });
174
- });
175
- it("should leave unrelated methods unchanged", () => {
176
- const result = normalizeExtensionResult("extension.widget.widget.action", {
177
- success: true,
178
- });
179
- expect(result).toEqual({
180
- success: true,
181
- });
182
- });
183
- });
184
- //# sourceMappingURL=extension-result-normalizer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-result-normalizer.test.js","sourceRoot":"","sources":["../../src/__tests__/extension-result-normalizer.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=function-input-validator.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"function-input-validator.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/function-input-validator.test.ts"],"names":[],"mappings":""}