@optimizely-opal/opal-tool-ocp-sdk 0.0.0-dev.4 → 0.0.0-devmg.11
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.
- package/README.md +106 -45
- package/dist/auth/TokenVerifier.d.ts +31 -0
- package/dist/auth/TokenVerifier.d.ts.map +1 -0
- package/dist/auth/TokenVerifier.js +127 -0
- package/dist/auth/TokenVerifier.js.map +1 -0
- package/dist/auth/TokenVerifier.test.d.ts +2 -0
- package/dist/auth/TokenVerifier.test.d.ts.map +1 -0
- package/dist/auth/TokenVerifier.test.js +114 -0
- package/dist/auth/TokenVerifier.test.js.map +1 -0
- package/dist/decorator/Decorator.js +2 -2
- package/dist/decorator/Decorator.js.map +1 -1
- package/dist/decorator/Decorator.test.js +56 -0
- package/dist/decorator/Decorator.test.js.map +1 -1
- package/dist/function/ToolFunction.d.ts +11 -7
- package/dist/function/ToolFunction.d.ts.map +1 -1
- package/dist/function/ToolFunction.js +53 -10
- package/dist/function/ToolFunction.js.map +1 -1
- package/dist/function/ToolFunction.test.js +225 -122
- package/dist/function/ToolFunction.test.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/service/Service.d.ts +14 -13
- package/dist/service/Service.d.ts.map +1 -1
- package/dist/service/Service.js +22 -16
- package/dist/service/Service.js.map +1 -1
- package/dist/service/Service.test.js +53 -36
- package/dist/service/Service.test.js.map +1 -1
- package/dist/types/Models.d.ts +5 -5
- package/dist/types/Models.d.ts.map +1 -1
- package/dist/types/Models.js +9 -9
- package/dist/types/Models.js.map +1 -1
- package/package.json +10 -3
- package/src/auth/TokenVerifier.test.ts +152 -0
- package/src/auth/TokenVerifier.ts +145 -0
- package/src/decorator/Decorator.test.ts +66 -2
- package/src/decorator/Decorator.ts +2 -2
- package/src/function/ToolFunction.test.ts +251 -128
- package/src/function/ToolFunction.ts +60 -11
- package/src/index.ts +1 -0
- package/src/service/Service.test.ts +55 -37
- package/src/service/Service.ts +29 -22
- package/src/types/Models.ts +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,gDAAkD;AAClD,+
|
|
1
|
+
{"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ exports.InteractionResult = exports.Interaction = exports.Tool = void 0;
|
|
|
18
18
|
__exportStar(require("./function/ToolFunction"), exports);
|
|
19
19
|
__exportStar(require("./types/Models"), exports);
|
|
20
20
|
__exportStar(require("./decorator/Decorator"), exports);
|
|
21
|
+
__exportStar(require("./auth/TokenVerifier"), exports);
|
|
21
22
|
var Service_1 = require("./service/Service");
|
|
22
23
|
Object.defineProperty(exports, "Tool", { enumerable: true, get: function () { return Service_1.Tool; } });
|
|
23
24
|
Object.defineProperty(exports, "Interaction", { enumerable: true, get: function () { return Service_1.Interaction; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,iDAA+B;AAC/B,wDAAsC;AACtC,6CAAyE;AAAhE,+FAAA,IAAI,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,4GAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,iDAA+B;AAC/B,wDAAsC;AACtC,uDAAqC;AACrC,6CAAyE;AAAhE,+FAAA,IAAI,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,4GAAA,iBAAiB,OAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AuthRequirement, Parameter } from '../types/Models';
|
|
2
2
|
import * as App from '@zaiusinc/app-sdk';
|
|
3
|
+
import { ToolFunction } from '../function/ToolFunction';
|
|
3
4
|
/**
|
|
4
5
|
* Result type for interaction handlers
|
|
5
6
|
*/
|
|
@@ -14,8 +15,8 @@ export declare class InteractionResult {
|
|
|
14
15
|
export declare class Interaction<TAuthData> {
|
|
15
16
|
name: string;
|
|
16
17
|
endpoint: string;
|
|
17
|
-
handler: (functionContext:
|
|
18
|
-
constructor(name: string, endpoint: string, handler: (functionContext:
|
|
18
|
+
handler: (functionContext: ToolFunction, data: unknown, authData?: TAuthData) => Promise<InteractionResult>;
|
|
19
|
+
constructor(name: string, endpoint: string, handler: (functionContext: ToolFunction, data: unknown, authData?: TAuthData) => Promise<InteractionResult>);
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Tool definition for an Opal tool
|
|
@@ -25,8 +26,8 @@ export declare class Tool<TAuthData> {
|
|
|
25
26
|
description: string;
|
|
26
27
|
parameters: Parameter[];
|
|
27
28
|
endpoint: string;
|
|
28
|
-
handler: (functionContext:
|
|
29
|
-
authRequirements
|
|
29
|
+
handler: (functionContext: ToolFunction, params: unknown, authData?: TAuthData) => Promise<unknown>;
|
|
30
|
+
authRequirements: AuthRequirement[];
|
|
30
31
|
/**
|
|
31
32
|
* HTTP method for the endpoint (default: POST)
|
|
32
33
|
*/
|
|
@@ -38,9 +39,9 @@ export declare class Tool<TAuthData> {
|
|
|
38
39
|
* @param parameters Function parameters
|
|
39
40
|
* @param endpoint API endpoint
|
|
40
41
|
* @param handler Function implementing the tool
|
|
41
|
-
* @param authRequirements Authentication requirements (
|
|
42
|
+
* @param authRequirements Authentication requirements (mandatory - OptiID enforced)
|
|
42
43
|
*/
|
|
43
|
-
constructor(name: string, description: string, parameters: Parameter[], endpoint: string, handler: (functionContext:
|
|
44
|
+
constructor(name: string, description: string, parameters: Parameter[], endpoint: string, handler: (functionContext: ToolFunction, params: unknown, authData?: TAuthData) => Promise<unknown>, authRequirements?: AuthRequirement[]);
|
|
44
45
|
/**
|
|
45
46
|
* Convert to JSON for the discovery endpoint
|
|
46
47
|
*/
|
|
@@ -50,11 +51,11 @@ export declare class ToolsService {
|
|
|
50
51
|
private functions;
|
|
51
52
|
private interactions;
|
|
52
53
|
/**
|
|
53
|
-
*
|
|
54
|
-
* @param
|
|
55
|
-
* @returns
|
|
54
|
+
* Enforce OptiID authentication for tools by ensuring OptiID auth requirement is present
|
|
55
|
+
* @param authRequirements Original authentication requirements
|
|
56
|
+
* @returns Enforced authentication requirements with OptiID
|
|
56
57
|
*/
|
|
57
|
-
|
|
58
|
+
private enforceOptiIdAuth;
|
|
58
59
|
/**
|
|
59
60
|
* Register a tool function with generic auth data
|
|
60
61
|
* @param name Tool name
|
|
@@ -64,15 +65,15 @@ export declare class ToolsService {
|
|
|
64
65
|
* @param endpoint API endpoint for the tool
|
|
65
66
|
* @param authRequirements Authentication requirements (optional)
|
|
66
67
|
*/
|
|
67
|
-
registerTool<TAuthData>(name: string, description: string, handler: (functionContext:
|
|
68
|
+
registerTool<TAuthData>(name: string, description: string, handler: (functionContext: ToolFunction, params: unknown, authData?: TAuthData) => Promise<unknown>, parameters: Parameter[], endpoint: string, authRequirements?: AuthRequirement[]): void;
|
|
68
69
|
/**
|
|
69
70
|
* Register a tool interaction with generic auth data
|
|
70
71
|
* @param name Tool name
|
|
71
72
|
* @param handler Function implementing the tool
|
|
72
73
|
* @param endpoint API endpoint for the tool
|
|
73
74
|
*/
|
|
74
|
-
registerInteraction<TAuthData>(name: string, handler: (functionContext:
|
|
75
|
-
processRequest(req: App.Request, functionContext
|
|
75
|
+
registerInteraction<TAuthData>(name: string, handler: (functionContext: ToolFunction, data: unknown, authData?: TAuthData) => Promise<InteractionResult>, endpoint: string): void;
|
|
76
|
+
processRequest(req: App.Request, functionContext: ToolFunction): Promise<App.Response>;
|
|
76
77
|
}
|
|
77
78
|
export declare const toolsService: ToolsService;
|
|
78
79
|
//# sourceMappingURL=Service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AASxD;;GAEG;AACH,qBAAa,iBAAiB;IAEnB,OAAO,EAAE,MAAM;IACf,IAAI,CAAC,EAAE,MAAM;gBADb,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,YAAA;CAEvB;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,SAAS;IAEvB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC;gBAF3G,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC;CAErH;AAED;;GAEG;AACH,qBAAa,IAAI,CAAC,SAAS;IAgBhB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,SAAS,EAAE;IACvB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC;IACnG,gBAAgB,EAAE,eAAe,EAAE;IApB5C;;OAEG;IACI,UAAU,EAAE,MAAM,CAAU;IAEnC;;;;;;;;OAQG;gBAEM,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EACnG,gBAAgB,GAAE,eAAe,EAA0B;IAGpE;;OAEG;IACI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYzC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,YAAY,CAA4C;IAEhE;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;;;;;OAQG;IACI,YAAY,CAAC,SAAS,EAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EACnG,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,IAAI;IAOP;;;;;OAKG;IACI,mBAAmB,CAAC,SAAS,EAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC,EAC3G,QAAQ,EAAE,MAAM,GACf,IAAI;IAKM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAChB,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;CAiDlF;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
package/dist/service/Service.js
CHANGED
|
@@ -34,8 +34,14 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.toolsService = exports.ToolsService = exports.Tool = exports.Interaction = exports.InteractionResult = void 0;
|
|
37
|
+
/* eslint-disable max-classes-per-file */
|
|
38
|
+
const Models_1 = require("../types/Models");
|
|
37
39
|
const App = __importStar(require("@zaiusinc/app-sdk"));
|
|
38
40
|
const app_sdk_1 = require("@zaiusinc/app-sdk");
|
|
41
|
+
/**
|
|
42
|
+
* Default OptiID authentication requirement that will be enforced for all tools
|
|
43
|
+
*/
|
|
44
|
+
const DEFAULT_OPTIID_AUTH = new Models_1.AuthRequirement('OptiID', 'default', true);
|
|
39
45
|
/**
|
|
40
46
|
* Result type for interaction handlers
|
|
41
47
|
*/
|
|
@@ -83,9 +89,9 @@ class Tool {
|
|
|
83
89
|
* @param parameters Function parameters
|
|
84
90
|
* @param endpoint API endpoint
|
|
85
91
|
* @param handler Function implementing the tool
|
|
86
|
-
* @param authRequirements Authentication requirements (
|
|
92
|
+
* @param authRequirements Authentication requirements (mandatory - OptiID enforced)
|
|
87
93
|
*/
|
|
88
|
-
constructor(name, description, parameters, endpoint, handler, authRequirements) {
|
|
94
|
+
constructor(name, description, parameters, endpoint, handler, authRequirements = [DEFAULT_OPTIID_AUTH]) {
|
|
89
95
|
this.name = name;
|
|
90
96
|
this.description = description;
|
|
91
97
|
this.parameters = parameters;
|
|
@@ -102,11 +108,9 @@ class Tool {
|
|
|
102
108
|
description: this.description,
|
|
103
109
|
parameters: this.parameters.map((p) => p.toJSON()),
|
|
104
110
|
endpoint: this.endpoint,
|
|
105
|
-
http_method: this.httpMethod
|
|
111
|
+
http_method: this.httpMethod,
|
|
112
|
+
auth_requirements: this.authRequirements.map((auth) => auth.toJSON())
|
|
106
113
|
};
|
|
107
|
-
if (this.authRequirements && this.authRequirements.length > 0) {
|
|
108
|
-
result.auth_requirements = this.authRequirements.map((auth) => auth.toJSON());
|
|
109
|
-
}
|
|
110
114
|
return result;
|
|
111
115
|
}
|
|
112
116
|
}
|
|
@@ -115,17 +119,17 @@ class ToolsService {
|
|
|
115
119
|
functions = new Map();
|
|
116
120
|
interactions = new Map();
|
|
117
121
|
/**
|
|
118
|
-
*
|
|
119
|
-
* @param
|
|
120
|
-
* @returns
|
|
122
|
+
* Enforce OptiID authentication for tools by ensuring OptiID auth requirement is present
|
|
123
|
+
* @param authRequirements Original authentication requirements
|
|
124
|
+
* @returns Enforced authentication requirements with OptiID
|
|
121
125
|
*/
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
if (
|
|
126
|
-
|
|
126
|
+
enforceOptiIdAuth(authRequirements) {
|
|
127
|
+
const hasOptiIdProvider = authRequirements
|
|
128
|
+
&& authRequirements.some((auth) => auth.provider.toLowerCase() === 'optiid');
|
|
129
|
+
if (hasOptiIdProvider) {
|
|
130
|
+
return authRequirements;
|
|
127
131
|
}
|
|
128
|
-
return
|
|
132
|
+
return [...(authRequirements || []), DEFAULT_OPTIID_AUTH];
|
|
129
133
|
}
|
|
130
134
|
/**
|
|
131
135
|
* Register a tool function with generic auth data
|
|
@@ -137,7 +141,9 @@ class ToolsService {
|
|
|
137
141
|
* @param authRequirements Authentication requirements (optional)
|
|
138
142
|
*/
|
|
139
143
|
registerTool(name, description, handler, parameters, endpoint, authRequirements) {
|
|
140
|
-
|
|
144
|
+
// Enforce OptiID authentication for all tools
|
|
145
|
+
const enforcedAuthRequirements = this.enforceOptiIdAuth(authRequirements);
|
|
146
|
+
const func = new Tool(name, description, parameters, endpoint, handler, enforcedAuthRequirements);
|
|
141
147
|
this.functions.set(endpoint, func);
|
|
142
148
|
}
|
|
143
149
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,12 +25,20 @@ jest.mock('@zaiusinc/app-sdk', () => ({
|
|
|
25
25
|
describe('ToolsService', () => {
|
|
26
26
|
let mockTool;
|
|
27
27
|
let mockInteraction;
|
|
28
|
+
let mockToolFunction;
|
|
28
29
|
beforeEach(() => {
|
|
29
30
|
// Clear registered functions and interactions before each test
|
|
30
31
|
Service_1.toolsService.functions = new Map();
|
|
31
32
|
Service_1.toolsService.interactions = new Map();
|
|
32
33
|
// Reset all mocks
|
|
33
34
|
jest.clearAllMocks();
|
|
35
|
+
// Create mock ToolFunction
|
|
36
|
+
mockToolFunction = {
|
|
37
|
+
ready: jest.fn().mockResolvedValue(true),
|
|
38
|
+
perform: jest.fn(),
|
|
39
|
+
validateBearerToken: jest.fn().mockReturnValue(true),
|
|
40
|
+
request: {}
|
|
41
|
+
};
|
|
34
42
|
// Create mock tool handler
|
|
35
43
|
const mockToolHandler = jest.fn().mockResolvedValue({ result: 'success' });
|
|
36
44
|
// Create mock interaction handler
|
|
@@ -70,7 +78,7 @@ describe('ToolsService', () => {
|
|
|
70
78
|
it('should return registered functions for discovery endpoint', async () => {
|
|
71
79
|
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
72
80
|
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
73
|
-
const response = await Service_1.toolsService.processRequest(discoveryRequest);
|
|
81
|
+
const response = await Service_1.toolsService.processRequest(discoveryRequest, mockToolFunction);
|
|
74
82
|
expect(response.status).toBe(200);
|
|
75
83
|
expect(response).toHaveProperty('bodyJSON');
|
|
76
84
|
expect(response.bodyAsU8Array).toBeDefined();
|
|
@@ -86,12 +94,13 @@ describe('ToolsService', () => {
|
|
|
86
94
|
description: mockTool.description,
|
|
87
95
|
parameters: mockTool.parameters.map((p) => p.toJSON()),
|
|
88
96
|
endpoint: mockTool.endpoint,
|
|
89
|
-
http_method: 'POST'
|
|
97
|
+
http_method: 'POST',
|
|
98
|
+
auth_requirements: [{ provider: 'OptiID', scope_bundle: 'default', required: true }]
|
|
90
99
|
});
|
|
91
100
|
});
|
|
92
101
|
it('should return empty functions array when no tools are registered', async () => {
|
|
93
102
|
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
94
|
-
const response = await Service_1.toolsService.processRequest(discoveryRequest);
|
|
103
|
+
const response = await Service_1.toolsService.processRequest(discoveryRequest, mockToolFunction);
|
|
95
104
|
expect(response.status).toBe(200);
|
|
96
105
|
expect(response.bodyAsU8Array).toBeDefined();
|
|
97
106
|
// Test the actual response structure
|
|
@@ -107,7 +116,7 @@ describe('ToolsService', () => {
|
|
|
107
116
|
const authRequirements = [new Models_1.AuthRequirement('oauth2', 'calendar', true)];
|
|
108
117
|
Service_1.toolsService.registerTool('second_tool', 'Second test tool', jest.fn(), [], '/second-tool', authRequirements);
|
|
109
118
|
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
110
|
-
const response = await Service_1.toolsService.processRequest(discoveryRequest);
|
|
119
|
+
const response = await Service_1.toolsService.processRequest(discoveryRequest, mockToolFunction);
|
|
111
120
|
expect(response.status).toBe(200);
|
|
112
121
|
// Test the actual response structure
|
|
113
122
|
const responseData = response.bodyJSON;
|
|
@@ -122,7 +131,8 @@ describe('ToolsService', () => {
|
|
|
122
131
|
description: mockTool.description,
|
|
123
132
|
parameters: mockTool.parameters.map((p) => p.toJSON()),
|
|
124
133
|
endpoint: mockTool.endpoint,
|
|
125
|
-
http_method: 'POST'
|
|
134
|
+
http_method: 'POST',
|
|
135
|
+
auth_requirements: [{ provider: 'OptiID', scope_bundle: 'default', required: true }]
|
|
126
136
|
});
|
|
127
137
|
expect(secondFunction).toEqual({
|
|
128
138
|
name: 'second_tool',
|
|
@@ -130,7 +140,10 @@ describe('ToolsService', () => {
|
|
|
130
140
|
parameters: [],
|
|
131
141
|
endpoint: '/second-tool',
|
|
132
142
|
http_method: 'POST',
|
|
133
|
-
auth_requirements:
|
|
143
|
+
auth_requirements: [
|
|
144
|
+
{ provider: 'oauth2', scope_bundle: 'calendar', required: true },
|
|
145
|
+
{ provider: 'OptiID', scope_bundle: 'default', required: true }
|
|
146
|
+
]
|
|
134
147
|
});
|
|
135
148
|
});
|
|
136
149
|
});
|
|
@@ -140,16 +153,20 @@ describe('ToolsService', () => {
|
|
|
140
153
|
});
|
|
141
154
|
it('should execute tool successfully with parameters', async () => {
|
|
142
155
|
const mockRequest = createMockRequest();
|
|
143
|
-
const response = await Service_1.toolsService.processRequest(mockRequest);
|
|
156
|
+
const response = await Service_1.toolsService.processRequest(mockRequest, mockToolFunction);
|
|
144
157
|
expect(response.status).toBe(200);
|
|
145
|
-
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
158
|
+
expect(mockTool.handler).toHaveBeenCalledWith(mockToolFunction, // functionContext
|
|
146
159
|
{ param1: 'test-value' }, undefined);
|
|
147
160
|
});
|
|
148
161
|
it('should execute tool with existing ToolFunction instance context', async () => {
|
|
149
162
|
// Create a mock ToolFunction instance
|
|
150
163
|
const mockToolFunctionInstance = {
|
|
151
164
|
someProperty: 'test-value',
|
|
152
|
-
someMethod: jest.fn()
|
|
165
|
+
someMethod: jest.fn(),
|
|
166
|
+
ready: jest.fn().mockResolvedValue(true),
|
|
167
|
+
perform: jest.fn(),
|
|
168
|
+
validateBearerToken: jest.fn().mockReturnValue(true),
|
|
169
|
+
request: {}
|
|
153
170
|
};
|
|
154
171
|
const mockRequest = createMockRequest();
|
|
155
172
|
const response = await Service_1.toolsService.processRequest(mockRequest, mockToolFunctionInstance);
|
|
@@ -211,9 +228,9 @@ describe('ToolsService', () => {
|
|
|
211
228
|
auth: authData
|
|
212
229
|
})
|
|
213
230
|
});
|
|
214
|
-
const response = await Service_1.toolsService.processRequest(requestWithAuth);
|
|
231
|
+
const response = await Service_1.toolsService.processRequest(requestWithAuth, mockToolFunction);
|
|
215
232
|
expect(response.status).toBe(200);
|
|
216
|
-
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
233
|
+
expect(mockTool.handler).toHaveBeenCalledWith(mockToolFunction, // functionContext
|
|
217
234
|
{ param1: 'test-value' }, authData);
|
|
218
235
|
});
|
|
219
236
|
it('should handle request body without parameters wrapper', async () => {
|
|
@@ -221,23 +238,23 @@ describe('ToolsService', () => {
|
|
|
221
238
|
bodyJSON: { param1: 'test-value' },
|
|
222
239
|
body: JSON.stringify({ param1: 'test-value' })
|
|
223
240
|
});
|
|
224
|
-
const response = await Service_1.toolsService.processRequest(requestWithoutWrapper);
|
|
241
|
+
const response = await Service_1.toolsService.processRequest(requestWithoutWrapper, mockToolFunction);
|
|
225
242
|
expect(response.status).toBe(200);
|
|
226
|
-
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
243
|
+
expect(mockTool.handler).toHaveBeenCalledWith(mockToolFunction, // functionContext
|
|
227
244
|
{ param1: 'test-value' }, undefined);
|
|
228
245
|
});
|
|
229
246
|
it('should return 500 error when tool handler throws an error', async () => {
|
|
230
247
|
const errorMessage = 'Tool execution failed';
|
|
231
248
|
jest.mocked(mockTool.handler).mockRejectedValueOnce(new Error(errorMessage));
|
|
232
249
|
const mockRequest = createMockRequest();
|
|
233
|
-
const response = await Service_1.toolsService.processRequest(mockRequest);
|
|
250
|
+
const response = await Service_1.toolsService.processRequest(mockRequest, mockToolFunction);
|
|
234
251
|
expect(response.status).toBe(500);
|
|
235
252
|
expect(app_sdk_1.logger.error).toHaveBeenCalledWith(`Error in function ${mockTool.name}:`, expect.any(Error));
|
|
236
253
|
});
|
|
237
254
|
it('should return 500 error with generic message when error has no message', async () => {
|
|
238
255
|
jest.mocked(mockTool.handler).mockRejectedValueOnce({});
|
|
239
256
|
const mockRequest = createMockRequest();
|
|
240
|
-
const response = await Service_1.toolsService.processRequest(mockRequest);
|
|
257
|
+
const response = await Service_1.toolsService.processRequest(mockRequest, mockToolFunction);
|
|
241
258
|
expect(response.status).toBe(500);
|
|
242
259
|
});
|
|
243
260
|
});
|
|
@@ -251,9 +268,9 @@ describe('ToolsService', () => {
|
|
|
251
268
|
bodyJSON: { data: { param1: 'test-value' } },
|
|
252
269
|
body: JSON.stringify({ data: { param1: 'test-value' } })
|
|
253
270
|
});
|
|
254
|
-
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
271
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest, mockToolFunction);
|
|
255
272
|
expect(response.status).toBe(200);
|
|
256
|
-
expect(mockInteraction.handler).toHaveBeenCalledWith(
|
|
273
|
+
expect(mockInteraction.handler).toHaveBeenCalledWith(mockToolFunction, { param1: 'test-value' }, undefined);
|
|
257
274
|
});
|
|
258
275
|
it('should handle interaction request body without data wrapper', async () => {
|
|
259
276
|
const interactionRequest = createMockRequest({
|
|
@@ -261,9 +278,9 @@ describe('ToolsService', () => {
|
|
|
261
278
|
bodyJSON: { param1: 'test-value' },
|
|
262
279
|
body: JSON.stringify({ param1: 'test-value' })
|
|
263
280
|
});
|
|
264
|
-
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
281
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest, mockToolFunction);
|
|
265
282
|
expect(response.status).toBe(200);
|
|
266
|
-
expect(mockInteraction.handler).toHaveBeenCalledWith(
|
|
283
|
+
expect(mockInteraction.handler).toHaveBeenCalledWith(mockToolFunction, { param1: 'test-value' }, undefined);
|
|
267
284
|
});
|
|
268
285
|
it('should execute interaction with OptiID auth data when provided', async () => {
|
|
269
286
|
const authData = new Models_1.OptiIdAuthData('optiId', new Models_1.OptiIdAuthDataCredentials('customer123', 'instance123', 'token123', 'sku123'));
|
|
@@ -278,9 +295,9 @@ describe('ToolsService', () => {
|
|
|
278
295
|
auth: authData
|
|
279
296
|
})
|
|
280
297
|
});
|
|
281
|
-
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
298
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest, mockToolFunction);
|
|
282
299
|
expect(response.status).toBe(200);
|
|
283
|
-
expect(mockInteraction.handler).toHaveBeenCalledWith(
|
|
300
|
+
expect(mockInteraction.handler).toHaveBeenCalledWith(mockToolFunction, // functionContext
|
|
284
301
|
{ param1: 'test-value' }, authData);
|
|
285
302
|
});
|
|
286
303
|
it('should handle interaction request without data wrapper but with auth data', async () => {
|
|
@@ -296,9 +313,9 @@ describe('ToolsService', () => {
|
|
|
296
313
|
auth: authData
|
|
297
314
|
})
|
|
298
315
|
});
|
|
299
|
-
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
316
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest, mockToolFunction);
|
|
300
317
|
expect(response.status).toBe(200);
|
|
301
|
-
expect(mockInteraction.handler).toHaveBeenCalledWith(
|
|
318
|
+
expect(mockInteraction.handler).toHaveBeenCalledWith(mockToolFunction, // functionContext
|
|
302
319
|
{
|
|
303
320
|
param1: 'test-value',
|
|
304
321
|
auth: authData
|
|
@@ -311,7 +328,7 @@ describe('ToolsService', () => {
|
|
|
311
328
|
path: '/test-interaction',
|
|
312
329
|
bodyJSON: { data: { param1: 'test-value' } }
|
|
313
330
|
});
|
|
314
|
-
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
331
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest, mockToolFunction);
|
|
315
332
|
expect(response.status).toBe(500);
|
|
316
333
|
expect(app_sdk_1.logger.error).toHaveBeenCalledWith(`Error in function ${mockInteraction.name}:`, expect.any(Error));
|
|
317
334
|
});
|
|
@@ -319,7 +336,7 @@ describe('ToolsService', () => {
|
|
|
319
336
|
describe('error cases', () => {
|
|
320
337
|
it('should return 404 when no matching tool or interaction is found', async () => {
|
|
321
338
|
const unknownRequest = createMockRequest({ path: '/unknown-endpoint' });
|
|
322
|
-
const response = await Service_1.toolsService.processRequest(unknownRequest);
|
|
339
|
+
const response = await Service_1.toolsService.processRequest(unknownRequest, mockToolFunction);
|
|
323
340
|
expect(response.status).toBe(404);
|
|
324
341
|
});
|
|
325
342
|
it('should handle tool with OptiID auth requirements', async () => {
|
|
@@ -330,7 +347,7 @@ describe('ToolsService', () => {
|
|
|
330
347
|
const authRequest = createMockRequest({
|
|
331
348
|
path: '/optid-auth-tool'
|
|
332
349
|
});
|
|
333
|
-
const response = await Service_1.toolsService.processRequest(authRequest);
|
|
350
|
+
const response = await Service_1.toolsService.processRequest(authRequest, mockToolFunction);
|
|
334
351
|
expect(response.status).toBe(200);
|
|
335
352
|
});
|
|
336
353
|
});
|
|
@@ -341,9 +358,9 @@ describe('ToolsService', () => {
|
|
|
341
358
|
bodyJSON: null,
|
|
342
359
|
body: null
|
|
343
360
|
});
|
|
344
|
-
const response = await Service_1.toolsService.processRequest(requestWithNullBody);
|
|
361
|
+
const response = await Service_1.toolsService.processRequest(requestWithNullBody, mockToolFunction);
|
|
345
362
|
expect(response.status).toBe(200);
|
|
346
|
-
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
363
|
+
expect(mockTool.handler).toHaveBeenCalledWith(mockToolFunction, null, undefined);
|
|
347
364
|
});
|
|
348
365
|
it('should handle request with undefined bodyJSON', async () => {
|
|
349
366
|
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
@@ -351,9 +368,9 @@ describe('ToolsService', () => {
|
|
|
351
368
|
bodyJSON: undefined,
|
|
352
369
|
body: undefined
|
|
353
370
|
});
|
|
354
|
-
const response = await Service_1.toolsService.processRequest(requestWithUndefinedBody);
|
|
371
|
+
const response = await Service_1.toolsService.processRequest(requestWithUndefinedBody, mockToolFunction);
|
|
355
372
|
expect(response.status).toBe(200);
|
|
356
|
-
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
373
|
+
expect(mockTool.handler).toHaveBeenCalledWith(mockToolFunction, undefined, undefined);
|
|
357
374
|
});
|
|
358
375
|
it('should extract auth data from bodyJSON when body exists', async () => {
|
|
359
376
|
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
@@ -368,9 +385,9 @@ describe('ToolsService', () => {
|
|
|
368
385
|
auth: authData
|
|
369
386
|
})
|
|
370
387
|
});
|
|
371
|
-
const response = await Service_1.toolsService.processRequest(requestWithAuth);
|
|
388
|
+
const response = await Service_1.toolsService.processRequest(requestWithAuth, mockToolFunction);
|
|
372
389
|
expect(response.status).toBe(200);
|
|
373
|
-
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
390
|
+
expect(mockTool.handler).toHaveBeenCalledWith(mockToolFunction, // functionContext
|
|
374
391
|
{ param1: 'test-value' }, authData);
|
|
375
392
|
});
|
|
376
393
|
it('should handle missing auth data gracefully', async () => {
|
|
@@ -384,9 +401,9 @@ describe('ToolsService', () => {
|
|
|
384
401
|
parameters: { param1: 'test-value' }
|
|
385
402
|
})
|
|
386
403
|
});
|
|
387
|
-
const response = await Service_1.toolsService.processRequest(requestWithoutAuth);
|
|
404
|
+
const response = await Service_1.toolsService.processRequest(requestWithoutAuth, mockToolFunction);
|
|
388
405
|
expect(response.status).toBe(200);
|
|
389
|
-
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
406
|
+
expect(mockTool.handler).toHaveBeenCalledWith(mockToolFunction, // functionContext
|
|
390
407
|
{ param1: 'test-value' }, undefined);
|
|
391
408
|
});
|
|
392
409
|
it('should handle auth extraction when body is falsy but bodyJSON has auth', async () => {
|
|
@@ -399,9 +416,9 @@ describe('ToolsService', () => {
|
|
|
399
416
|
},
|
|
400
417
|
body: ''
|
|
401
418
|
});
|
|
402
|
-
const response = await Service_1.toolsService.processRequest(requestWithAuthButNoBody);
|
|
419
|
+
const response = await Service_1.toolsService.processRequest(requestWithAuthButNoBody, mockToolFunction);
|
|
403
420
|
expect(response.status).toBe(200);
|
|
404
|
-
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
421
|
+
expect(mockTool.handler).toHaveBeenCalledWith(mockToolFunction, // functionContext
|
|
405
422
|
{ param1: 'test-value' }, authData);
|
|
406
423
|
});
|
|
407
424
|
});
|