@optimizely-opal/opal-tool-ocp-sdk 0.0.0-beta.1 → 0.0.0-beta.10
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 -51
- 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.d.ts +4 -2
- package/dist/decorator/Decorator.d.ts.map +1 -1
- package/dist/decorator/Decorator.js +26 -4
- package/dist/decorator/Decorator.js.map +1 -1
- package/dist/decorator/Decorator.test.js +110 -0
- package/dist/decorator/Decorator.test.js.map +1 -1
- package/dist/function/ToolFunction.d.ts +14 -1
- package/dist/function/ToolFunction.d.ts.map +1 -1
- package/dist/function/ToolFunction.js +59 -3
- package/dist/function/ToolFunction.js.map +1 -1
- package/dist/function/ToolFunction.test.js +229 -104
- 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 +25 -19
- package/dist/service/Service.js.map +1 -1
- package/dist/service/Service.test.js +122 -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 +126 -0
- package/src/decorator/Decorator.ts +32 -4
- package/src/function/ToolFunction.test.ts +259 -109
- package/src/function/ToolFunction.ts +66 -5
- package/src/index.ts +1 -0
- package/src/service/Service.test.ts +139 -28
- package/src/service/Service.ts +31 -24
- package/src/types/Models.ts +4 -4
|
@@ -3,19 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const ToolFunction_1 = require("./ToolFunction");
|
|
4
4
|
const Service_1 = require("../service/Service");
|
|
5
5
|
const app_sdk_1 = require("@zaiusinc/app-sdk");
|
|
6
|
-
|
|
6
|
+
const TokenVerifier_1 = require("../auth/TokenVerifier");
|
|
7
|
+
// Mock the dependencies
|
|
7
8
|
jest.mock('../service/Service', () => ({
|
|
8
9
|
toolsService: {
|
|
9
10
|
processRequest: jest.fn(),
|
|
10
|
-
extractBearerToken: jest.fn(),
|
|
11
11
|
},
|
|
12
12
|
}));
|
|
13
|
-
|
|
13
|
+
jest.mock('../auth/TokenVerifier', () => ({
|
|
14
|
+
getTokenVerifier: jest.fn(),
|
|
15
|
+
}));
|
|
14
16
|
jest.mock('@zaiusinc/app-sdk', () => ({
|
|
15
17
|
Function: class {
|
|
16
18
|
request;
|
|
17
19
|
constructor(_name) {
|
|
18
|
-
// Mock constructor that accepts optional name parameter
|
|
19
20
|
this.request = {};
|
|
20
21
|
}
|
|
21
22
|
},
|
|
@@ -26,27 +27,32 @@ jest.mock('@zaiusinc/app-sdk', () => ({
|
|
|
26
27
|
bodyJSON: data,
|
|
27
28
|
bodyAsU8Array: new Uint8Array()
|
|
28
29
|
})),
|
|
30
|
+
amendLogContext: jest.fn(),
|
|
31
|
+
getAppContext: jest.fn(),
|
|
32
|
+
logger: {
|
|
33
|
+
info: jest.fn(),
|
|
34
|
+
error: jest.fn(),
|
|
35
|
+
warn: jest.fn(),
|
|
36
|
+
debug: jest.fn(),
|
|
37
|
+
},
|
|
29
38
|
}));
|
|
30
39
|
// Create a concrete implementation for testing
|
|
31
40
|
class TestToolFunction extends ToolFunction_1.ToolFunction {
|
|
32
|
-
|
|
41
|
+
mockReady;
|
|
33
42
|
constructor(request) {
|
|
34
|
-
super(request || {});
|
|
35
|
-
// Set the request directly without defaulting to empty object
|
|
43
|
+
super(request || {});
|
|
36
44
|
this.request = request;
|
|
37
|
-
|
|
38
|
-
this.mockValidateBearerToken = jest.fn().mockReturnValue(true);
|
|
45
|
+
this.mockReady = jest.fn().mockResolvedValue(true);
|
|
39
46
|
}
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
return this.
|
|
47
|
+
// Override the ready method with mock implementation for testing
|
|
48
|
+
ready() {
|
|
49
|
+
return this.mockReady();
|
|
43
50
|
}
|
|
44
|
-
// Expose request and validation mock for testing
|
|
45
51
|
getRequest() {
|
|
46
52
|
return this.request;
|
|
47
53
|
}
|
|
48
|
-
|
|
49
|
-
return this.
|
|
54
|
+
getMockReady() {
|
|
55
|
+
return this.mockReady;
|
|
50
56
|
}
|
|
51
57
|
}
|
|
52
58
|
describe('ToolFunction', () => {
|
|
@@ -54,125 +60,244 @@ describe('ToolFunction', () => {
|
|
|
54
60
|
let mockResponse;
|
|
55
61
|
let toolFunction;
|
|
56
62
|
let mockProcessRequest;
|
|
57
|
-
let
|
|
63
|
+
let mockGetTokenVerifier;
|
|
64
|
+
let mockGetAppContext;
|
|
65
|
+
let mockTokenVerifier;
|
|
58
66
|
beforeEach(() => {
|
|
59
67
|
jest.clearAllMocks();
|
|
60
|
-
// Create mock
|
|
68
|
+
// Create mock token verifier
|
|
69
|
+
mockTokenVerifier = {
|
|
70
|
+
verify: jest.fn(),
|
|
71
|
+
};
|
|
72
|
+
// Setup the mocks
|
|
73
|
+
mockProcessRequest = jest.mocked(Service_1.toolsService.processRequest);
|
|
74
|
+
mockGetTokenVerifier = jest.mocked(TokenVerifier_1.getTokenVerifier);
|
|
75
|
+
mockGetAppContext = jest.mocked(app_sdk_1.getAppContext);
|
|
76
|
+
mockGetTokenVerifier.mockResolvedValue(mockTokenVerifier);
|
|
77
|
+
mockGetAppContext.mockReturnValue({
|
|
78
|
+
account: {
|
|
79
|
+
organizationId: 'app-org-123'
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
// Create mock request with bodyJSON structure
|
|
61
83
|
mockRequest = {
|
|
62
84
|
headers: new Map(),
|
|
63
85
|
method: 'POST',
|
|
64
|
-
path: '/test'
|
|
86
|
+
path: '/test',
|
|
87
|
+
bodyJSON: {
|
|
88
|
+
parameters: {
|
|
89
|
+
task_id: 'task-123',
|
|
90
|
+
content_id: 'content-456'
|
|
91
|
+
},
|
|
92
|
+
auth: {
|
|
93
|
+
provider: 'OptiID',
|
|
94
|
+
credentials: {
|
|
95
|
+
token_type: 'Bearer',
|
|
96
|
+
access_token: 'valid-access-token',
|
|
97
|
+
org_sso_id: 'org-sso-123',
|
|
98
|
+
user_id: 'user-456',
|
|
99
|
+
instance_id: 'instance-789',
|
|
100
|
+
customer_id: 'app-org-123',
|
|
101
|
+
product_sku: 'OPAL'
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
environment: {
|
|
105
|
+
execution_mode: 'headless'
|
|
106
|
+
}
|
|
107
|
+
}
|
|
65
108
|
};
|
|
66
109
|
mockResponse = {};
|
|
67
|
-
// Setup the mocks
|
|
68
|
-
mockProcessRequest = jest.mocked(Service_1.toolsService.processRequest);
|
|
69
|
-
mockExtractBearerToken = jest.mocked(Service_1.toolsService.extractBearerToken);
|
|
70
|
-
// Create test instance
|
|
71
110
|
toolFunction = new TestToolFunction(mockRequest);
|
|
72
111
|
});
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
112
|
+
// Helper function to create a ready request with valid auth
|
|
113
|
+
const createReadyRequestWithAuth = () => ({
|
|
114
|
+
headers: new Map(),
|
|
115
|
+
method: 'GET',
|
|
116
|
+
path: '/ready',
|
|
117
|
+
bodyJSON: {
|
|
118
|
+
auth: {
|
|
119
|
+
provider: 'OptiID',
|
|
120
|
+
credentials: {
|
|
121
|
+
access_token: 'valid-token',
|
|
122
|
+
customer_id: 'app-org-123'
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
// Helper function to setup authorization mocks to pass
|
|
128
|
+
const setupAuthMocks = () => {
|
|
129
|
+
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
130
|
+
mockGetAppContext.mockReturnValue({
|
|
131
|
+
account: {
|
|
132
|
+
organizationId: 'app-org-123'
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
describe('/ready endpoint', () => {
|
|
137
|
+
beforeEach(() => {
|
|
138
|
+
setupAuthMocks();
|
|
87
139
|
});
|
|
88
|
-
it('should return
|
|
140
|
+
it('should return ready: true when ready method returns true', async () => {
|
|
89
141
|
// Arrange
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
toolFunction.
|
|
142
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
143
|
+
toolFunction = new TestToolFunction(readyRequest);
|
|
144
|
+
toolFunction.getMockReady().mockResolvedValue(true);
|
|
93
145
|
// Act
|
|
94
146
|
const result = await toolFunction.perform();
|
|
95
147
|
// Assert
|
|
96
|
-
expect(
|
|
97
|
-
expect(
|
|
98
|
-
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
99
|
-
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
148
|
+
expect(toolFunction.getMockReady()).toHaveBeenCalledTimes(1);
|
|
149
|
+
expect(result).toEqual(new app_sdk_1.Response(200, { ready: true }));
|
|
150
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
100
151
|
});
|
|
101
|
-
it('should
|
|
102
|
-
// Arrange
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
toolFunction.getMockValidateBearerToken().mockReturnValue(true);
|
|
107
|
-
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
152
|
+
it('should return ready: false when ready method returns false', async () => {
|
|
153
|
+
// Arrange
|
|
154
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
155
|
+
toolFunction = new TestToolFunction(readyRequest);
|
|
156
|
+
toolFunction.getMockReady().mockResolvedValue(false);
|
|
108
157
|
// Act
|
|
109
158
|
const result = await toolFunction.perform();
|
|
110
159
|
// Assert
|
|
111
|
-
expect(
|
|
112
|
-
expect(
|
|
113
|
-
expect(mockProcessRequest).
|
|
114
|
-
expect(result).toBe(mockResponse);
|
|
160
|
+
expect(toolFunction.getMockReady()).toHaveBeenCalledTimes(1);
|
|
161
|
+
expect(result).toEqual(new app_sdk_1.Response(200, { ready: false }));
|
|
162
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
115
163
|
});
|
|
116
|
-
it('should handle
|
|
164
|
+
it('should handle ready method throwing an error', async () => {
|
|
117
165
|
// Arrange
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
toolFunction.
|
|
121
|
-
throw new Error('Token validation error');
|
|
122
|
-
});
|
|
166
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
167
|
+
toolFunction = new TestToolFunction(readyRequest);
|
|
168
|
+
toolFunction.getMockReady().mockRejectedValue(new Error('Ready check failed'));
|
|
123
169
|
// Act & Assert
|
|
124
|
-
await expect(toolFunction.perform()).rejects.toThrow('
|
|
125
|
-
expect(
|
|
126
|
-
expect(
|
|
127
|
-
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
170
|
+
await expect(toolFunction.perform()).rejects.toThrow('Ready check failed');
|
|
171
|
+
expect(toolFunction.getMockReady()).toHaveBeenCalledTimes(1);
|
|
172
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
128
173
|
});
|
|
129
|
-
it('should
|
|
174
|
+
it('should use default ready implementation when not overridden', async () => {
|
|
175
|
+
// Create a class that doesn't override ready method
|
|
176
|
+
class DefaultReadyToolFunction extends ToolFunction_1.ToolFunction {
|
|
177
|
+
constructor(request) {
|
|
178
|
+
super(request || {});
|
|
179
|
+
this.request = request;
|
|
180
|
+
}
|
|
181
|
+
getRequest() {
|
|
182
|
+
return this.request;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
130
185
|
// Arrange
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
toolFunction.getMockValidateBearerToken().mockReturnValue(true);
|
|
134
|
-
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
186
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
187
|
+
const defaultToolFunction = new DefaultReadyToolFunction(readyRequest);
|
|
135
188
|
// Act
|
|
136
|
-
await
|
|
137
|
-
// Assert
|
|
138
|
-
expect(
|
|
139
|
-
expect(
|
|
189
|
+
const result = await defaultToolFunction.perform();
|
|
190
|
+
// Assert - Default implementation should return true
|
|
191
|
+
expect(result).toEqual(new app_sdk_1.Response(200, { ready: true }));
|
|
192
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
140
193
|
});
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
147
|
-
// Act
|
|
148
|
-
await toolFunction.perform();
|
|
149
|
-
// Assert
|
|
150
|
-
expect(mockExtractBearerToken).toHaveBeenCalledTimes(1);
|
|
151
|
-
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
152
|
-
});
|
|
153
|
-
it('should skip validation when bearer token is undefined', async () => {
|
|
154
|
-
// Arrange
|
|
155
|
-
mockExtractBearerToken.mockReturnValue(undefined);
|
|
194
|
+
});
|
|
195
|
+
describe('perform', () => {
|
|
196
|
+
it('should execute successfully with valid token and matching organization', async () => {
|
|
197
|
+
// Setup mock token verifier to return true for valid token
|
|
198
|
+
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
156
199
|
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
157
|
-
// Act
|
|
158
200
|
const result = await toolFunction.perform();
|
|
159
|
-
// Assert
|
|
160
|
-
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
161
|
-
expect(toolFunction.getMockValidateBearerToken()).not.toHaveBeenCalled();
|
|
162
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest);
|
|
163
201
|
expect(result).toBe(mockResponse);
|
|
202
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
203
|
+
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
204
|
+
expect(mockGetAppContext).toHaveBeenCalled();
|
|
205
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
164
206
|
});
|
|
165
|
-
it('should
|
|
166
|
-
//
|
|
167
|
-
|
|
168
|
-
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
169
|
-
// Act
|
|
207
|
+
it('should return 403 response with invalid token', async () => {
|
|
208
|
+
// Setup mock token verifier to return false
|
|
209
|
+
mockTokenVerifier.verify.mockResolvedValue(false);
|
|
170
210
|
const result = await toolFunction.perform();
|
|
171
|
-
|
|
172
|
-
expect(
|
|
173
|
-
expect(
|
|
174
|
-
expect(mockProcessRequest).
|
|
175
|
-
|
|
211
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
212
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
213
|
+
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
214
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
215
|
+
});
|
|
216
|
+
it('should return 403 response when organization ID does not match', async () => {
|
|
217
|
+
// Update mock request with different customer_id
|
|
218
|
+
const requestWithDifferentOrgId = {
|
|
219
|
+
...mockRequest,
|
|
220
|
+
bodyJSON: {
|
|
221
|
+
...mockRequest.bodyJSON,
|
|
222
|
+
auth: {
|
|
223
|
+
...mockRequest.bodyJSON.auth,
|
|
224
|
+
credentials: {
|
|
225
|
+
...mockRequest.bodyJSON.auth.credentials,
|
|
226
|
+
customer_id: 'different-org-123'
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
const toolFunctionWithDifferentOrgId = new TestToolFunction(requestWithDifferentOrgId);
|
|
232
|
+
const result = await toolFunctionWithDifferentOrgId.perform();
|
|
233
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
234
|
+
expect(mockGetAppContext).toHaveBeenCalled();
|
|
235
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
236
|
+
});
|
|
237
|
+
it('should return 403 response when access token is missing', async () => {
|
|
238
|
+
// Create request without access token
|
|
239
|
+
const requestWithoutToken = {
|
|
240
|
+
...mockRequest,
|
|
241
|
+
bodyJSON: {
|
|
242
|
+
...mockRequest.bodyJSON,
|
|
243
|
+
auth: {
|
|
244
|
+
...mockRequest.bodyJSON.auth,
|
|
245
|
+
credentials: {
|
|
246
|
+
...mockRequest.bodyJSON.auth.credentials,
|
|
247
|
+
access_token: undefined
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
const toolFunctionWithoutToken = new TestToolFunction(requestWithoutToken);
|
|
253
|
+
const result = await toolFunctionWithoutToken.perform();
|
|
254
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
255
|
+
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
256
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
257
|
+
});
|
|
258
|
+
it('should return 403 response when organisation id is missing', async () => {
|
|
259
|
+
// Create request without customer_id
|
|
260
|
+
const requestWithoutCustomerId = {
|
|
261
|
+
...mockRequest,
|
|
262
|
+
bodyJSON: {
|
|
263
|
+
...mockRequest.bodyJSON,
|
|
264
|
+
auth: {
|
|
265
|
+
...mockRequest.bodyJSON.auth,
|
|
266
|
+
credentials: {
|
|
267
|
+
...mockRequest.bodyJSON.auth.credentials,
|
|
268
|
+
customer_id: undefined
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
const toolFunctionWithoutCustomerId = new TestToolFunction(requestWithoutCustomerId);
|
|
274
|
+
const result = await toolFunctionWithoutCustomerId.perform();
|
|
275
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
276
|
+
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
277
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
278
|
+
});
|
|
279
|
+
it('should return 403 response when auth structure is missing', async () => {
|
|
280
|
+
// Create request without auth structure
|
|
281
|
+
const requestWithoutAuth = {
|
|
282
|
+
...mockRequest,
|
|
283
|
+
bodyJSON: {
|
|
284
|
+
parameters: mockRequest.bodyJSON.parameters,
|
|
285
|
+
environment: mockRequest.bodyJSON.environment
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
const toolFunctionWithoutAuth = new TestToolFunction(requestWithoutAuth);
|
|
289
|
+
const result = await toolFunctionWithoutAuth.perform();
|
|
290
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
291
|
+
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
292
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
293
|
+
});
|
|
294
|
+
it('should return 403 response when token verifier initialization fails', async () => {
|
|
295
|
+
// Setup mock to fail during token verifier initialization
|
|
296
|
+
mockGetTokenVerifier.mockRejectedValue(new Error('Failed to initialize token verifier'));
|
|
297
|
+
const result = await toolFunction.perform();
|
|
298
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
299
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
300
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
176
301
|
});
|
|
177
302
|
});
|
|
178
303
|
describe('inheritance', () => {
|
|
@@ -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: (data: unknown, authData?: TAuthData) => Promise<InteractionResult>;
|
|
18
|
-
constructor(name: string, endpoint: string, handler: (data: unknown, authData?: TAuthData) => Promise<InteractionResult>);
|
|
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: (params: unknown, authData?: TAuthData) => Promise<unknown>;
|
|
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: (params: unknown, authData?: TAuthData) => Promise<unknown>, authRequirements?: AuthRequirement[]
|
|
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: (params: unknown, authData?: TAuthData) => Promise<unknown>, parameters: Parameter[], endpoint: string, authRequirements?: AuthRequirement[]): void;
|
|
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: (data: unknown, authData?: TAuthData) => Promise<InteractionResult>, endpoint: string): void;
|
|
75
|
-
processRequest(req: App.Request): Promise<App.Response>;
|
|
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"}
|